Hi,


   I wanted to do it since Andreas posted it. I simply never got the
time. Well, here it is, finally. I reformatted the benchmark results so
that they are sorted on the ratio windows score/wine score. The idea
being that it makes it clearer where are our weak points. 
   Well, the results speak for themselves.

   Actually no. Like all benchmarks the hardest part is to analyze the
results and come to the right conclusions. I won't pretend to present
any conclusion, just some more questions (which maybe are best left
open, I don't want to start a flamewar or something). 

 * I sorted the entries from our worst performance to the best on the
assumption that our results would benefit most from improving these
first. But then the benchmark must assign some sort of weight to each
test so if their range is large this may not be true.

 * Is optimizing the code based on these results really that good for
real life performance for 16bit applications. For instance, is
optimizing bit blits that important? Well, I guess this depends on the
benchmark's weights for each test and how good this benchmark is (was) 
in the first place. 

 * This is a 16bit benchmark but nowadays most applications are 32bits. 
To what extent do these results reflect the performance we would get
with a 32bit application? 

 * In any case this benchmark it only tests graphical so it only
presents a small view into Wine's performance. 

 * I was surprised (and still am) by the result we got on MoveTo
(MoveTo16 really). According to the test we are 11 times slower than
Windows? Yet MoveTo does not seem to be an API that does much. Of course
MoveTo is a very fast API in any case so this probably does not affect
our performance much in real life. What I wondered is how much of it
could be explained by general 'setup costs' (DC_GetDCUpdate,
GDI_ReleaseObj, system call?)

 * Most font based results are probably not very significant. If Wine
chose a replacement font that was bigger than that of Windows it would
have an impact on its performance. It could go the other way too of
course. 


   Well, on to the sorted results now (and thanks Andreas for providing
us with this data):

Ratio      Win           Wine          Test
  207.92         105.0           0.5   BltDIBits 4bpp
  197.65         101.0           0.5   BltDIBits 24bpp
  131.12         257.0           2.0   BitBltMonoMS SRCINVERT Al
  115.26          98.2           0.9   GWM/PolyLine
  115.12         236.0           2.0   BitBltMonoMS SRCINVERT Unal
   95.76         158.0           1.6   GWM/BitBltMonoMS, SRCAND, Al
   90.91         260.0           2.9   GWM/BitBltMS, Other, Al
   89.66         104.0           1.2   BltDIBits 8bpp
   64.75         395.0           6.1   BitBltSM, SRCCOPY, Al
   64.27         349.0           5.4   BitBltSM SRCCOPY Al
   63.21         122.0           1.9   BitBltSS SRCINVERT Al
   61.33           0.4           0.0   Pixel, Get
   58.01         210.0           3.6   GWM/PatBlt, ROP(0A), Unal
   56.13         316.0           5.6   BitBltSM SRCCOPY Unal
   55.61         114.0           2.0   BitBltSS SRCINVERT Unal
   52.48         159.0           3.0   BitBltMS SRCINVERT Al
   46.87         389.0           8.3   GWM/BitBltMS, SRCCOPY, Unal
   46.62          64.8           1.4   GWM/BitBltMS, Other, Unal
   46.27         149.0           3.2   BitBltMS SRCINVERT Unal
   42.34          26.8           0.6   GrayString, System
   41.68          27.8           0.7   DrawIcon
   41.39         149.0           3.6   Combined GWM2
   39.95         175.0           4.4   BitBltSM SRCINVERT Al
   39.86         342.0           8.6   BitBltMS SRCCOPY Al
   39.19          48.6           1.2   GWM/BitBltMonoMS, Other, Unal
   39.15          91.6           2.3   SetDIBitsToDevice 4
   36.92         395.0          10.7   GWM/BitBltMS, SRCCOPY, Al
   35.40         160.0           4.5   BitBltSM SRCINVERT Unal
   33.39          40.4           1.2   GWM/PatBlt, Other, Unal
   33.19          84.3           2.5   SetDIBitsToDevice 24
   32.78         316.0           9.6   BitBltMS SRCCOPY Unal
   30.05          12.5           0.4   StretchDIBits, 4
   28.82          24.7           0.9   GrayString, MS SSerif 13
   27.69          29.9           1.1   BltDIBits 1bpp SRCCOPY Unal
   26.85          92.9           3.5   GWM/SetDIBitsToDev, 4bpp, Unal
   26.21        2700.0         103.0   PaintRgn, Rectangular
   24.96          16.7           0.7   GrayString, MS SSerif 11
   24.23         205.0           8.5   TextOut, TNR 13
   24.12          27.5           1.1   GrayString, TNR 16
   24.04          25.0           1.0   GWM/PatBlt, ROP(A0), Unal
   23.82     5240000.0      220000.0   GetNearestColor
   23.01          19.9           0.9   GrayString, TNR 13
   22.44         114.0           5.1   SetDIBitsBlt 1bpp Unal
   22.41          17.1           0.8   GrayString, TNR 11
   22.35          89.4           4.0   SetDIBitsToDevice 8
   21.84          15.4           0.7   GrayString, MS SSerif Bold 11
   21.52          24.1           1.1   PolyLine
   20.27         195.0           9.6   TextOut, System
   19.76          14.8           0.7   StretchDIBits, 1bpp, SRCCOPY,..
   18.50          72.7           3.9   GWM/PatBlt, ROP(A5), Unal
   18.47          17.2           0.9   GWM/StretchBltMonoMS SRCAND Unal
   18.37          55.3           3.0   GWM/PatBlt, PATINVERT Unal
   18.32          17.2           0.9   GWM/StretchBltMonoMS SRCPAINT, ...
   18.23          51.4           2.8   GWM/PatBlt, PATINVERT Al
   18.05         168.0           9.3   GWM/ExtTextOut, Times New Roman 13
   17.77           7.2           0.4   StretchDIBits, 24
   16.81         607.0          36.1   GWM/FillRgn, Rectangular
   16.73         169.0          10.1   TextOut, Arial 10
   15.44         193.0          12.5   TextOut, Times New Roman 11
Ratio      Win           Wine          Test
   15.42          16.5           1.1   StretchDIBits, 4bpp, SRCCOPY..
   15.11         113.0           7.5   TabbedTextOut, System
   14.62         111.0           7.6   DrawText, System
   14.39        3080.0         214.0   PatBlt, PATCOPY, Al
   14.23          68.0           4.8   SetDIBitsBlt 4bpp
   14.00        3010.0         215.0   PatBlt, PATCOPY, Unal
   13.73         445.0          32.4   Combined GWM7
   13.49          11.1           0.8   StretchDIBits, 8
   13.33         136.0          10.2   TextOut, MS SSerif 11
   13.11        1350.0         103.0   GWM/PatBlt, PATCOPY Unal
   12.60         184.0          14.6   TextOut, MS SSerif 13
   11.40         520.0          45.6   Combined GWM6
   11.24         398.0          35.4   Combined GWM1
   11.06     7810000.0      706000.0   MoveTo
   10.77         407.0          37.8   Graph WinMark
   10.58          65.5           6.2   SetDIBitsBlt 24bpp
   10.41         252.0          24.2   TextOut, TNR 16
   10.36         231.0          22.3   Rectangle, Rounded
   10.21         196.0          19.2   GWM/ExtTextOut, System
   10.17           1.8           0.2   FloodFill
   10.14          35.8           3.5   GWM/Square
   10.11           1.8           0.2   ExtFloodFill, Border
    9.94          30.7           3.1   SetDIBitsToDevice 1bpp Unal
    9.93          14.8           1.5   GWM/Square, Rounded
    9.92        3520.0         355.0   PatBlt, BLACKNESS, Al
    9.86          65.5           6.6   SetDIBitsBlt 8bpp
    9.81         104.0          10.6   TabbedTextOut, MS SSerif 13
    9.77        3450.0         353.0   PatBlt, BLACKNESS, Unal
    9.71        3310.0         341.0   PatBlt, WHITENESS Unal
    9.60           1.7           0.2   EFF, Surface
    9.47        3230.0         341.0   PatBlt, WHITENESS Al
    9.37         104.0          11.1   DrawText, MS Sans Serif 13
    9.31         230.0          24.7   GWM/PatBlt, BLACKNESS, Unal
    9.00          65.7           7.3   DrawText, Times New Roman 13
    8.94         445.0          49.8   GWM/ExtTextOut, Rectangle
    8.84         130.0          14.7   GWM/ExtTextOut, Square
    8.78     6290000.0      716000.0   MoveToEx
    8.66          67.6           7.8   TabbedTextOut, MS SSerif 11
    8.65          44.2           5.1   GWM/Rectangle, Rounded
    8.31          59.0           7.1   TabbedTextOut, TNR 13
    8.26          66.5           8.1   DrawText, MS Sans Serif 11
    8.01        7180.0         896.0   GWM/PatBlt, WHITENESS, Unal
    7.79        1940.0         249.0   PaintRgn, Polygonal
    7.30        1730.0         237.0   Square
    6.88         236.0          34.3   Square, Rounded
    6.76          23.2           3.4   BitBltMonoMS Other Al
    6.71        7180.0        1070.0   GWM/PatBlt, WHITENESS, Al
    6.59         178.0          27.0   GWM/ExtTextOut, MS SSerif 13
    6.52          75.0          11.5   Combined GWM3
    6.50         132.0          20.3   GWM/ExtTextOut, MS SSerif 11
    6.44         389.0          60.4   BitBltSM, SRCCOPY, Unal
    6.33          69.6          11.0   TextOut, MS SSerif Bold 11
    6.30          22.5           3.6   BitBltMonoMS Other Unal
    6.12         150.0          24.5   GWM/ExtTextOut, Times New Roman 11
    5.86         252.0          43.0   Combined GWM5
    5.74          47.4           8.3   InvertRect, Square
    5.49          35.4           6.5   FillRect, Square
    5.42          53.5           9.9   DrawText, Times New Roman 11
    5.21         374.0          71.8   PaintRgn, Few-Sides, HV
Ratio      Win           Wine          Test
    5.18          49.3           9.5   Ellipse
    5.04          48.2           9.6   TabbedTextOut, TNR 11
    5.04          39.4           7.8   FrameRect, Square
    4.93          93.2          18.9   DrawText, Times New Roman 16
    4.91          27.6           5.6   Chord Elliptical
    4.91         212.0          43.2   GWM/ExtTextOut, Times New Roman 16
    4.90          40.8           8.3   TabbedTextOut, MS SSerif Bold...
    4.88          13.9           2.9   StretchBltMonoMS, Other, Al
    4.87          42.2           8.7   DrawText, MS Sans Serif Bold 11
    4.78           6.0           1.3   Arc Ell Complete
    4.66          84.9          18.2   TabbedTextOut, TNR 16
    4.63          89.8          19.4   FrameRect
    4.63         329.0          71.1   Polygon, Few-Sides
    4.58          21.4           4.7   DrawFocusRect
    4.54          37.9           8.3   Line, Diagonal
    4.48         292.0          65.2   FillRgn, Few-Sides, HV
    4.48           3.9           0.9   Arc Ell Partial
    4.46          12.9           2.9   StretchBltMonoMS, Other, Unal
    4.43          20.1           4.5   GWM/Line, Vertical
    4.39          43.8          10.0   Line, Horizontal
    4.38          36.0           8.2   Line, Vertical
    4.35         336.0          77.3   GWM/BitBltMonoMS, SRCCOPY Al
    4.28         396.0          92.5   BitBltMonoMS SRCCOPY Unal
    4.24         396.0          93.4   BitBltMonoMS SRCCOPY Al
    4.17         106.0          25.4   PolyPolygon
    4.15          46.9          11.3   GWM/Line, Horizontal
    4.06           6.0           1.5   GWM/Line, Diagonal
    4.02          25.8           6.4   GWM/Pie, Elliptical
    4.01         115.0          28.7   Polygon, Many-Sides
    3.96         515.0         130.0   GWM/BitBltMonoMS, SRCCOPY Unal
    3.88         178.0          45.9   Combined GWM4
    3.88         442.0         114.0   FillRect
    3.79           0.8           0.2   Pixel, Set
    3.75           8.0           2.1   BitBltMonoSM SRCCOPY Al
    3.71         519.0         140.0   Polygon, Trapezoid
    3.62        1260.0         348.0   GWM/Rectangle
    3.50         721.0         206.0   Rectangle
    3.46          74.3          21.5   GWM/ExtTextOut, SSerif Bold
    3.34        2600.0         779.0   GWM/PatBlt, PATCOPY Al
    3.32         472.0         142.0   GWM/PatBlt, DSTINVERT, Unal
    3.29           5.3           1.6   Arc Circular Complete
    3.19          17.1           5.4   Pie, Elliptical
    2.97          27.9           9.4   Chord Circular
    2.85          50.3          17.6   Circle
    2.83           2.4           0.8   GWM/StretchBltMS, SRCCOPY Unal
    2.73         185.0          67.8   InvertRgn, Few-Sides, HV
    2.67         344.0         129.0   Polygon, Triangle
    2.30         108.0          47.0   PaintRgn, Few-Sides, HVD
    2.25         232.0         103.0   BitBltSS SRCCOPY Al
    2.24           3.0           1.3   GWM/BitBltMonoSM, SRCCOPY, Unal
    2.23         207.0          92.7   GWM/FillRgn, Polygonal
    2.22           7.8           3.5   BitBltSS Other Al
    2.20           3.5           1.6   Arc Circular Partial
    2.13         133.0          62.3   GWM/Ellipse
    2.04         212.0         104.0   BitBltSS SRCCOPY Unal
    2.03          17.6           8.7   Pie, Circular
    2.02           7.1           3.5   StretchBltMonoSM, Other, Al
    1.92           6.9           3.6   StretchBltMonoSM, Other, Unal
    1.82         197.0         108.0   BitBltSS, SRCCOPY, Al
Ratio      Win           Wine          Test
    1.78         287.0         161.0   PatBlt, PATINVERT Al
    1.77         193.0         109.0   BitBltSS, SRCCOPY, Unal
    1.71           8.1           4.7   GWM/BitBltMonoSM, SRCCOPY, Al
    1.63         263.0         161.0   PatBlt, PATINVERT Unal
    1.55         213.0         137.0   GWM/InvertRgn, Rectangular
    1.53           4.7           3.1   BitBltMonoSM Other Al
    1.52         338.0         223.0   GWM/PatBlt, DSTINVERT, Al
    1.43           7.6           5.3   BitBltMS Other Aligned
    1.42           3.1           2.1   BitBltMonoSM SRCCOPY Unal
    1.36         211.0         155.0   ScrollDC
    1.35         288.0         213.0   PatBlt, DSTINVERT, Al
    1.32           2.8           2.1   BitBltMonoSM PATPAINT Al
    1.32           7.4           5.6   BitBltMS Other Unal
    1.32           4.1           3.1   BitBltMonoSM Other Unal
    1.32           2.8           2.1   BitBltMonoSM SRCINVERT Al
    1.30           2.8           2.1   BitBltMonoSM PATPAINT Unal
    1.29           2.8           2.1   BitBltMonoSM SRCINVERT Unal
    1.22         264.0         216.0   PatBlt, DSTINVERT, Unal
    1.19           7.6           6.4   BitBltSM Other Al
    1.14           7.4           6.5   BitBltSM Other Unal
    1.03           2.3           2.3   StretchBltSS, Other, Al
    0.95           1.8           1.9   BitBltMonoMS PATPAINT Al
    0.94           7.8           8.2   FrameRgn, Few-Sides, HV
    0.94           2.1           2.2   StretchBltSS, Other, Unal
    0.91           1.8           2.0   BitBltMonoMS PATPAINT Unal
    0.81           2.3           2.9   StretchBltMS, Other, Al
    0.80         215.0         270.0   InvertRect
    0.76           4.3           5.7   TextOut, Arial 10, 90
    0.75           2.1           2.8   StretchBltMS, Other, Unal
    0.69           2.3           3.4   StretchBltSM, Other, Al
    0.67           2.1           3.1   StretchBltSM, Other, Unal
    0.56           3.1           5.5   TextOut, Arial 10, 45
    0.36           0.7           1.9   BitBltSS PATPAINT Al
    0.36           7.8          21.9   BitBltSS Other Unal
    0.34           0.7           2.0   BitBltSS PATPAINT Unal
    0.22           0.7           3.1   BitBltMS PATPAINT, Unal
    0.16           0.7           4.3   BitBltSM PATPAINT Al
    0.15           0.7           4.4   BitBltSM PATPAINT Unal
    0.06           0.7          11.5   BitBltMS PATPAINT, Al
    0.00           0.0          57.7   FastWindowFrame


--
Francois Gouget         [EMAIL PROTECTED]        http://fgouget.free.fr/
                     Avoid the Gates of Hell - use Linux.


Reply via email to