Performance Issues
Roland Scheidegger
rscheidegger_lists at hispeed.ch
Thu Mar 16 11:37:30 PST 2006
Carsten Otto wrote:
> On Thu, Mar 16, 2006 at 07:18:58PM +0100, Roland Scheidegger wrote:
>> You could try oprofile to see where all the time is spent, chances are
>> there are only very few functions where all cpu cycles are spent. That
>> said, if those functions are somewhere inside the binary nvidia driver
>> you're using then that's probably nvidia's problem. Maybe the game does
>> something slightly unusual not accelerated by the nvidia driver.
>
> carsten-otto:~# opreport
> CPU: AMD64 processors, speed 2574.59 MHz (estimated)
> Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit mask of 0x00 (No unit mask) count 100000
> CPU_CLK_UNHALT...|
> samples| %|
> ------------------
> 1134192 45.2940 dnetc
> 1004802 40.1268 Xorg
> CPU_CLK_UNHALT...|
> samples| %|
> ------------------
> 776216 77.2506 anon (tgid:8509 range:0x957000-0x96d000)
> 192975 19.2053 anon (tgid:8509 range:0x9aa000-0x9b8000)
> 22072 2.1967 anon (tgid:8509 range:0x9f5000-0xad3000)
> 6045 0.6016 Xorg
> 5115 0.5091 anon (tgid:8509 range:0x989000-0x994000)
> 2059 0.2049 anon (tgid:8509 range:0x978000-0x988000)
> 205 0.0204 anon (tgid:8509 range:0x833000-0x836000)
> 38 0.0038 anon (tgid:8509 range:0x75e000-0x763000)
> 28 0.0028 anon (tgid:8509 range:0x997000-0x99c000)
> 18 0.0018 anon (tgid:8509 range:0x99d000-0x9a9000)
> 17 0.0017 anon (tgid:8509 range:0x84b000-0x886000)
> 7 7.0e-04 anon (tgid:8509 range:0x7f0000-0x7f2000)
> 7 7.0e-04 anon (tgid:8509 range:0x7f5000-0x7fa000)
> 171987 6.8683 vmlinux
> 64661 2.5822 libSDL-1.2.so.0.7.1
> 30792 1.2297 openttd
>
> Any idea how I can give those anon things names?
From http://oprofile.sourceforge.net/doc/opreport.html:
"Many applications, typically ones involving dynamic compilation into
machine code, have executable mappings that are not backed by an ELF
file. opreport has basic support for showing the samples taken in these
regions; for example:...
Currently, there is no support for getting symbol-based summaries for
such regions. Note that, since such mappings are dependent upon
individual invocations of a binary, these mappings are always listed as
a dependent image, even when using --separate=none. Equally, the results
are not affected by the --merge option."
Java does things like that, and I believe nvidia's driver is known to do
it do, at least for opengl, but for 2d? A bit weird but I guess this
really is the nvidia driver there. Not sure what you could do, as it's
2d only maybe try the open-source nv driver. Or try a newer libSDL.
Roland
More information about the xorg
mailing list