komposter :
어떻게 생각하는지 말해봐 친구들. 내 뒤에 녹슬지 않을거야)
옵션으로...
1. 캐시를 만드십시오. 이 경우 메모리에 있는 것을 관리하게 됩니다. 알고리즘을 알고 있으므로 캐시를 효율적으로 만들 수 있습니다.
2. 파일에 매핑을 사용합니다. Windows 자체가 필요한 것을 캐시하므로 나사가 끼지 않습니다.
옵션으로...
1. 캐시를 만드십시오. 이 경우 메모리에 있는 것을 관리하게 됩니다. 알고리즘을 알고 있으므로 캐시를 효율적으로 만들 수 있습니다.
2. 파일에 매핑을 사용합니다. Windows 자체가 필요한 것을 캐시하므로 나사가 끼지 않습니다.
1. 이것은 캐시입니다... 아니면 무슨 말인지 이해가 되지 않습니다. 필요한 부분을 지속적으로 읽는 내 변형?
2. 조금 더 자세히 말씀해 주시겠습니까? 매핑은 무엇을 제공하고 어느 쪽에서 접근해야 합니까?
젠장...
32-битные архитектуры (Intel 386, ARM 9) не могут создавать отображения длиной более 4 Гб
같은 계란, 측면 만. 읽기 속도가 빨라질 수 있지만 이것이 전 세계적으로 문제를 해결하는 것은 아닙니다.
또 다른 생각은 모든 것을 DB(MySQL?)로 옮기고 작업하는 것입니다. 이론적으로 데이터베이스는 이러한 볼륨과 지속적인 삽질에 맞게 조정됩니다.
전문가가 있습니까? 누가 뭐라고 할까요?
1) 알고리즘을 어떻게든 변경할 수 있습니까? 처리할 블록(2GB)을 로드하려면 결과를 저장하고(짧게) 메모리를 비우고 다음 블록을 로드합니다...
그리고 마지막에 모든 결과를 다시 처리합니다.
2) 많은 메모리 작업이 해시, B-트리(및 해당 수정)를 기반으로 하는 결정과 관련되어 데이터베이스에 업로드됩니다.
1) 알고리즘을 어떻게든 변경할 수 있습니까? 처리할 블록(2GB)을 로드하려면 결과를 저장하고(짧게) 메모리를 비우고 다음 블록을 로드합니다...
그리고 마지막에 모든 결과를 다시 처리합니다.
2) 많은 메모리 작업이 해시, B-트리(및 해당 수정)를 기반으로 하는 결정과 관련되어 데이터베이스에 업로드됩니다.
1. 나는 이것에 대해 썼습니다 - 당신은 할 수 있지만 문제는 데이터를 여러 번 처리해야한다는 것입니다. 매우 느릴 것입니다.
2. 내일은 제가 직접 구글링해보겠습니다. 간단한 설명을 해주시면 감사하겠습니다.
1. 나는 이것에 대해 썼습니다 - 당신은 할 수 있지만 문제는 데이터를 여러 번 처리해야한다는 것입니다. 매우 느릴 것입니다.
2. 내일은 제가 직접 구글링해보겠습니다. 간단한 설명을 해주시면 감사하겠습니다.
비슷한 문제와 C ++로 해결하기 위한 옵션에 대해 토론한 사이트 가 생각났습니다.

- www.fulcrumweb.com.ua
1. 당연히 x64 시스템을 사용합니다.
2. Amazon EC2 클라우드에서 더 강력한 시스템을 임대하고 계산합니다.
3. 압축된 데이터를 사용하고 메모리에서 즉석에서 압축을 해제합니다. 실제 데이터는 스트림(부호/가수/지수)으로 분할할 때 더 잘 압축됩니다. 12비트 부동 소수점을 사용할 수 있습니다(정밀도를 희생하여).
4. EA 외부에서 빅 데이터(Matlab/R/etc)로 작업할 수 있는 계산을 수행합니다.
많은 양의 정보가 있습니다(텍스트 파일의 경우 약 20GB).
정보는 동일한 유형의 시퀀스로 구성되며 약 백만 개 있습니다.
모든 시퀀스 를 반복적으로 정렬하고 몇 가지 계산을 해야 합니다.
가장 먼저 떠오르는 것은 파일의 전체 내용을 읽고 구조 배열로 채우고 메모리에서 작업하는 것입니다.
그러나 다음 크기 조정에서 MT는 "메모리 처리기: 5610000바이트의 메모리를 할당할 수 없습니다"라고 맹세합니다.
동시에 디스패처는 terminal.exe가 3.5GB의 RAM(16개의 물리적 메모리 중)을 사용한다고 말합니다. 프로세스가 4GB만 받을 수 있기 때문인 것으로 알고 있습니다.
EA는 "메모리가 충분하지 않습니다( 4007Mb 사용, 88Mb 사용 가능, 4095Mb 총계)!!!"라고 말합니다.
그리고 이것은 필요한 볼륨의 15.3%에 불과합니다(앞으로 더 늘리고 싶습니다).
옵션 번호 2 - 파일을 읽을 때마다. 원하는 조각을 찾아 구조에 저장하고 다음 조각을 읽고 결과를 비교하고 구조를 덮어씁니다.
그리고 이 시퀀스를 한 번 거쳐야 한다면 그렇게 할 것입니다. 그러나 조금씩 앞으로 나아갈 때마다 반복해서 통과해야 합니다.
따라서 여러 번 읽어야 하며 다음과 같습니다.
정보량도 속상하다... 10기가가 되어 램디스크(사실상, 메모리)로 옮겨가서 읽고 싶은 만큼 읽었다. 예?
그리고 더 이상 상상력이 부족합니다.
많은 조각을 얻을 수 있도록 이러한 시퀀스를 재구성하려고 시도하지만 각 조각에는 현재 필요한 정보만 포함되어 있습니까?
여전히 데이터를 압축하려면(I 등은 가능한 모든 곳에서 char로 float)? 그러나 이것은 또 다른 최대 10-20%를 줄 것이고, 나는 크기를 한 단계 더 줄여야 합니다.
어떻게 생각하는지 말해봐, 친구들. 내 뒤에 녹슬지 않을거야)