http://bugs.winehq.org/show_bug.cgi?id=17200
Jeff Zaroyko jeffz@jeffz.name changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #5 from Jeff Zaroyko jeffz@jeffz.name 2010-06-15 22:14:38 --- Confirming with Wine 1.2-rc3. On my Intel Core 2 Quad @ 2.4GHz what I can see is maybe 10 seconds or so into the music CPU usage starts to hover around 20-24%. Comparing to Windows Vista on a Core 2 Duo @ 2.53Ghz it hardly goes above 10-11%.
Looking at the results of oprofile I suspect it's our naive implementation of _CIcos. The application calls it a lot, we call MSVCRT_cos which calls libm cos. I tried replacing this behavior with inline assembly using fcos, but it was hardly improved, maybe a better optimised version would suit? If so _CIsin could probably be improved in a similar manner.
samples % image name symbol name 25055 45.4150 anon (tgid:8086 range:0x434000-0x4d6000) (no symbols) 15759 28.5650 libm-2.7.so cos 3348 6.0686 libm-2.7.so sin 2101 3.8083 msvcrt.dll.so MSVCRT_cos 1802 3.2663 ntdll.dll.so NTDLL__ftol 1298 2.3528 msvcrt.dll.so _CIcos 921 1.6694 libc-2.7.so finite 902 1.6350 msvcrt.dll.so __i686.get_pc_thunk.bx 808 1.4646 msvcrt.dll.so MSVCRT_sin 777 1.4084 msvcrt.dll.so .plt 766 1.3885 libasound.so.2.0.0 (no symbols) 696 1.2616 msvcrt.dll.so _CIsin 169 0.3063 anon (tgid:8086 range:0x0-0x110000) (no symbols) 78 0.1414 libm-2.7.so __ieee754_pow 35 0.0634 vmlinux cache_estimate 35 0.0634 vmlinux may_open 34 0.0616 dsound.dll.so convert_16_to_16 27 0.0489 dsound.dll.so mix16