나는 웹 사이트에서 900+ 주식에 대한 실시간 시세를 추출하는 프로그램을 연구 중이다. 나는 다음과 같은 코드를 사용하여 스트림을 사이트 및 저장소에 스트림에 대한 응답을 HTTP 요청을 보내고 열을 HttpWebRequest를 사용실시간 주식 시세, StreamReader 성능 최적화
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream)
수신 된 HTML의 크기가 큰 (5000 개 라인), 그것은 너무 그것을 파싱하고 가격을 추출하는데 오랜 시간이 걸린다. 900 파일의 경우 파싱 및 추출에 약 6 분이 소요됩니다. 내 상사가 만족스럽지 않다고 말하면 그는 전체 과정을 2 분 안에 완료하기를 원한다고 말했다.
필자는 프로그램을 분석하고 추출하는 데 대부분의 시간이 걸리는 부분을 확인했습니다. 내가 빨리를 만들기 위해 코드를 최적화하기 위해 노력했습니다, 다음은 좀 최적화 후 지금 무엇을 입니다 :
// skip lines at the top
for(int i=0;i<1500;++i)
reader.ReadLine();
// read the line that contains the price
string theLine = reader.ReadLine();
// ... extract the price from the line
지금은 모든 파일을 처리하는 데 약 4 분 소요 여전히 상당한 격차가있다 내 상사가 기대하는 것까지 그래서 궁금하네요. 다른 방법으로 제가 파싱을 더 빠르게하고 압축을 풀고 2 분 이내에 모든 것을 할 수 있습니까?
파일에서 수행중인 처리의 유형이나 형식이 무엇인지 알 수 없습니다. 좀 더 많은 코드가 도움을 줄 수 있습니다. – AaronLS
나는 하나의 스레드가 파일을 읽고 다른 스레드가 내용을 가져 와서 처리하는 등의 다중 스레드를 고려할 것이다. – AaronLS
나는 i = 0 ~ 1500 루프를 좋아하지 않는다. 좀 더 많은 정보 나 코드를 제공 할 수 있습니까? –