PySide の Signal-Slot は PyQt より遅い

2011 年 7 月 16 日 はてなブックマークへ追加 はてなブックマーク - PySide の Signal-Slot は PyQt より遅い Bookmark this on Delicious

PyQt4 から PySide へ切り替えてみて、一部のツールが重くなので調べてみた。

結論から。 PySide の Signal-Slot は PyQt4 の約 2 倍遅い。

適当なベンチマークが見つからなかったので、ざっと測定した。 比較記事が PYSIDE V0.3 – BENCHMARKS ぐらいしか無いんだよな…。

テストスクリプト:

https://bitbucket.org/yuja/playground/src/aa3904c48f54/pyside/signals-burst.py

100 オブジェクトに対して 10000 回 Signal-Slot 通信をさせている。

DirectConnection (単純な関数呼び出しに帰結する場合):

% time ./signals-burst.py --pyqt4
./signals-burst.py --pyqt4  1.81s user 0.02s system 99% cpu 1.827 total

% time ./signals-burst.py --pyside
./signals-burst.py --pyside  3.88s user 0.02s system 99% cpu 3.901 total

QueuedConnection (イベントループを介する場合):

% time ./signals-burst.py --pyqt4 --queued
./signals-burst.py --pyqt4 --queued  2.84s user 0.16s system 99% cpu 3.001 total

% time ./signals-burst.py --pyside --queued
./signals-burst.py --pyside --queued  7.30s user 0.16s system 99% cpu 7.498 total

バージョンは、

コメント

blog comments powered by Disqus