試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

GtkPerfについてと幾つかのGTK+ 2エンジンの速度比較

GTK+ 2のGUI部品に関する処理速度を計測し、色々な条件で比較するのに役立つGtkPerf(gtkperf.sourceforge.net)というツールがある。
異なるGTK+エンジンによってどの程度動作の重さ/軽さに影響するかを調べるのに使える他、GTK+やXのバージョンが変わったときに速度がどの程度変わる/変わらないのかも調べられる。

  1. ディストリのパッケージ
  2. エンジンによる比較
    1. ClearlooksClassic
    2. Clearlooks
    3. Aurora (1.5)
    4. Industrial
    5. Xfce-4.2
    6. Simple
    7. Ia Ora Free
    8. Redmond
    9. Mist
    10. Xfce-curve
    11. Bluecurve

ディストリのパッケージ

Debian/Ubuntu/Gentoo/Fedoraには同名のパッケージが用意されている。Mandriva Linuxにはパッケージがないので作成し、別館の配布ページに公開した。
(2014/10/12)配布ページは削除済み。

エンジンによる比較

下のテスト結果はAthlon64 3500+を1000MHz固定で動かしたときのもので、Compizを使用している。

  • Auroraエンジンは重いエンジンの部類に入る*1が、シンプル系の外観を持つエンジンにも重いものがある
  • Xfceエンジンを用いたXfce系テーマは全般的に軽いものが多い
  • 試した中で最も軽いエンジンは(2002年のRed Hat Linux 8.0で登場した)Bluecurveエンジン*2で、幾つかのシンプル系エンジンよりも更に軽さがわずかに上回る
  • Mandriva LinuxのIa Oraは軽めなほうだった

以下、エンジンごとの具体的な値となる。各処理にかかった時間を計測しているため、値は小さいほうが速い。「エンジンを先に切り替えた後でアプリケーションを起動し、測定後終了して次のエンジンに切り替える」という流れで結果を取得した。
(2010/12/16)Debian/UbuntuにおけるBluecurveエンジンに関しての記述を修正

ClearlooksClassic

GtkEntry - time:  0.12
GtkComboBox - time:  8.50
GtkComboBoxEntry - time:  3.90
GtkSpinButton - time:  2.85
GtkProgressBar - time:  3.22
GtkToggleButton - time:  3.74
GtkCheckButton - time:  0.62
GtkRadioButton - time:  0.69
GtkTextView - Add text - time:  1.88
GtkTextView - Scroll - time:  0.78
GtkDrawingArea - Lines - time:  1.97
GtkDrawingArea - Circles - time:  2.16
GtkDrawingArea - Text - time:  6.17
GtkDrawingArea - Pixbufs - time:  0.63
 --- 
Total time: 37.24

Clearlooks

GtkEntry - time:  0.09
GtkComboBox - time:  6.02
GtkComboBoxEntry - time:  3.87
GtkSpinButton - time:  2.61
GtkProgressBar - time:  2.57
GtkToggleButton - time:  1.95
GtkCheckButton - time:  0.46
GtkRadioButton - time:  0.74
GtkTextView - Add text - time:  1.92
GtkTextView - Scroll - time:  0.81
GtkDrawingArea - Lines - time:  1.88
GtkDrawingArea - Circles - time:  2.15
GtkDrawingArea - Text - time:  5.93
GtkDrawingArea - Pixbufs - time:  0.58
 --- 
Total time: 31.59

Aurora (1.5)

GtkEntry - time:  0.11
GtkComboBox - time:  5.52
GtkComboBoxEntry - time:  3.17
GtkSpinButton - time:  1.68
GtkProgressBar - time:  0.51
GtkToggleButton - time:  1.76
GtkCheckButton - time:  0.73
GtkRadioButton - time:  1.21
GtkTextView - Add text - time:  2.00
GtkTextView - Scroll - time:  1.13
GtkDrawingArea - Lines - time:  1.93
GtkDrawingArea - Circles - time:  2.14
GtkDrawingArea - Text - time:  5.78
GtkDrawingArea - Pixbufs - time:  0.68
 --- 
Total time: 28.36

Industrial

GtkEntry - time:  0.13
GtkComboBox - time:  5.03
GtkComboBoxEntry - time:  2.12
GtkSpinButton - time:  0.32
GtkProgressBar - time:  0.28
GtkToggleButton - time:  2.64
GtkCheckButton - time:  0.38
GtkRadioButton - time:  0.48
GtkTextView - Add text - time:  1.95
GtkTextView - Scroll - time:  0.77
GtkDrawingArea - Lines - time:  1.86
GtkDrawingArea - Circles - time:  2.26
GtkDrawingArea - Text - time:  6.02
GtkDrawingArea - Pixbufs - time:  0.65
 --- 
Total time: 24.86

Xfce-4.2

GtkEntry - time:  0.11
GtkComboBox - time:  2.13
GtkComboBoxEntry - time:  1.72
GtkSpinButton - time:  0.24
GtkProgressBar - time:  0.12
GtkToggleButton - time:  0.42
GtkCheckButton - time:  0.20
GtkRadioButton - time:  0.28
GtkTextView - Add text - time:  1.86
GtkTextView - Scroll - time:  0.60
GtkDrawingArea - Lines - time:  1.89
GtkDrawingArea - Circles - time:  2.11
GtkDrawingArea - Text - time:  5.99
GtkDrawingArea - Pixbufs - time:  0.70
 --- 
