이것은 길지만 어쩌면 누군가가 생각할 수 있습니다. IndySockets, 다중 스레드 (20-25 스레드) 웹 크롤링 응용 프로그램에서 .NET 소켓 클래스를 확장하는 라이브러리를 사용하고 있습니다. 이 앱은 여러 서버에서 실행되며 일부 서버에서는 하이퍼 스레딩이 켜져 있습니다.Indy 소켓은 하이퍼 스레드 컴퓨터에서 점차 속도가 느려짐
하이퍼 스레딩을 사용하면 처음에는 응용 프로그램의 효율성이 크게 향상되지만 (30-50 %의 속도 향상) IndySockets 호출은 점차적으로 느려지고 느려질 수 있습니다. 이것은 하이퍼 스레딩을 사용하지 않는 컴퓨터에서는 발생하지 않습니다.
문제를 더욱 혼란스럽게 만들려면 하이퍼 스레딩 된 컴퓨터를 다시 시작하는 것이 문제를 해결하는 것처럼 보입니다. 즉, 다시 시작할 때 앱이 초기 속도로 다시 실행됩니다. 응용 프로그램을 다시 시작해도 아무런 효과가 없습니다.
누구든지 의견이 있으면 감사하겠습니다. 감사.
답장을 보내 주셔서 감사합니다. 우리는 응용 프로그램의 여러 단계의 실행 시간을 모니터링합니다. 시간이 지남에 따라 느려지는 것은 IndySockets에 대한 호출뿐입니다. – Brian
정확히 어떤 종류의 전화를하고 있습니까? Indy를 사용하고있는 것을 보여주기 위해 질문을 업데이트 할 수 있습니까? –
우리는 주로 HttpClient의 Get 메서드와 Head 메서드를 훨씬 덜 사용합니다. 우리는 전체 페이지 내용을 읽고이어서 이것을 XML XML 모델로 구문 분석합니다. head 메소드는 간혹 페이지 리디렉션을 따르는 데 사용됩니다. – Brian