[PATCH] D20993: Add support for collating profiles for use with code coverage

Vedant Kumar via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 10 18:17:26 PDT 2016


> On Jun 10, 2016, at 5:06 PM, Xinliang David Li <davidxl at google.com> wrote:
> 
> 
> 
> On Fri, Jun 10, 2016 at 4:35 PM, Vedant Kumar <vsk at apple.com> wrote:
> vsk added a comment.
> 
> In http://reviews.llvm.org/D20993#454452, @davidxl wrote:
> 
> > Why choosing default size of 9? Do you have build time comparison numbers i.e., pool size from 1 to 9?
> 
> 
> I chose 9 because it's the highest option: a larger pool of raw profiles should theoretically lead to less lock contention. Ideally this would be some factor of the number of threads on the system. However, I don't think it's worth optimizing this default.
> 
> 
> That is fine. My recollection is that 9 or larger is only needed when network storage system is used. For local HDD, the performance flats out quickly at pool size of 3 or 4 so you get diminishing returns while the storage size cost and post-processing time is increased.  For SSD, 1 is just as good as 2 or higher.

Thanks for sharing this!

I went back and measured the time for check-llvm-unit (4-core iMac, fusion drive):

Size=1: Average 17.20s
Size=4: Average 16.19s
Size=9: Average 16.21s

I think 4 is a more reasonable default, then.

vedant

> 
> 
> David
>  
> > Also, writing it in Python makes it pretty portable for free and is generally more readable.
> 
> 
> Sure, I'll upload a new diff with this change.
> 
> 
> http://reviews.llvm.org/D20993
> 
> 
> 
> 



More information about the llvm-commits mailing list