wsaccel を Tornado に対応しました

最初の wsaccelUTF-8 のバリデート処理だけを高速化していたのですが、 WebSocket Frame のマスク処理も1バイトごとビットでxorをとる処理だったので高速化するようにして、 0.5 をリリースしました。

TornadoUTF-8のバリデートをしていない (このバリデートを省略しても、テキストフレームを受け取った後の UTF-8 デコードや json デコードが正しければ問題ない) ため、初期バージョンでは意味がなかったのですが、マスク処理は効果があったので高速化しました。

AutoBahn に比べると効果は限定的なのですが、それでも1000バイトのメッセージを1000往復するのにかかる時間が1秒から0.5秒になりました。

wsaccel は pip install wsacceleasy_install wsaccel でインストールできます。

使い方は autobahn や ws4py と同じく、次のようにモンキーパッチをあてます。

import wsaccel
wsaccel.patch_tornado()
このブログに乗せているコードは引用を除き CC0 1.0 で提供します。