[Wine] Big files; Slow I/O
L. Rahyen
research at science.su
Tue Nov 27 07:40:52 CST 2007
On Tuesday November 27 2007 12:36, Jean-Michel Bruenn wrote:
> Hello,
>
> this problem still isn't fixed. Nobody knows what to do and what it
> could be. Not in IRC, not in Bugzilla nor here. My last try: anyone
> else here some ideas? Profiling shows that there are a lot of
> "HeapAlloc" and shouldn't be. (Please take a look in the profiling logs
> in one of my previous mails)
That's because this problem is "hidden". For example if poor performance is
because of HeapAlloc() calls then this isn't useful information by itself -
we need to know what function is calling it so much times! What to do next?
Try to find out what functions are calling HeapAlloc() and how much times.
How? Use Valgrind.
Generally Valgrind is excellent and useful tool but unfortunately it is
*terrible* for profiling DirectX games (not only because of big overhead but
it also may crash or prevent a game from working correctly). However even if
it fail to work perfectly it *may* give some useful clues in its logs.
Install recent Valgrind and run your game like this:
rm -f callgrind.out.*;
valgrind --trace-children=yes --tool=callgrind game.exe
If you cannot exit from game correctly kill it (the game *not* Valgrind).
Then open non-empty callgrind.out.* files (for simple single-process games
without threads you will have one big callgrind.out.*) in kcachegrind. Please
note that kcachegrind can open only one file at a time (but you can open
multiple instances of it of course).
Now (hopefully) you can view visualized "Call graph" for any CPU-time
expensive function and you can easily find out what procedures are calling
it.
If you will post any callgrind.out.* files make sure to compress them with
bz2.
If Valgrind fail to work for you, try to use OProfile to create call-graph.
Personally, I never did this but I can give some useful links:
http://oprofile.sourceforge.net/doc/interpreting-callgraph.html
http://oprofile.sourceforge.net/patches/
http://ipaqprofiling.blogspot.com/2006/05/vizualizing-oprofile-call-graph-report.html
This is what I found after quick search. I've never used OProfile for
creating call-graphs so I don't know how useful they are in practice.
At least call-graphs from Valgrind are very useful but as I said it may not
work for some games at all.
More information about the wine-users
mailing list