|
From: | Julien Bect |
Subject: | Re: For loop benchmarks between Octave versions |
Date: | Tue, 17 Jun 2014 17:11:50 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
Le 17/06/2014 16:49, John W. Eaton a écrit :
On 06/17/2014 09:29 AM, Julien Bect wrote:Le 17/06/2014 02:39, Rik a écrit :I find that this changeset: 12920:5d18231eee00 Extend profiling support to operators. produces a 50% slow down when using the for loop benchmark. Unless we can figure out a lower footprint way to do profiling we might be stuck with this part of the slowdown.The attached patch significantly improves the situation for me. On the gui-release branch, the runtime goes from 2.75 seconds to 2.16 seconds. Not a 50% improvement, though...Does declaring is_active "inline" really make a difference? I'd be surprised if that is not always inlined when the compiler is performing inlining optimizations.
Yes, I have tried both, and it does make a (small) difference.The main difference was obtained by calling profiler.is_active directly (2.75 -> 2.26, roughly).
The runtime dropped to 2.16 when I added inline.
I don't much like having to manually match up new/delete, so I'd rather see that go inside a constructor/destructor pair. Done properly and with inlining, I don't see why it would be inefficient and perhaps we could eliminate the BEGIN/END macros?
I try that right now.
[Prev in Thread] | Current Thread | [Next in Thread] |