On Monday, February 4, 2013 1:39:46 PM UTC-8, Brian Smith wrote:
> Also, I want to echo khuey's comment: It seems like a lot of the argument 
> against PGO is that, while our benchmarks are faster, users won't actually 
> notice any difference. If that is true, then I agree with khuey that that is 
> a massive systemic failure; we shouldn't be guiding development based on 
> benchmarks that don't correlate positively with user-visible improvement. If 
> all of our benchmarks showing the benefits of PGO are useless and there 
> really isn't any difference between PGO and non-PGO builds, then I'm not 
> going to push for us to continue doing PGO builds any more. But, in that case 
> I hope we also come up with a plan for making better benchmarks.
> 
> And, also, if PGO doesn't have a significant positive performance difference, 
> I would be very curious as to why not. Is PGO snake oil in general? Is there 
> something about our codebase that is counter-productive to PGO? And, if the 
> latter, then is there anything we can do to undo that counter-productivity?

My measurements convinced me that PGO [1] is not useless, even if it's not also 
incredibly useful. 

First, benchmarks do matter, even if we think they are not measuring the right 
thing. Also, benchmarks usually have problems but aren't complete disasters, 
and optimizing for imperfect benchmarks has yielded real gains. 

Second, I did find a page that did dynamic rendering that had a 14% higher 
frame rate with PGO builds. Interestingly, Chrome, which I'm told does not use 
PGO for the same reasons we find it difficult to use, matches our PGO frame 
rate, which suggests there is something we could do in the code to make it 
faster. (With that code, would PGO make it 14% faster yet, or not?) Admittedly, 
that page isn't practical, but it is some sort of real page.

  One thing I did notice today is that on a MacBook Air rendering time
  is nontrivial, so we may be able to observe a CPU usage difference
  and/or pageload time difference on similar Windows hardware.

For the most part, at some point we just need to make our choice about the 
inevitable tradeoffs, see what happens, and revise if necessary. But I'm 
personally very happy that the discussion is going on for so long, because it 
seems like more and more ideas for both alternative paths and for figuring out 
which way is better coming up. Correct me if I'm wrong, but as I see it, this 
discussion has turned into a great example of collaborative analysis and idea 
generation.

Dave

[1] as applied in our current setup, to our current code base, yada yada yada...
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to