반응형
std::function의 성능이 생각보다 많이 느리다는 것을 알게 되었다.
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 |