나는 파일에서 std::wstring
으로 매우 큰 XML 파일을로드해야하는 C++ 프로젝트 (VS2008
사용)에서 작업하고 있습니다.std :: string의 크기를 조정하는 가장 빠른 방법은 무엇입니까?
//std::wstring str;
//size_t ncbDataSz = file size in bytes
str.resize(ncbDataSz/sizeof(WCHAR));
하지만 내 현재의 문제는 resize
방법은 x64
에, (난 그냥 데이터 3GB의 그것을 테스트 큰 문자열 크기에 다소 시간이 오래 걸리는 것입니다 : 현재 데이터 전에 다음 줄 매장량 메모리로드 프로젝트, 데스크톱 PC에서 무료 RAM이 12GB
이고 완료하는 데 약 4-5 초가 걸렸습니다.)
궁금합니다. std::string
크기를 조정하는 더 빠른 (최적화 된) 방법이 있습니까? 나는 Windows 만 요구하고있다.
'std :: string :: reserve' 예비역,'std :: string :: resize' 또한 메모리에 쓴다. IM을 덮어 씁니다. mediate, 나는 생각한다. – LogicStuff
크기를 조정 하시겠습니까? – user463035818
@LogicStuff :'예약 '은 이상한 짐승입니다. 메모리를 "예약"하지만 연속 바이트 배열로 직접 액세스 할 수는 없습니다. 맞습니까? 그 위에'append'라고 부를 필요가 있습니다. 이 경우이 유형 최적화에 대해서는 나에게 쓸모가 없다. – c00000fd