Hi All,
I have a simulation tool that runs under windows NT/2K directly from the DOS command shell. When running it on a Windows machine I get 200 cycle/s. When running it on Linux via Wine I get ~10 cycle/s. I didn't realize Wine would have such a negative performance impact. Is there any way to trace where the performance bottleneck is? I actually don't have access to the source of the simulation tool, so any optimizations would have to be done directly in Wine. I should also mention that to get this application to work with Wine I had to copy over the Microsoft visual c++ dll: msvcp60.dll. Would this somehow be impacting the execution performance?
By the way, I'm not sure if this is the right mail list for discussing performance issues. I tried the end user mail list but did not get a response from anyone.
Ewert, Mark a écrit :
Hi All,
I have a simulation tool that runs under windows NT/2K directly from the DOS command shell. When running it on a Windows machine I get 200 cycle/s. When running it on Linux via Wine I get ~10 cycle/s. I didn't realize Wine would have such a negative performance impact. Is there any way to trace where the performance bottleneck is?
there was, long ago, a wine specific tool to trace performance issue (cprof). But I don't know if someone actually maintained it. Basically, at that time it was needed to have a dedicated tool because 1/ wine is multithreaded, 2/ wine plays some tricks in scheduling/synchronization issues. However, if you have NTPL installed, there is some info available to use gprof (the standard GNU profiler) in multi-threaded environment. So gprof may work (but I'm not sure someone actually tried it).
I actually don't have access to the source of the simulation tool, so any optimizations would have to be done directly in Wine. I should also mention that to get this application to work with Wine I had to copy over the Microsoft visual c++ dll: msvcp60.dll. Would this somehow be impacting the execution performance?
Hard to tell. But since, we haven't really started the performance improvment phase, it's hard to give a precise answer on that.
By the way, I'm not sure if this is the right mail list for discussing performance issues. I tried the end user mail list but did not get a response from anyone.
it's the right one, especially if you're ready for some experiments A+
On Wed, 02 Jun 2004 21:30:36 +0200, Eric Pouech wrote:
there was, long ago, a wine specific tool to trace performance issue (cprof). But I don't know if someone actually maintained it. Basically, at that time it was needed to have a dedicated tool because 1/ wine is multithreaded, 2/ wine plays some tricks in scheduling/synchronization issues. However, if you have NTPL installed, there is some info available to use gprof (the standard GNU profiler) in multi-threaded environment. So gprof may work (but I'm not sure someone actually tried it).
The other alternative is to use oprofile (if you have kernel 2.6). This is apparently the best way to profile Wine. For one it lets you see global system view of where the time is being spent (so you can trace into the X server and such).
I actually don't have access to the source of the simulation tool, so any optimizations would have to be done directly in Wine. I should also mention that to get this application to work with Wine I had to copy over the Microsoft visual c++ dll: msvcp60.dll. Would this somehow be impacting the execution performance?
Hard to tell. But since, we haven't really started the performance improvment phase, it's hard to give a precise answer on that.
Using native DLLs normally improves performance, rather than makes it worse. Check the output of top - is the wineserver eating a considerable amount of CPU time?
thanks -mike