20k + 라인이있는 .csv 파일을 읽으려고하고 있으며 각 라인에는 ~ 300 개의 필드가 있습니다.C++의 빠른 CSV 파서
줄 단위로 읽으려면 자체 코드를 사용하고 필드는 줄을 구분하고 해당하는 데이터 형식 (정수, 이중 등)으로 필드를 변환합니다. 그런 다음이 데이터는 생성자를 통해 클래스 객체로 전송됩니다.
그러나 매우 효율적이지는 않습니다. 이 20k + 라인을 읽고 20k + 오브젝트를 생성하는 데 약 1 분이 걸렸습니다.
저는 빠른 csv 파서에 대해 봤는데 많은 옵션이 있다는 것을 알았습니다. 나는 그 중 일부를 시도했지만, 시간 수행에별로 만족하지는 못했다.
누구나 대형 .csv 파일을 더 잘 읽을 수있는 방법이 있습니까? 미리 감사드립니다.
코드를 게시하면 최적화를 찾을 수 있습니다. – mark
요구 사항은 무엇입니까? "CSV"는 다소 모호합니다. 한때 내 파서와 같은 문제가있었습니다. 그것은 따옴표로 묶인 문자열, 이스케이프 된 따옴표 및 개행 문자 셀을 처리했으며 Excel의 CSV 이해와 호환되었습니다. 또 다른 성능 히트는 VS 2008의 변환에 대해 표준 C++'stringstream'을 사용하는 것이 었습니다.이 변환은 꽤 느리고 글로벌 잠금을 도입했습니다. http://stackoverflow.com/questions/1120140/csv-parser-in-c에서 제안서를 살펴 보았습니까? – mkluwe
예를 들어, 20k + 객체의 생성과 같은 모든 시간을 소비하는 _parsing_이라는 것을 어떻게 알 수 있습니까? – dhavenith