http://bugs.winehq.org/show_bug.cgi?id=11364
Mikolaj Zalewski mikolaj.zalewski@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mikolaj.zalewski@gmail.com Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #16 from Mikolaj Zalewski mikolaj.zalewski@gmail.com 2008-07-05 11:45:08 --- On my system (kernel 2.6.20, Core 2 Duo T7300, Wine 1.1.0) I have on each CPU something around in 70% used user mode, 15% kernel mode and only 15% idle. But still, I got only some 23% preformance increase in multithreading mode, compared to 55% under Windows Vista.
I attached the debugger several times to WinRAR to check what the threads are doing. I have never seen one thread waiting for another on a lock - they were either both running WinRAR code or one was doing a server call related to thread creation or destruction (e.g. CloseHandle in user32 DLL_THREAD_DETACH or RtlAcquirePebLock in start_thread). WinRAR 2.71 doesn't use a thread pool but creates/destroys lots of threads. Maybe Windows thread creation/destruction code is more efficient than Wine's.
But that doesn't explain where the 15% idle time comes from. As far as I understand, the wineserver is single-threaded, but it only uses 2% CPU time, so this shouldn't be the problem.