DVD와 같은 읽기 전용 파일 시스템에서 실행해야하는 대형 데이터베이스 (약 3.5GB)가있는 응용 프로그램이 있습니다. 그래서 내 프로그램은 하드 디스크에서 잘 작동하지만 DVD로 시작하는 것은 너무 느립니다.DVD에서 시작하는 속도가 너무 느립니다.
제 질문은 DVD로 빠르게 실행되도록 프로그램을 최적화하는 방법입니다.
DVD와 같은 읽기 전용 파일 시스템에서 실행해야하는 대형 데이터베이스 (약 3.5GB)가있는 응용 프로그램이 있습니다. 그래서 내 프로그램은 하드 디스크에서 잘 작동하지만 DVD로 시작하는 것은 너무 느립니다.DVD에서 시작하는 속도가 너무 느립니다.
제 질문은 DVD로 빠르게 실행되도록 프로그램을 최적화하는 방법입니다.
이것은 데이터베이스의 종류에 따라 전적으로 다릅니다. 행 기반이라고 가정합니다.
데이터베이스를 빨리 읽으려면 첫 번째 단계는 데이터베이스를 정렬하는 것입니다. 이는 이진 검색을 사용하여 특정 행을 매우 신속하게 검색 할 수 있기 때문에 중요합니다.
DVD에서 검색 할 때 RAM에 3.5Gb를로드하는 것은 DVD를 리핑하는 것만큼 오래 걸릴 것이므로 프로그램이 느리게 시작될 것입니다. 사전의 각 문자 시작에 대한 페이지 번호와 같은 특정 행의 위치를 가리키는 색인을 만드는 것을 고려하십시오. 그런 다음 필요한 행을 찾기 위해 데이터베이스의 작은 부분 만로드하면됩니다. 그런 다음 요구 사항 순서대로 부분을로드하여 RAM에 사전을 천천히 만듭니다 (즉, 무언가를 검색 할 때 먼저 해당 부분을로드하십시오).
특히 DVD는 더 빨리로드 할 수 있습니다. 스트리밍 압축 유형 (GZip 어쩌면, C#이 기본적으로 지원)을 사용하면 데이터를 빠르게 가져올 수 있습니다.
다시 말하지만, 이는 전적으로 여러분이하는 일에 달려 있습니다. 이것은 단지 일반적인 제안 일뿐입니다.
정확히 어떤 부분으로 내 데이터베이스를 쪼개서 데이터의 일부가 필요할 때 RAM에 데이터 부분을로드 할 때 – KF2
분명하지만 작은 부분을 만들려고 했습니까? – AStupidNoob
나는 이것을 더 많이 사용하지는 않았다. – KF2
애플리케이션을 프로파일 링해야합니다. 앱로드가 3 배나 빨라지는 은색 탄환이 없습니다. 분석, 프로필, 대기 시간을 유발하는 데이터 확인
로드하는 동안 예외를 포착하고 무시합니까? – Steve
DVD (또는 다른 광학 드라이브)는 본질적으로 고정 하드 드라이브 또는 대부분의 USB 드라이브에 비해 느린 매체입니다. 또한 읽기 전용 데이터베이스를 실행중인 경우 해당 데이터에 대한 파일 액세스를 처리하는 제 3 자 코드를 사용하여 많은 작업을 수행 할 수 없습니다. 정말로 DVD로 실행해야합니까? 예를 들어, 하드 디스크의 읽기 전용 폴더에서 실행할 수 있습니까? –
정확하게 내 응용 프로그램은 학습 패키지이며 실행 DVD를해야합니다. – KF2