프로그래밍 언어/C/C++

[C++11] std::function의 성능

소혼 2015. 5. 29. 09:38
반응형

std::function의 성능이 생각보다 많이 느리다는 것을 알게 되었다.


test.cpp

ryuan@webkit:~$ g++ ./test.cpp --std=c++11 -O3 -DINTERFACE_VERSION
ryuan@webkit:~$ ./a.out
main:96] 8 elapsed
ryuan@webkit:~$ g++ ./test.cpp --std=c++11 -O3 -DINTERFACE_VERSION_NO
ryuan@webkit./a.out
main:96] 437 elapsed


못쓰겠네 -_-;

http://probablydance.com/2013/01/13/a-faster-implementation-of-stdfunction/


[Update]

Modern Effective C++ Item 5 에 따르면

std::function은 단순히 closure와 유사한 것이 아니라 모든 callable object를 담는 것으로...

추가적인 heap 메모리를 사용하는 것 같다.


위 예제를 auto로 바꿔서 테스트해봐야겠다.

반응형

'프로그래밍 언어 > C/C++' 카테고리의 다른 글

[C++11] std::enable_shared_from_this  (0) 2018.02.06
[읽은 글] const correctness  (0) 2016.10.18
GCC options  (0) 2013.12.05
[C++11] Range based for loop  (4) 2013.11.13
[C++11] Move semantics  (5) 2013.11.10