[Bug 14601] WinRAR v3.7-v5.5 easter egg animation very slow, consuming 100% of one cpu core

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Oct 1 11:02:22 CDT 2018


https://bugs.winehq.org/show_bug.cgi?id=14601

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
            Summary|WinRAR easter egg animation |WinRAR v3.7-v5.5 easter egg
                   |very slow                   |animation very slow,
                   |                            |consuming 100% of one cpu
                   |                            |core
                 OS|other                       |Linux
           Hardware|Other                       |x86

--- Comment #16 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

can't reproduce the perceived animation slowness/performance problem either.

https://en.wikipedia.org/wiki/WinRAR#Easter_eggs

--- quote ---
* Up until version 5.50, clicking on the WinRAR logo in "About WinRAR" Help
menu made the ocean surf and waves move; mouse clicking with Shift pressed on
the logo generated a sailboat to the right of "WINRAR".[24]
* In the same dialog pressing the book icon causes it to bounce like a ball
until it comes to rest, with the Windows exclamation sound at each bounce.
--- quote ---

Hardware:

--- snip ---
$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  2
Core(s) per socket:  4
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               60
Model name:          Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz
Stepping:            3
CPU MHz:             3273.827
CPU max MHz:         3400.0000
CPU min MHz:         800.0000
BogoMIPS:            4789.28
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            6144K
NUMA node0 CPU(s):   0-7
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx
pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2
ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt
tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb
invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid
fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat
pln pts flush_l1d
--- snip ---

http://www.brendangregg.com/linuxperf.html

http://www.brendangregg.com/perf.html

I've tested with following Wine versions (100% = 1/8 cores = Irix mode).

* wine-1.5.9 (egg1: <2% on one core, egg2: WinRar 76%, wineserver 38%)
* wine-1.6 (egg1: <2% on one core, egg2: WinRar 76%, wineserver 38%)
* wine-1.9.0 (egg1: <2% on one core, egg2: WinRar 76%, wineserver 38%)
* wine-3.17 (egg1: <2% on one core, egg2: WinRar 78%, wineserver 36%)

Solaris mode: WinRar ~10%, wineserver 5% during egg2

--- snip ---
# run WinRAR
$ pwd
/home/focht/.wine/drive_c/Program Files (x86)/WinRAR

$ wine ./WinRAR.exe

--- snip ---
$ perf top --sort comm,dso -p $(pidof WinRAR.exe)

Samples: 48K of event 'cycles:uppp', 4000 Hz, Event count (approx.): 6845958246
Overhead  Command     Shared Object
  62.18%  WinRAR.exe  [kernel]
   8.39%  WinRAR.exe  ntdll.dll.so
   7.20%  WinRAR.exe  gdi32.dll.so
   4.21%  WinRAR.exe  libpthread-2.27.so
   4.07%  WinRAR.exe  libm-2.27.so
   3.31%  WinRAR.exe  user32.dll.so
   2.68%  WinRAR.exe  libX11.so.6.3.0
   2.17%  WinRAR.exe  winex11.drv.so
   2.02%  WinRAR.exe  libxcb.so.1.1.0
   1.36%  WinRAR.exe  perf-9110.map
   1.25%  WinRAR.exe  [vdso]
   0.62%  WinRAR.exe  libc-2.27.so
   0.43%  WinRAR.exe  kernel32.dll.so
   0.07%  WinRAR.exe  libwine.so.1.0
   0.02%  WinRAR.exe  comctl32.dll.so
   0.01%  WinRAR.exe  libfreetype.so.6.14.0
   0.01%  WinRAR.exe  libXext.so.6.4.0
   0.00%  WinRAR.exe  uxtheme.dll.so
--- snip ---

--- snip ---
$ perf top -p $(pidof WinRAR.exe)

Samples: 51K of event 'cycles:uppp', 4000 Hz, Event count (approx.): 4192414015
Overhead  Shared Object          Symbol
  58.63%  [kernel]               [k] 0xffffffff84a01704
   6.22%  libm-2.27.so           [.] __floor
   1.47%  gdi32.dll.so           [.] lp_to_dp
   1.09%  libxcb.so.1.1.0        [.] _xcb_in_read
   0.99%  ntdll.dll.so           [.] RtlEnterCriticalSection
   0.92%  libpthread-2.27.so     [.] __pthread_disable_asynccancel
   0.81%  ntdll.dll.so           [.] RtlLeaveCriticalSection
   0.78%  gdi32.dll.so           [.] dibdrv_GetPixel
   0.75%  libpthread-2.27.so     [.] __pthread_mutex_lock
   0.74%  ntdll.dll.so           [.] interlocked_xchg_add
   0.63%  winex11.drv.so         [.] x11drv_surface_flush
   0.61%  libpthread-2.27.so     [.] __libc_recvmsg
   0.61%  gdi32.dll.so           [.] handle_entry
   0.56%  gdi32.dll.so           [.] get_dib_rect
   0.55%  user32.dll.so          [.] peek_message
   0.52%  gdi32.dll.so           [.] get_physdev_dc
   0.49%  libpthread-2.27.so     [.] __pthread_mutex_unlock_usercnt
   0.46%  libxcb.so.1.1.0        [.] poll_for_reply
   0.42%  [vdso]                 [.] 0x0000000000001049
   0.39%  gdi32.dll.so           [.] GetPixel
--- snip ---

Scoped for gdi32.dll:

--- snip ---
Samples: 4K of event 'cycles:uppp', 4000 Hz, Event count (approx.): 421558982,
DSO: gdi32.dll.so
Overhead  Symbol
   7.92%  [.] lp_to_dp               
   3.16%  [.] dibdrv_GetPixel        
   2.63%  [.] get_dib_rect           
   2.59%  [.] handle_entry           
   2.15%  [.] GetPixel               
   1.85%  [.] get_physdev_dc         
   1.69%  [.] get_dc_ptr             
   1.58%  [.] intersect_rect         
   1.48%  [.] shrink_row_32          
   1.46%  [.] release_dc_ptr         
   1.10%  [.] update_dc              
   1.08%  [.] get_any_obj_ptr        
   1.02%  [.] do_rop_codes_32        
   0.96%  [.] is_rect_empty          
   0.88%  [.] get_pixel_32           
   0.87%  [.] dibdrv_SetPixel        
   0.79%  [.] clip_rect_to_dib       
   0.78%  [.] get_pixel_ptr_32       
   0.72%  [.] get_dc_obj             
   0.61%  [.] SetPixel               
   0.54%  [.] pixel_to_colorref_888  
   0.53%  [.] get_physdev_entry_point
   0.43%  [.] GDI_ReleaseObj         
   0.42%  [.] fill_with_pixel  
--- snip ---

Summarizing: No change between old Wine 1.5.x and recent Wine 3.17 version on
modern distros/hardware. The claimed 100% load (one core) for egg2 doesn't seem
questionable to me. There have been multiple reports that the cpu load is
similar compared to native Windows 8/10. Same with the animation speed - no
difference to native. I'm inclined to resolve here, although nothing was fixed
in Wine.

$ sha1sum wrar550.exe 
a827d89e1aa13177d97bbd378774fdabfbfa7592  wrar550.exe

$ du -sh wrar550.exe 
2.0M    wrar550.exe

$ wine --version
wine-3.17

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list