Sign in Join
Wiki copytemporary

GraphicTest/ja: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: GraphicTest/ja

OldNewLine
1+## 導入
2+
3+GraphicTest は、様々な direct drawing methods (直接描画手法) によるFPSを計測するプログラムです。目的は、オフスクリーンでのカスタムビットマップを画面上の表示エリアにコピーする場合に、どの手法が最速かを決めるためです。
4+
5+後述するベンチマークの結果は、以下に依存します:
6+
7+- コンピューターのハードウェア
8+- コンパイラの最適化オプションの有無
9+- OS
10+- 使われている GUI ツールキット
11+- VSYNC と FPS 上限
12+- ディスプレイの色深度 (デフォルトは 32-bit)
13+- 計測に用いる画像の解像度 (デフォルトは 320x240)
14+
15+いくつかのプラットフォームでより良い、または、より悪い結果を求めるためには、描画手法における B(Blue)とR(Red)のコンポーネントを入れ替えることが必要になります。
16+
17+### Test 1
18+
19+**Hardware:** AMD Turion X2 1,8 GHz, 2 GB RAM, HD2400
20+
21+#### Test 1.1
22+
23+**OS:** Ubuntu 12.10, GNU/Linux kernel 3.5.0 i686, Gtk2
24+
25+| Method | FPS | Frame duration \[ms\] |
26+|--------------------------------------|---------|-----------------------|
27+| TBitmap.Canvas.Pixels | 1 | 1031.7 |
28+| TBitmap.Canvas.Pixels Update locking | 3.2 | 308.1 |
29+| TLazIntfImage.Colors copy | 54.3 | 18.4 |
30+| TLazIntfImage.Colors no copy | 64.4 | 15.5 |
31+| TBitmap.RawImage.Data | 102.2 | 9.8 |
32+| TBitmap.RawImage.Data PaintBox | 102.5 | 9.8 |
33+| TBitmap.RawImage.Data Move | 116 | 8.6 |
34+| TBGRABitmap PaintBox | 123.1 | 8.1 |
35+| TGR32Image | 68.5 | 14.6 |
36+| OpenGL | 56.7 | 17.6 |
37+| OpenGL PBO | 152.4 | 6.6 |
38+| Dummy | 38166.3 | 0 |
39+
40+#### Test 1.2
41+
42+**OS:** Ubuntu 12.10, GNU/Linux kernel 3.5.0 i686, Qt4
43+
44+| Method | FPS | Frame duration \[ms\] |
45+|--------------------------------------|-------|-----------------------|
46+| TBitmap.Canvas.Pixels | 3.2 | 312.8 |
47+| TBitmap.Canvas.Pixels Update locking | 4.3 | 232.3 |
48+| TLazIntfImage.Colors copy | 80.1 | 12.5 |
49+| TLazIntfImage.Colors no copy | 85.1 | 11.7 |
50+| TBitmap.RawImage.Data | 223.4 | 4.5 |
51+| TBitmap.RawImage.Data PaintBox | 225.9 | 4.4 |
52+| TBitmap.RawImage.Data Move | 276.9 | 3.6 |
53+| TBGRABitmap PaintBox | 112.5 | 8.9 |
54+| Dummy | 489.6 | 2 |
55+
56+#### Test 1.3
57+
58+**OS:** Windows 8 32-bit
59+
60+| Method | FPS | Frame duration \[ms\] |
61+|--------------------------------------|--------|-----------------------|
62+| TBitmap.Canvas.Pixels | 2,8 | 351 |
63+| TBitmap.Canvas.Pixels Update locking | 9,6 | 103,9 |
64+| TLazIntfImage.Colors copy | 93,6 | 10,7 |
65+| TLazIntfImage.Colors no copy | 97,8 | 10,2 |
66+| TBitmap.RawImage.Data | 258,2 | 3,9 |
67+| TBitmap.RawImage.Data PaintBox | 256,6 | 3,9 |
68+| TBitmap.RawImage.Data Move | 342,5 | 2,9 |
69+| TBGRABitmap PaintBox | 428 | 2,3 |
70+| TGR32Image | 464,8 | 2,2 |
71+| OpenGL | 221,6 | 4,5 |
72+| OpenGL PBO | 330,7 | 3 |
73+| Dummy | 112824 | 0 |
74+
75+### Test 3
76+
77+**Hardware:** Intel Celeron CPU 2.66 GHz, 1.50 GB RAM, NVIDIA GeForce 6200.
78+
79+**OS:** Windows 7 x86.
80+
81+| Method | FPS | Duration |
82+|--------------------------------------|------|----------|
83+| TBitmap.Canvas.Pixels | 1.44 | 694.82 |
84+| TBitmap.Canvas.Pixels Update locking | 7.81 | 128.07 |
85+| TLazIntfImage.Colors copy | 96.6 | 10.35 |
86+| TLazIntfImage.Colors no copy | 96.7 | 10.34 |
87+| TBitmap.RawImage.Data | 462 | 2.16 |
88+| TBitmap.RawImage.Data PaintBox | 482 | 2.07 |
89+| TBGRABitmap PaintBox | 369 | 2.70 |
90+| OpenGL | 60.2 | 16.61 |
91+| OpenGL PBO | 60.1 | 16.63 |
92+
93+**Conclusion** the faster method (less duration in ms) with highest fps:
94+
95+1\) Bitmap.RawImage.Data PaintBox
96+
97+2\) TBitmap.RawImage.Data
98+
99+3\) TBGRABitmap PaintBox
100+
101+### Test 4
102+
103+**Hardware:** AMD Sempron 1,6 GHz, 1 GB DDR, NVIDIA GeForce FX 5200
104+
105+**OS:** Windows XP SP3
106+
107+| Method | FPS | Frame duration \[ms\] |
108+|--------------------------------------|-------|-----------------------|
109+| TBitmap.Canvas.Pixels | 3,7 | 267,6 |
110+| TBitmap.Canvas.Pixels Update locking | 12,7 | 78,6 |
111+| TLazIntfImage.Colors copy | 76,2 | 13,1 |
112+| TLazIntfImage.Colors no copy | 85,9 | 11,6 |
113+| TBitmap.RawImage.Data | 205 | 4,9 |
114+| TBitmap.RawImage.Data PaintBox | 295,3 | 3,4 |
115+| TBitmap.RawImage.Data Move | 241,3 | 4,1 |
116+| TBGRABitmap PaintBox | 343,7 | 2,9 |
117+| TGR32Image | 320,8 | 3,1 |
118+| OpenGL | 7,1 | 141,5 |
119+| OpenGL PBO | 6,5 | 154,6 |
120+| Dummy | 88110 | 0 |
121+
122+### Test 5
123+
124+**Conditions:** Intel Core 2 Duo 2,66 GHz; 2 GB DDR2, NVIDIA GeForce 8600 GT, Windows XP SP3 32-bit
125+
126+| Method | FPS | Frame duration \[ms\] |
127+|--------------------------------------|----------|-----------------------|
128+| TBitmap.Canvas.Pixels | 7,2 | 138,9 |
129+| TBitmap.Canvas.Pixels Update locking | 28,4 | 35,2 |
130+| TLazIntfImage.Colors copy | 183,4 | 5,5 |
131+| TLazIntfImage.Colors no copy | 207,8 | 4,8 |
132+| TBitmap.RawImage.Data | 680,8 | 1,5 |
133+| TBitmap.RawImage.Data PaintBox | 1124,5 | 0,9 |
134+| TBitmap.RawImage.Data Move | 781,6 | 1,3 |
135+| TBGRABitmap PaintBox | 1093,2 | 0,9 |
136+| TGR32Image | 1954,1 | 0,5 |
137+| OpenGL | 963,3 | 1 |
138+| OpenGL PBO | 1757,4 | 0,6 |
139+| Dummy | 401069,4 | 0 |
140+
141+### Test 6(20170503: 訳者の結果です。)
142+
143+**Conditions:** Intel Core i7-3630QM 2,40 GHz; 8 GB, Windows 8.1 64-bit
144+
145+| Method | FPS | Frame duration \[ms\] |
146+|--------------------------------------|----------|-----------------------|
147+| TBitmap.Canvas.Pixels | 1,8 | 544,8 |
148+| TBitmap.Canvas.Pixels Update locking | 10,0 | 100,1 |
149+| TLazIntfImage.Colors copy | 113,2 | 8,8 |
150+| TLazIntfImage.Colors no copy | 131,8 | 7,6 |
151+| TBitmap.RawImage.Data | 662,9 | 1,5 |
152+| TBitmap.RawImage.Data PaintBox | 650,1 | 1,5 |
153+| TBitmap.RawImage.Data Move | 1047,3 | 1,0 |
154+| TBGRABitmap PaintBox | 640,9 | 1,6 |
155+| OpenGL | 316,0 | 3.2 |
156+| OpenGL PBO | 728,7 | 1,4 |
157+| Dummy | 219514,5 | 0.005 |
158+
159+## ダウンロード
160+
161+プログラムは、以下の svn リポジトリからダウンロードできます。
162+
163+`svn checkout `[`http://svn.zdechov.net/svn/PascalClassLibrary/GraphicTest/`](http://svn.zdechov.net/svn/PascalClassLibrary/GraphicTest/)
164+
165+## 関連情報
166+
167+- [[Fast direct pixel access/ja]]
168+
169+---
170+*From the Free Pascal wiki, page "GraphicTest/ja", as it stood on 2017-05-04 after a change by Miyatakejiro, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
171+Category: Example programs/ja
172+Category: Graphics/ja

Back to history