큰 (~ 2Gb) yaml
파일이 있습니다. 나는 yaml-cpp
라이브러리와 YAML::Loadfile
함수를 사용합니다. 하지만 RAM 부족 문제가 있습니다.yaml 파일을 여러 파일로 분할하는 방법은 무엇입니까?
작은 파일 하나 하나가 유효한 yaml
파일 (어쩌면 linux의 기능) 일 수있는 방식으로이 파일을 여러 개의 작은 파일로 분할하는 가장 쉬운 방법은 무엇입니까?
큰 (~ 2Gb) yaml
파일이 있습니다. 나는 yaml-cpp
라이브러리와 YAML::Loadfile
함수를 사용합니다. 하지만 RAM 부족 문제가 있습니다.yaml 파일을 여러 파일로 분할하는 방법은 무엇입니까?
작은 파일 하나 하나가 유효한 yaml
파일 (어쩌면 linux의 기능) 일 수있는 방식으로이 파일을 여러 개의 작은 파일로 분할하는 가장 쉬운 방법은 무엇입니까?
파일에 여러 개의 문서가있는 경우 회선의 시작 부분에서 ---
으로 분할 할 수 있습니다.
여러 문서가 없거나 문서가 너무 많지만 크기가 너무 큰 경우 문서의 최상위 또는 시퀀스에 매핑이 적용됩니다 (이론적으로 다중 문서를 가질 수도 있습니다) 라인 스칼라,하지만 그럴 것 같지 않습니다).
문서의 최상위 스타일이 으로 매핑되고 순서가 [ ]
인 흐름 스타일 인 경우 레이아웃은 레이아웃에 따라 크게 달라집니다. 그러나 블록 스타일을 사용하면 최상위 맵의 개별 키나 시퀀스의 요소를 쉽게 찾을 수 있습니다. 그들은 모두 첫 번째 요소와 동일한 들여 쓰기를 가지고 있습니다.
위의 정보를 기반으로 YAML 문서를 분할하고 각 요소를 자체적으로 처리하십시오.
이 파일을 내 RAM에로드 할 수 없습니다 ('최상위'는 잠시 동안 RAM의 100 % 사용량을 보여줍니다). –
왜 RAM에로드 하시겠습니까? 'head' 또는'grep -e '^ ---''를 사용하여 처음 몇 줄을 보면 여러 개의 문서가 있는지 확인할 수 있습니다. – Anthon
나는 그런 yaml 파일을 가지고있다. https://pastebin.com/J0mTqmWh –
이전 질문에 대한 [내 대답] (http://stackoverflow.com/a/42861599/347964) 옵션이 아닙니까? – flyx
@flyx 'HandleNextDocument'를 사용하는 예제를 찾을 수 없었고 다른 방법을 찾기로했습니다. –