Total time: 18.37

Simple

GtkEntry - time:  0.10
GtkComboBox - time:  2.11
GtkComboBoxEntry - time:  1.45
GtkSpinButton - time:  0.31
GtkProgressBar - time:  0.11
GtkToggleButton - time:  0.35
GtkCheckButton - time:  0.18
GtkRadioButton - time:  0.54
GtkTextView - Add text - time:  1.95
GtkTextView - Scroll - time:  0.46
GtkDrawingArea - Lines - time:  1.82
GtkDrawingArea - Circles - time:  2.25
GtkDrawingArea - Text - time:  5.95
GtkDrawingArea - Pixbufs - time:  0.63
 --- 
Total time: 18.24

Ia Ora Free

GtkEntry - time:  0.10
GtkComboBox - time:  2.08
GtkComboBoxEntry - time:  1.52
GtkSpinButton - time:  0.28
GtkProgressBar - time:  0.18
GtkToggleButton - time:  0.40
GtkCheckButton - time:  0.19
GtkRadioButton - time:  0.27
GtkTextView - Add text - time:  1.97
GtkTextView - Scroll - time:  0.59
GtkDrawingArea - Lines - time:  1.94
GtkDrawingArea - Circles - time:  2.09
GtkDrawingArea - Text - time:  6.01
GtkDrawingArea - Pixbufs - time:  0.59
 --- 
Total time: 18.23

Redmond

GtkEntry - time:  0.10
GtkComboBox - time:  1.75
GtkComboBoxEntry - time:  1.46
GtkSpinButton - time:  0.29
GtkProgressBar - time:  0.13
GtkToggleButton - time:  0.37
GtkCheckButton - time:  0.20
GtkRadioButton - time:  0.62
GtkTextView - Add text - time:  1.92
GtkTextView - Scroll - time:  0.60
GtkDrawingArea - Lines - time:  1.80
GtkDrawingArea - Circles - time:  2.14
GtkDrawingArea - Text - time:  6.06
GtkDrawingArea - Pixbufs - time:  0.62
 --- 
Total time: 18.06

Mist

GtkEntry - time:  0.11
GtkComboBox - time:  1.94
GtkComboBoxEntry - time:  1.66
GtkSpinButton - time:  0.21
GtkProgressBar - time:  0.14
GtkToggleButton - time:  0.36
GtkCheckButton - time:  0.17
GtkRadioButton - time:  0.56
GtkTextView - Add text - time:  1.88
GtkTextView - Scroll - time:  0.57
GtkDrawingArea - Lines - time:  1.79
GtkDrawingArea - Circles - time:  2.13
GtkDrawingArea - Text - time:  5.78
GtkDrawingArea - Pixbufs - time:  0.74
 --- 
Total time: 18.06

Xfce-curve

GtkEntry - time:  0.10
GtkComboBox - time:  2.22
GtkComboBoxEntry - time:  1.51
GtkSpinButton - time:  0.21
GtkProgressBar - time:  0.25
GtkToggleButton - time:  0.22
GtkCheckButton - time:  0.19
GtkRadioButton - time:  0.25
GtkTextView - Add text - time:  1.92
GtkTextView - Scroll - time:  0.50
GtkDrawingArea - Lines - time:  1.88
GtkDrawingArea - Circles - time:  2.20
GtkDrawingArea - Text - time:  5.90
GtkDrawingArea - Pixbufs - time:  0.59
 --- 
Total time: 17.96

Bluecurve

GtkEntry - time:  0.10
GtkComboBox - time:  2.02
GtkComboBoxEntry - time:  1.59
GtkSpinButton - time:  0.20
GtkProgressBar - time:  0.15
GtkToggleButton - time:  0.23
GtkCheckButton - time:  0.17
GtkRadioButton - time:  0.22
GtkTextView - Add text - time:  1.85
GtkTextView - Scroll - time:  0.55
GtkDrawingArea - Lines - time:  1.93
GtkDrawingArea - Circles - time:  2.05
GtkDrawingArea - Text - time:  5.98
GtkDrawingArea - Pixbufs - time:  0.67
 --- 
Total time: 17.73

関連URL:

使用したバージョン:

  • GTK+ 2.14.3
  • xorg-server 1.4.2
  • GtkPerf 0.40

*1:Auroraを常用していた後でBluecurveをしばらく使ってみたところ、軽さを実感できる場面が結構あった気がするが、ハードウェア環境のスペックにもよると思われる

*2:シンプルなフラット系の外観を持つエンジンで、Mandrivaでは「lib(64)gtk-engines2」パッケージに標準で付属し、Gentooでは「x11-themes/redhat-artwork」が利用できるが、Debian/Ubuntuについては「Debian/UbuntuにおけるGTK+ 2のBluecurveエンジンとUbuntu向け自作パッケージについて(2010年12月時点)」を参照