|
Boost Users : |
Subject: Re: [Boost-users] boost::function performance issues with C++11
From: ·¹Í° (athrun911500_at_[hidden])
Date: 2014-07-04 19:23:07
Cool, that maybe helpful. I will try it and see if I can identify any thing interestring here.
Thanks
Athrun
At 2014-07-04 08:10:46, "Adam Romanek" <romanek.adam_at_[hidden]> wrote:
>On 03.07.2014 23:10, ·¹Í° wrote:
>> Hi,
>>
>> Does anyone know why -std=c++11 causes so much difference on
>> boost::function?
>>
>> I was planed to understand if there any performance issues with big size
>> of parameters.
>> So I wrote a function that takes a vector as parameter, like func2
>> shows. I know it's better to use a pointer or reference as function
>> parameter. I just want to evaluate the performance, so let's keep the
>> vector as parameter.
>>
>> However, I found that it's quite slow when compiled with -std=c++11. In
>> detail, it takes 173874 milliseconds with C++11, while it takes 3676
>> seconds without C++11.
>>
>> About 50 times slower!! How can that be?
>>
>> In my opinion, I thought boost::function should had the same performance
>> with std::function. So I decided to try std::function in C++11 directly,
>> Finally, it takes about 29233 milliseconds. That's till 8 times slows!
>>
>> Can anyone tell me what happend here?
>>
>> int func2(std::vector<int> i){
>> total += i.size();
>> return i.size();
>> }
>>
>> const int T = 1000000;
>> s = boost::chrono::system_clock::now();
>> for (int i = 0; i < T; ++i)
>> call(boost::bind(&func2, v));
>> e = boost::chrono::system_clock::now();
>>
>> In case you need to know my enviorment, my OS is Arch, compiler is gcc
>> 4.9.0, and optimizations are default.
>> The execution time (ms) of three versions I tried:
>> boost::function with C++11 : 173874
>> boost::function without C++11 : 3676
>> std::function in C++11 : 29233
>>
>> Any thoughts are appreciated!
>
>Hi!
>
>I'd run the example code through Callgrind (valgrind --tool=callgrind)
>and then compare the reports in KCachegrind. This should at least give
>you an idea of the source of the problem.
>
>I may do that myself during the weekend in case you would not able to do
>that on your own.
>
>WBR,
>Adam Romanek
>
>
>_______________________________________________
>Boost-users mailing list
>Boost-users_at_[hidden]
>http://lists.boost.org/mailman/listinfo.cgi/boost-users
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net