[Lldb-commits] [lldb] r105834 - in /lldb/trunk: include/lldb/Symbol/Symtab.h source/Symbol/Symtab.cpp
Owen Anderson
resistor at mac.com
Wed Jun 16 10:22:14 PDT 2010
Assuming you meant "purge" at the command line, I still measure 0.052s for -Os with std::stable_sort. If there's nothing else you want me to test, I'll go ahead and commit it with that.
--Owen
On Jun 16, 2010, at 10:19 AM, Greg Clayton wrote:
> Great news. Try testing this same stuff after a "purge" (clear the file caches). The "purge" is not a great test, but it gives you a bit of an idea of how things would perform if nothing was in the file cache...
>
> If things turn out the same as before, feel free to checkin the std::stable_sort fix.
>
> Greg Clayton
>
> On Jun 16, 2010, at 10:04 AM, Owen Anderson wrote:
>
>> OK, I just performed these measurements on 64-bit 10.6, with both -Os and -O3 builds of lldb. In both cases, std::sort was on the order of 50% slower than qsort_r:
>>
>> -Os -O3
>> std::sort 0.118s 0.103s
>> qsort_r 0.077s 0.078s
>>
>> However, here's the interesting part:
>>
>> std::stable_sort 0.051s 0.048s
>>
>> So, it looks like the symbol tables are already mostly sorted, and a simple insertion sort is able to "complete" the sort quickly. FWIW, this would also be a good place to apply TimSort or some other heuristic sort.
>>
>> --Owen
>>
>>
>> On Jun 16, 2010, at 9:27 AM, Greg Clayton wrote:
>>
>>> We start with "Sketch" from the /Developer/Expamples. It loads 91 shared libraries right off the bat, and if you then type:
>>>
>>> (lldb) log timers enable
>>> (lldb) breakpoint set --name main
>>> (lldb) log timers disable
>>>
>>> All of the symbol tables will be pulled in, and it will dump the timing information.
>>>
>>> You will first need to add a scoped timer to the top of:
>>>
>>> Symtab::SortSymbolIndexesByValue()
>>>
>>> The easiest way is:
>>>
>>> Timer scoped_timer (__PRETTY_FUNCTION__,__PRETTY_FUNCTION__);
>>>
>>> Then you should see an entry in the timer dump for Symtab::SortSymbolIndexesByValue when the "log timers disable" is run with a total time.
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20100616/9e327f18/attachment.html>
More information about the lldb-commits
mailing list