dbpedia 데이터를 커다란 덤프를 C# 응용 프로그램에로드하려고 할 때마다로드하려고 할 때마다 메모리가 부족합니다.거대한 DBpedia 덤프를로드하는 중 메모리가 부족합니다.
파일은 매우 큰 텍스트 파일로 수백만 개의 레코드를 보유하고 있으며 그 크기는 250MB 이상입니다 (그 중 하나는 실제로 7GB입니다!). 250MB 파일을 내 응용 프로그램에로드하려고하면 파일을 기다립니다 약 10 초 동안 내 RAM (6GB, 처음에는 2GB 사용)이 약 5GB로 증가하여 프로그램에서 메모리 부족 예외가 발생합니다.
메모리 부족 예외는 모두 메모리의 빈 인접한 덩어리에 관한 것이므로 프로그램에 이러한 파일을로드하는 방법을 알고 싶습니다.
다음은 파일을로드하는 데 사용하는 코드입니다. dotNetRDF 라이브러리를 사용하고 있습니다.
TripleStore temp = new TripleStore();
//adding Uris to the store
temp.LoadFromFile(@"C:\MyTripleStore\pnd_en.nt");
250MB 파일은 3GB를 차지하지 않습니다. 어떻게 파일을로드하고 있습니까? – Blorgbeard
파일에서 트리플 저장소를로드하는 dotNetRDF라는 라이브러리를 사용하고 있는데, loadFromFile()이라는 클래스의 함수가 있습니다. http://bit.ly/yqPpJB – SKandeel
로딩과 관련없는 방식을 찾을 수 없다면 먼저 전체 데이터베이스를 사용하면 더 많은 스왑을 추가 할 수 있습니다. –