[rust-dev] Performance optimization

Graydon Hoare graydon at mozilla.com
Fri Apr 6 21:31:38 PDT 2012


On 06/04/2012 6:19 PM, Sebastian Sylvan wrote:

> What do you guys use to profile rust programs? Just manual timers in
> the code, or do you have any tools to recommend?

On linux, I use 'perf', it's part of the kernel utilities, pretty widely 
available, very high quality. Hardware sampling, numerous hardware 
events, flat and hierarchical modes, differential modes, summary modes, etc.

(The graphs on bot.rust-lang.org are generated by parsing the output of 
perf runs)

> Having some kind of sampling profiler would be
> awesome.

Stock "system" profilers work on most platforms; our symbols can be read 
by them. Instruments, shark, xperf, oprofile, callgrind, etc.

> (I can't resist! Eye candy, as of last night:
> http://i.imgur.com/77lAr.png . That's 300k triangles, at 512x512 and
> 3x3 super sampling, with 1 area light and 1-bounce global
> illumination, Took just under 6 minutes on my Core i7 2600k - single
> core, since there's no real way to write parallel programs in rust
> yet).

Do you mean data-parallel or task-parallel? We are (I hope) able to do 
the latter reasonably well at this point. Not flawlessly, but tolerably.

-Graydon


More information about the Rust-dev mailing list