C#을 사용하여 웹 페이지를 다운로드 할 수있는 속도를 측정하는 응용 프로그램을 작성하고 있습니다. 고유 한 도메인 이름 목록을 제공 한 다음 X 개의 스레드를 생성하고 도메인 목록이 소비 될 때까지 HTTPWebRequests를 수행합니다. 문제는 얼마나 많은 스레드를 사용하든, 초당 약 3 페이지 만 얻는다는 것입니다.HttpWebRequest의 동시 처리 제한
System.Net.ServicePointManager.DefaultConnectionLimit는 2이지만 도메인 당 연결 수와 관련이 있다는 인상을 받았습니다. 목록의 각 도메인은 고유하므로 문제가되지 않아야합니다.
그런 다음 WebResponse가 닫힐 때까지 GetResponse() 메서드가 다른 모든 프로세스의 액세스를 차단한다는 것을 알았습니다. http://www.codeproject.com/KB/IP/Crawler.aspx#WebRequest 웹을 통해이 클레임을 뒷받침하는 다른 정보를 찾지 못했습니다. 그러나 HTTP 요청을 구현했습니다. 소켓, 그리고 상당한 속도 (4 배에서 6 배)를 느꼈습니다.
내 질문 : HttpWebRequest 객체의 작동 방식을 정확히 아는 사람이 있습니까? 위에 언급 한 것 외에 다른 해결 방법이 있습니까? 아니면 C#으로 작성된 고속 웹 크롤러의 예가 있습니까?
도메인 당 연결 제한을 구성 할 수 있지만 기본적으로 연결 제한은 전역입니다. https://msdn.microsoft.com/en-us/library/fb6y0fyc.aspx – Todd