2012-07-10 2 views
-2

무거운 컴퓨팅과 I/O 작업이있는 vb.net 응용 프로그램에서 작업 중이므로 재부팅 후 프로그램의 첫 번째 실행은 다음에 비해 너무 느립니다. 실행 시간 (완료까지 10 초 이상). 처음에는 CPU 사용량이 약 60 %에 도달했고 나중에 실행하면 90 %에서 100 %에 도달한다는 것을 알게되었습니다. 아무도 왜 그 일이 일어날 지 알고 있습니까?VB.net 응용 프로그램의 첫 번째 실행이 다음 실행에 비해 너무 느립니다.

+1

도움이 될 수있는 코드, 코드 예제 등에 대해 더 많은 정보가 필요합니다. –

답변

1

컴퓨터를 다시 부팅하면 메모리와 함께 캐시에 저장된 모든 내용이 덤프됩니다. 처음으로 프로그램을 실행할 때 VS는 프로그램 및 컴파일에 필요한 모든 어셈블리 및 라이브러리를 하드 드라이브에서 가져와야합니다. 첫 실행 후 (그리고 질문이 너무 모호하여 현재의 상황) VS는 다른 프로세스에서 필요하거나 VS를 닫을 때까지 메인 메모리에 모든 것을 보관합니다.

주 메모리가 기본 저장소보다 훨씬 빠르며 대부분의 외부 어셈블리가 프로그램 빌드로 컴파일되었으므로 후속 실행이 더 빠릅니다.

첫 번째 실행에서 CPU 사용량이 훨씬 낮은 이유는 CPU를 사용하기에 충분한 속도로 데이터를 하드 드라이브에서 읽을 수 없기 때문입니다!

+0

답변을 주신 크리스에게 감사의 말을 전하겠습니다. 캐싱 문제에 대한 해결책을 찾을 수 있도록 모든 것이 어떻게 작동하는지 설명하겠습니다 .im 2GB 정도의 대용량 파일 작업에서 memmappedfiles를 사용하여 두 번 읽으십시오. 가져올 수 없습니다. 전체 파일을 메모리에 저장합니다. 두 번째로 읽기 작업을 향상시킬 수있는 방법이 있다고 생각합니까? – user1514897

관련 문제