FBVector
2021-01-05
페이스북에서 공개한 FBVector..
(https://github.com/facebook/folly/blob/master/folly/docs/FBVector.md)
FBVector는 folly의 일부분으로 std::vector 를 대체하기위한 용도.
(folly는 C++의 std나 boost 라이브러리의 일부분을 개선하거나 대체 용도로 개발된 클래스 모음.)
일단 테스트해보니.. 속도면에서 상당한 개선이..
{ std::chrono::system_clock::time_point start = std::chrono::system_clock::now(); folly::fbvector<unsigned int> vec; for(int i=0; i<1000000000; i++) { vec.push_back(i); } std::chrono::duration<double> sec = std::chrono::system_clock::now() - start; std::cout << "FBVector: Time passed (sec) : " << sec.count() << " seconds" << std::endl; std::cout << "Press any key to next test." << std::endl; getchar(); vec.clear(); vec.shrink_to_fit(); } { std::chrono::system_clock::time_point start = std::chrono::system_clock::now(); std::vector<unsigned int> vec; for(int i=0; i<1000000000; i++) { vec.push_back(i); } std::chrono::duration<double> sec = std::chrono::system_clock::now() - start; std::cout << "Vector: Time passed (sec) : " << sec.count() << " seconds" << std::endl; std::cout << "Press any key to exit." << std::endl; getchar(); vec.clear(); vec.shrink_to_fit(); }
실행..
FBVector: Time passed (sec) : 9.05379 seconds Press any key to next test. Vector: Time passed (sec) : 16.3373 seconds Press any key to exit.
Categorized as: Programming
답글 남기기