scott.smith added a comment.

In https://reviews.llvm.org/D32757#743657, @clayborg wrote:

> In https://reviews.llvm.org/D32757#743567, @scott.smith wrote:
>
> > IMO, this is a simpler interface than TaskRunner.  Also, after this, there 
> > are no users of TaskRunner left.  Should I just delete them?
>
>
> I think you might not have understood TaskRunner's real benefits. It is smart 
> in the way it runs things: it lets you run N things and get each item **as 
> soon as it completes**. The TaskMap will serialize everything. So if you have 
> 100 items to do and item 0 takes 200 seconds to complete, and items 1 - 99 
> take 1ms to complete, you will need to wait for task 0 to complete before you 
> can start parsing the data. This will slow down the DWARF parser if you 
> switch over to this. TaskRunner should not be deleted as it has a very 
> specific purpose. Your TaskMap works fine for one case, but not in the other.


That may provide a benefit on machines with a few cores, but doesn't really 
help when you have 40+ cores.  Granted, the average laptop has 4 cores/8 
hyperthreads.

>> I did this change to help parallel symbol demangling (to come in a separate 
>> patch).  Rather than have the symbol demangler use batching, etc, I thought 
>> it should be a higher level function.
> 
> Make sure this is a win before switching demangling over to using threads. I 
> tried to improve performance on demangling before and I got worse performance 
> on MacOS when we tried it because all of the malloc contention and threading 
> overhead.

It is on my machine, but maybe not on other machines.  That would be 
unfortunate.  I'm guessing I shouldn't add go ahead and add jemalloc/tcmalloc 
to work around poor a MacOS malloc?  haha.


Repository:
  rL LLVM

https://reviews.llvm.org/D32757



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to