Hello, I have a win32 console program running on wine-1.1.7-1.12 (openSuSE 11.1 rc1) using two cpus. While the results are ok the performance of this program is very poor. After some testing and comparing with windows I have found: The program writes out its results on ascii files from time to time. This writing phase obviously takes much(!) longer on wine as on windows. And during this phase my cpu load is ~100% (i.e. one cpu is idle). My program and wineserver are about ~50% each. So it is clear, where it looses its performance. Running with WINEDEBUG=+warn, all a lot of KERNEL32.WaitForSingleObject, KERNEL32.InterlockedExchange and KERNEL32.ReleaseMutex messages show up (see logfile attached). What is going on here? Markus -- Sensationsangebot verl?ngert: GMX FreeDSL - Telefonanschluss + DSL f?r nur 16,37 Euro/mtl.!* http://dsl.gmx.de/?ac=OM.AD.PD003K1308T4569a -------------- next part -------------- A non-text attachment was scrubbed... Name: Logfile.gz Type: application/x-gzip Size: 1306 bytes Desc: not available Url : http://www.winehq.org/pipermail/wine-users/attachments/20081205/d8279432/attachment.bin
winefan wrote:> Running with WINEDEBUG=+warnDon't do that! You enabling heap "filler" - functions that fill released heap space with some byte pattern. It SIGNIFICANTLY reduces performance. If your program still works slower on Wine, you should look at what exactly you doing. And how to optimize it/change it. Some operations will always be slower on Wine because they have to go through or touch wineserver. On windows that would be kernel, on Wine it's a separate single-threaded process.
Hello, you may have misunderstood me. I added the WINEDEBUG after I saw its poor performance. With debug options it will run much slower, of course.> If your program still works slower on Wine, you should look at what exactly you doing.See my attachment. I am not familiar with the internals of wine. Seems my program is doing a lot of some kind of synchronisation between threads. Why is something time critical like this handled by a server process? Markus
Kinda the Incorrect question. Winefan. Wineserver is single threaded. There is a bug bear and a half. Going threw a multi threaded server would not have as much hit. Windows kernel is multi threaded wine replacement is not. Nice big annoying defect. It has to go to a server because under windows design kernel calls like all OS have a different memory space to applications. So yes there is information wineserver has that when security is built into wine your application will not in allowed to access. What is the bug number for wineserver to be converted from single threaded to multi-able. Because this could be another application to add to it as needing it fixed.