Skip to content

**** ****

for my bad memories..

FBVector


페이스북에서 공개한 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



답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다


이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.