2011-06-14 2 views
1

System.Diagnostics 네임 스페이스를 사용하여 서버에서 응용 프로그램 로그를 읽을 때 흥미로운 문제가 발생합니다. 나중의 사용을 위해 ~ 16,000 개의 항목을 다른 파일로 읽고 있습니다. 예 :EventLogEntry.Message 가속화

CurrentEntry.Message를 작성하기 전까지는 모든 것이 잘 작동하는 것 같습니다. 이 시점에서 전체 로그는 약 1 초 만에 실행되는 것에서 100 개 항목마다 1 초 이상 걸립니다. 누구든지이 속도를 높이거나 매번 올바른 DLL을 확인하지 않도록 방법을 속이는 창조적 인 솔루션이 있습니까?

감사합니다.

답변

1

귀하의 문제는 DLL 검사와 관련이 없지만 간단한 텍스트 렌더링과 관련이 있다고 생각합니다. 이벤트 ID 및 항목 유형이 작습니다. 그들은 빨리 쓰여질 수 있습니다. 메시지는 BIG이며 일반적으로 많은 텍스트가 포함되어 있으므로 화면 렌더링에 오랜 시간이 걸립니다.

제안 : 반복되는 Console.WriteLines 대신 StringBuilder를 만들고 모든 텍스트를 추가합니다. 마지막에는 단일 Console.WriteLine (myStringBuilder.ToStrion());

도움이 될 수 있습니다.

+0

이것이 문제인지 확인하려면 출력을 파일로 직접 파이프하는 것을 고려하십시오. 시간이 많이 걸리면 문제를 발견했습니다. C : \ code \ log \ bin \ debug> MyExe.exe> ​​output.txt –

+0

파일 작업이 일반적으로 메모리 조작보다 비용이 많이 드는 것처럼 출력이 버퍼링되므로 다소 예측할 수 없으므로 파일 접근 방식에 대해 질문합니다. 그래도 결과를 보는 것이 재미 있습니다. –

+0

Console.WriteLine이 @ Ben의 컴퓨터에서 느리게 작동하는 경우 디스크 입출력 시간과 혼동 될 수 있습니다. (디스플레이 드라이버가 최신인지 확인하십시오.) –