From: jon@robots.ox.ac.uk (Jon Tombs) Subject: X386 for the 486. Date: 14 Jul 1992 10:15:44 GMT
In case anyone else is interested, I've compiled X386 (from obz release
code), with -O2 -m486 to optimize for 486 machines. In the main it seems to
speed things up (especially on window operations), and I enclose the results
from x11perf.
ps
If you want to grab the -m486 X386 binary it is in
/pub/outgoing on ftp.robots.ox.ac.uk, it's a lttle bigger than the 386 code
as it also has the shape extension compiled in, plus the 486 overheads.
long timings follow, ratios > 1.00 are speedups:
1: x11perf.386
2: x11perf.486
1 2 ratio Operation
======== ======== ======== ============
108000.0 111000.0 1.03 Dot
51900.0 50800.0 0.98 1x1 rectangle
10500.0 10600.0 1.01 10x10 rectangle
456.0 459.0 1.01 100x100 rectangle
23.5 23.5 1.00 500x500 rectangle
38400.0 37200.0 0.97 1x1 stippled rectangle
8370.0 8190.0 0.98 10x10 stippled rectangle
122.0 123.0 1.01 100x100 stippled rectangle
13.4 13.6 1.01 500x500 stippled rectangle
38400.0 37800.0 0.98 1x1 opaque stippled rectangle
8750.0 8730.0 1.00 10x10 opaque stippled rectangle
125.0 128.0 1.02 100x100 opaque stippled rectangle
14.3 14.5 1.01 500x500 opaque stippled rectangle
41700.0 41200.0 0.99 1x1 4x4 tiled rectangle
13200.0 13100.0 0.99 10x10 4x4 tiled rectangle
516.0 515.0 1.00 100x100 4x4 tiled rectangle
24.1 24.1 1.00 500x500 4x4 tiled rectangle
34200.0 33700.0 0.99 1x1 161x145 stippled rectangle
5980.0 5910.0 0.99 10x10 161x145 stippled rectangle
126.0 123.0 0.98 100x100 161x145 stippled rectangle
5.5 5.3 0.96 500x500 161x145 stippled rectangle
34400.0 33700.0 0.98 1x1 161x145 opaque stippled rectangle
5990.0 5950.0 0.99 10x10 161x145 opaque stippled rectangle
126.0 123.0 0.98 100x100 161x145 opaque stippled rectangle
5.5 5.3 0.96 500x500 161x145 opaque stippled rectangle
32500.0 32700.0 1.01 1x1 161x145 tiled rectangle
6560.0 6570.0 1.00 10x10 161x145 tiled rectangle
281.0 284.0 1.01 100x100 161x145 tiled rectangle
15.3 15.6 1.02 500x500 161x145 tiled rectangle
34000.0 34400.0 1.01 1x1 216x208 tiled rectangle
7360.0 7450.0 1.01 10x10 216x208 tiled rectangle
294.0 314.0 1.07 100x100 216x208 tiled rectangle
15.2 16.6 1.09 500x500 216x208 tiled rectangle
42100.0 43900.0 1.04 1-pixel line segment
22500.0 23300.0 1.04 10-pixel line segment
4240.0 4360.0 1.03 100-pixel line segment
922.0 950.0 1.03 500-pixel line segment
4170.0 4270.0 1.02 100-pixel line segment (1 kid)
4040.0 4120.0 1.02 100-pixel line segment (2 kids)
3910.0 3980.0 1.02 100-pixel line segment (3 kids)
22800.0 23600.0 1.04 10-pixel dashed segment
5120.0 5290.0 1.03 100-pixel dashed segment
5110.0 5230.0 1.02 100-pixel double-dashed segment
39400.0 41200.0 1.05 10-pixel horizontal line segment
26400.0 27100.0 1.03 100-pixel horizontal line segment
10000.0 10100.0 1.01 500-pixel horizontal line segment
38100.0 39900.0 1.05 10-pixel vertical line segment
12700.0 12900.0 1.02 100-pixel vertical line segment
3180.0 3190.0 1.00 500-pixel vertical line segment
8800.0 8160.0 0.93 10x1 wide horizontal line segment
1940.0 1890.0 0.97 100x10 wide horizontal line segment
170.0 169.0 0.99 500x50 wide horizontal line segment
8800.0 8060.0 0.92 10x1 wide vertical line segment
888.0 887.0 1.00 100x10 wide vertical line segment
106.0 107.0 1.01 500x50 wide vertical line segment
54200.0 56700.0 1.05 1-pixel line
26500.0 27300.0 1.03 10-pixel line
4360.0 4490.0 1.03 100-pixel line
925.0 955.0 1.03 500-pixel line
25600.0 26400.0 1.03 10-pixel dashed line
5250.0 5420.0 1.03 100-pixel dashed line
5240.0 5360.0 1.02 100-pixel double-dashed line
4800.0 4760.0 0.99 10x1 wide line
709.0 714.0 1.01 100x10 wide line
96.2 96.3 1.00 500x50 wide line
370.0 373.0 1.01 100x10 wide dashed line
369.0 370.0 1.00 100x10 wide double-dashed line
12600.0 12600.0 1.00 10x10 rectangle outline
4690.0 4710.0 1.00 100x100 rectangle outline
1190.0 1180.0 0.99 500x500 rectangle outline
13200.0 13300.0 1.01 10x10 wide rectangle outline
530.0 535.0 1.01 100x100 wide rectangle outline
46.9 47.3 1.01 500x500 wide rectangle outline
19400.0 20100.0 1.04 1-pixel circle
6730.0 6910.0 1.03 10-pixel circle
976.0 996.0 1.02 100-pixel circle
205.0 209.0 1.02 500-pixel circle
456.0 456.0 1.00 100-pixel dashed circle
313.0 314.0 1.00 100-pixel double-dashed circle
4900.0 4890.0 1.00 10-pixel wide circle
373.0 376.0 1.01 100-pixel wide circle
42.9 43.0 1.00 500-pixel wide circle
32.1 31.9 0.99 100-pixel wide dashed circle
24.8 25.0 1.01 100-pixel wide double-dashed circle
6630.0 6720.0 1.01 10-pixel partial circle
1360.0 1370.0 1.01 100-pixel partial circle
313.0 312.0 1.00 10-pixel wide partial circle
110.0 111.0 1.01 100-pixel wide partial circle
76000.0 93000.0 1.22 1-pixel solid circle
8370.0 8470.0 1.01 10-pixel solid circle
500.0 500.0 1.00 100-pixel solid circle
29.2 29.2 1.00 500-pixel solid circle
4920.0 5020.0 1.02 10-pixel fill chord partial circle
665.0 667.0 1.00 100-pixel fill chord partial circle
4730.0 4790.0 1.01 10-pixel fill slice partial circle
632.0 634.0 1.00 100-pixel fill slice partial circle
7860.0 8030.0 1.02 10-pixel ellipse
1160.0 1180.0 1.02 100-pixel ellipse
242.0 245.0 1.01 500-pixel ellipse
557.0 558.0 1.00 100-pixel dashed ellipse
383.0 383.0 1.00 100-pixel double-dashed ellipse
5910.0 5880.0 0.99 10-pixel wide ellipse
511.0 514.0 1.01 100-pixel wide ellipse
58.4 58.6 1.00 500-pixel wide ellipse
17.6 17.7 1.01 100-pixel wide dashed ellipse
11.7 11.8 1.01 100-pixel wide double-dashed ellipse
6940.0 7080.0 1.02 10-pixel partial ellipse
1650.0 1660.0 1.01 100-pixel partial ellipse
225.0 223.0 0.99 10-pixel wide partial ellipse
49.5 50.0 1.01 100-pixel wide partial ellipse
11200.0 11300.0 1.01 10-pixel filled ellipse
845.0 847.0 1.00 100-pixel filled ellipse
55.9 56.0 1.00 500-pixel filled ellipse
5600.0 5640.0 1.01 10-pixel fill chord partial ellipse
1280.0 1280.0 1.00 100-pixel fill chord partial ellipse
5440.0 5460.0 1.00 10-pixel fill slice partial ellipse
1180.0 1180.0 1.00 100-pixel fill slice partial ellipse
11700.0 12100.0 1.03 Fill 1x1 equivalent triangle
4750.0 4910.0 1.03 Fill 10x10 equivalent triangle
330.0 335.0 1.02 Fill 100x100 equivalent triangle
5780.0 5990.0 1.04 Fill 10x10 trapezoid
369.0 373.0 1.01 Fill 100x100 trapezoid
3590.0 3630.0 1.01 Fill 10x10 stippled trapezoid
73.9 74.8 1.01 Fill 100x100 stippled trapezoid
3690.0 3780.0 1.02 Fill 10x10 opaque stippled trapezoid
112.0 114.0 1.02 Fill 100x100 opaque stippled trapezoid
4080.0 4170.0 1.02 Fill 10x10 tiled trapezoid
336.0 336.0 1.00 Fill 100x100 tiled trapezoid
2870.0 2920.0 1.02 Fill 10x10 161x145 stippled trapezoid
107.0 109.0 1.02 Fill 100x100 161x145 stippled trapezoid
2860.0 2920.0 1.02 Fill 10x10 161x145 opaque stippled trapezoid
107.0 109.0 1.02 Fill 100x100 161x145 opaque stippled trapezoid
2950.0 2960.0 1.00 Fill 10x10 161x145 tiled trapezoid
204.0 204.0 1.00 Fill 100x100 161x145 tiled trapezoid
3140.0 3100.0 0.99 Fill 10x10 216x208 tiled trapezoid
228.0 224.0 0.98 Fill 100x100 216x208 tiled trapezoid
2530.0 2480.0 0.98 Fill 10x10 equivalent complex polygon
219.0 220.0 1.00 Fill 100x100 equivalent complex polygons
13100.0 13200.0 1.01 Char in 80-char line (6x13)
12200.0 12200.0 1.00 Char in 70-char line (8x13)
10900.0 11000.0 1.01 Char in 60-char line (9x15)
36300.0 35200.0 0.97 Char in 80-char image line (6x13)
30800.0 30900.0 1.00 Char in 70-char image line (8x13)
18900.0 19500.0 1.03 Char in 60-char image line (9x15)
2390.0 2350.0 0.98 Scroll 10x10 pixels
124.0 124.0 1.00 Scroll 100x100 pixels
6.4 6.4 1.00 Scroll 500x500 pixels
2510.0 2510.0 1.00 Copy 10x10 from window to window
108.0 108.0 1.00 Copy 100x100 from window to window
5.3 5.3 1.00 Copy 500x500 from window to window
3280.0 3230.0 0.98 Copy 10x10 from pixmap to window
212.0 211.0 1.00 Copy 100x100 from pixmap to window
12.5 12.5 1.00 Copy 500x500 from pixmap to window
4260.0 4230.0 0.99 Copy 10x10 from window to pixmap
152.0 152.0 1.00 Copy 100x100 from window to pixmap
6.8 6.9 1.01 Copy 500x500 from window to pixmap
6760.0 6840.0 1.01 Copy 10x10 from pixmap to pixmap
333.0 334.0 1.00 Copy 100x100 from pixmap to pixmap
14.5 14.3 0.99 Copy 500x500 from pixmap to pixmap
4970.0 4890.0 0.98 Copy 10x10 1-bit deep plane
330.0 328.0 0.99 Copy 100x100 1-bit deep plane
18.0 17.8 0.99 Copy 500x500 1-bit deep plane
2070.0 2110.0 1.02 PutImage 10x10 square
51.8 53.8 1.04 PutImage 100x100 square
0.5 0.4 0.80 PutImage 500x500 square
258.0 271.0 1.05 GetImage 10x10 square
55.2 56.0 1.01 GetImage 100x100 square
2.6 2.6 1.00 GetImage 500x500 square
74600.0 77200.0 1.03 X protocol NoOperation
283.0 314.0 1.11 GetAtomName
288.0 299.0 1.04 GetProperty
8190.0 8720.0 1.06 Change graphics context
2230.0 2590.0 1.16 Create and map subwindows (4 kids)
2710.0 2980.0 1.10 Create and map subwindows (16 kids)
2790.0 2990.0 1.07 Create and map subwindows (25 kids)
2520.0 2690.0 1.07 Create and map subwindows (50 kids)
2620.0 2820.0 1.08 Create and map subwindows (75 kids)
2590.0 2770.0 1.07 Create and map subwindows (100 kids)
2340.0 2470.0 1.06 Create and map subwindows (200 kids)
5050.0 5630.0 1.11 Create unmapped window (4 kids)
5160.0 5840.0 1.13 Create unmapped window (16 kids)
5210.0 5800.0 1.11 Create unmapped window (25 kids)
5260.0 5800.0 1.10 Create unmapped window (50 kids)
5270.0 5840.0 1.11 Create unmapped window (75 kids)
5210.0 5840.0 1.12 Create unmapped window (100 kids)
5270.0 5910.0 1.12 Create unmapped window (200 kids)
2930.0 3330.0 1.14 Map window via parent (4 kids)
4360.0 4560.0 1.05 Map window via parent (16 kids)
4580.0 4750.0 1.04 Map window via parent (25 kids)
4630.0 4710.0 1.02 Map window via parent (50 kids)
4660.0 4740.0 1.02 Map window via parent (75 kids)
4700.0 4790.0 1.02 Map window via parent (100 kids)
4750.0 4740.0 1.00 Map window via parent (200 kids)
9780.0 10200.0 1.04 Unmap window via parent (4 kids)
19200.0 19800.0 1.03 Unmap window via parent (16 kids)
21700.0 21600.0 1.00 Unmap window via parent (25 kids)
23700.0 23600.0 1.00 Unmap window via parent (50 kids)
23900.0 25000.0 1.05 Unmap window via parent (75 kids)
25200.0 25000.0 0.99 Unmap window via parent (100 kids)
26600.0 26400.0 0.99 Unmap window via parent (200 kids)
5390.0 5500.0 1.02 Destroy window via parent (4 kids)
8270.0 8540.0 1.03 Destroy window via parent (16 kids)
8760.0 9060.0 1.03 Destroy window via parent (25 kids)
9420.0 9580.0 1.02 Destroy window via parent (50 kids)
9590.0 9960.0 1.04 Destroy window via parent (75 kids)
9400.0 9960.0 1.06 Destroy window via parent (100 kids)
9780.0 9960.0 1.02 Destroy window via parent (200 kids)
1380.0 1610.0 1.17 Hide/expose window via popup (4 kids)
2440.0 2680.0 1.10 Hide/expose window via popup (16 kids)
2710.0 2920.0 1.08 Hide/expose window via popup (25 kids)
2820.0 2980.0 1.06 Hide/expose window via popup (50 kids)
2880.0 3000.0 1.04 Hide/expose window via popup (75 kids)
2960.0 3060.0 1.03 Hide/expose window via popup (100 kids)
3020.0 3100.0 1.03 Hide/expose window via popup (200 kids)
851.0 1020.0 1.20 Move window (4 kids)
584.0 694.0 1.19 Move window (16 kids)
509.0 585.0 1.15 Move window (25 kids)
395.0 434.0 1.10 Move window (50 kids)
317.0 343.0 1.08 Move window (75 kids)
266.0 285.0 1.07 Move window (100 kids)
170.0 182.0 1.07 Move window (200 kids)
11300.0 14300.0 1.27 Moved unmapped window (4 kids)
11100.0 13900.0 1.25 Moved unmapped window (16 kids)
11000.0 13900.0 1.26 Moved unmapped window (25 kids)
10900.0 13900.0 1.28 Moved unmapped window (50 kids)
10900.0 13900.0 1.28 Moved unmapped window (75 kids)
10900.0 13800.0 1.27 Moved unmapped window (100 kids)
10600.0 13300.0 1.25 Moved unmapped window (200 kids)
2350.0 2570.0 1.09 Move window via parent (4 kids)
4340.0 4540.0 1.05 Move window via parent (16 kids)
4850.0 4940.0 1.02 Move window via parent (25 kids)
5300.0 5400.0 1.02 Move window via parent (50 kids)
5500.0 5600.0 1.02 Move window via parent (75 kids)
5630.0 5690.0 1.01 Move window via parent (100 kids)
5750.0 5790.0 1.01 Move window via parent (200 kids)
1020.0 1250.0 1.23 Resize window (4 kids)
768.0 932.0 1.21 Resize window (16 kids)
624.0 740.0 1.19 Resize window (25 kids)
492.0 559.0 1.14 Resize window (50 kids)
388.0 433.0 1.12 Resize window (75 kids)
335.0 365.0 1.09 Resize window (100 kids)
218.0 235.0 1.08 Resize window (200 kids)
10000.0 12500.0 1.25 Resize unmapped window (4 kids)
9900.0 12500.0 1.26 Resize unmapped window (16 kids)
9950.0 12500.0 1.26 Resize unmapped window (25 kids)
9870.0 12500.0 1.27 Resize unmapped window (50 kids)
9840.0 12400.0 1.26 Resize unmapped window (75 kids)
9890.0 12400.0 1.25 Resize unmapped window (100 kids)
9640.0 11900.0 1.23 Resize unmapped window (200 kids)
572.0 660.0 1.15 Circulate window (4 kids)
389.0 461.0 1.19 Circulate window (16 kids)
368.0 436.0 1.18 Circulate window (25 kids)
343.0 404.0 1.18 Circulate window (50 kids)
328.0 377.0 1.15 Circulate window (75 kids)
314.0 358.0 1.14 Circulate window (100 kids)
264.0 299.0 1.13 Circulate window (200 kids)
42100.0 41200.0 0.98 Circulate Unmapped window (4 kids)
35200.0 34100.0 0.97 Circulate Unmapped window (16 kids)
30400.0 29000.0 0.95 Circulate Unmapped window (25 kids)
19300.0 19100.0 0.99 Circulate Unmapped window (50 kids)
15000.0 15000.0 1.00 Circulate Unmapped window (75 kids)
12500.0 12400.0 0.99 Circulate Unmapped window (100 kids)
7050.0 7170.0 1.02 Circulate Unmapped window (200 kids)