Web Framework Benchmarks

大量のサンプルを使ったウェブフレームワークのベンチマークがレポートされてた。
TechEmpower Web Framework Benchmarks

スクリプト言語で絞ってみると、JavaScriptが速いのは想像がついたが、生のPHPが予想以上に速い。
但し、PHPの場合はSymfony2のように著しく速度が低いフレームワークもある。
ファイルをインクルードしすぎなんだろうか?
それ以外に気づいた事は、ORマッパーを使うとどの言語、どのフレームワークでも明らかに遅くなる。
これは当然か。

安価なVPSサーバのパフォーマンス比較

安価なVPSサーバのパフォーマンス比較してみました。

対象のVPSサーバ

プラン
Windows Azure XS
AWS EC2 micro
SaaSes Osukini Server Air 05
DTI ServersMan@VPS Entryプラン

全て最安のプラン。

サーバ環境

OS Apache MySQL PHP WordPress
Azure CentOS 6.3 (32bit) 2.2.15 5.1 5.3.3 3.5.1
AWS CentOS 6.3 (32bit) 2.2.15 5.1 5.3.3 3.5.1
SaaSes CentOS 6.3 (32bit) 2.2.15 5.1 5.3.3 3.5.1
DTI CentOS 5.9 (32bit) 2.2.3 5.0 5.3.3 3.5.1

OSはDTI以外はインストール直後の状態。ミドルウェアはDTIも含めてすべて新規にインストールした。ApacheとMySQL以外のサーバソフトは可能な限り停止して、環境を近づけた。

Apacheベンチマーク手順

abコマンド(ab -n 100 -c 10 http://XXX/wordpress/)によってWordPressトップページを計測。

Apacheベンチマーク結果

AWS Azure SaaSes DTI
ISP1 1回目 3.63 3.87 2.64 1.14
ISP1 2回目 3.71 3.92 2.70 1.15
ISP1 3回目 3.69 3.97 2.70 1.12
ISP2 1回目 3.76 3.94 2.63 1.14
ISP2 2回目 2.55 3.84 2.68 1.15
ISP2 3回目 1.86 4.12 2.71 1.12

2つの異なるISPにてそれぞれ3回ずつ毎秒リクエスト数([#/sec])を計測した。

Apacheベンチマーク追試結果

AWS
ISP1 追試1回目 1.91
ISP2 追試1回目 1.47
ISP1 追試2回目 1.39
ISP2 追試2回目 1.45

AWSのみ不自然な結果になったので追試した。

所感

AWSの管理画面は分かりにくい。Azureの管理画面はとても見やすい。

Windows 8 に備えて (7)

Windows 8をいじってると色々と発見がある。
Windows 7まではエクスプローラーでフォルダを開く度にに「カチッ」という音がして、それが耳障りで、必ずコントロールパネルのサウンドの設定で「ナビゲーションの開始」を「なし」に設定変更してんたんだけど、Windows 8では既定で「なし」になってるのを発見した。
個人的にコレは結構嬉しい。

Windows 8 に備えて (6)

Windows 8では普段使うアプリはタスクバーにアプリをピン留めすれば良いけれど、タスクバーに載せきれないアプリを起動する場合はスタートメニュー画面を呼びだす必要がある。
Windows 8のスタートメニューの表示は十分速いのだけれど、Windowsキーを押す必要があるので、マウスだけでは操作出来ずに不便。
そこで、マウスのサイドボタンにWindowsキーを割り当てる事にした。

うちのマウスはMS製でIntelliPointという設定ソフトがインストールしてある。
IntelliPointを起動し、サイドボタンの割り当て設定を開き、「ここをクリックしてキーの組み合わせを入力します。」をクリックして、いざWindowsキーを押してみたら、IntelliPointの画面からスタートメニューの画面に切り替わった。
スタートメニューを呼び出す為のWindowsキーなので、IntelliPointでWindowsキーを設定しようと思ってもスタートメニューが呼び出されてしまうというジレンマが発生。
そこで、以下のように直接にレジストリを変更した。
具体的には”HKEY_CURRENT_USER\Software\Microsoft\IntelliPoint\ ModelSpecific\5003\EventMapping\8″ を “0x5b” にする。
これでボタン一発でスタートメニューが呼び出せるようになった。
Windows 7までのスタートボタンを復活させるフリーウェアがあるようだけれど、Windows 8のスタートメニュー画面は十分表示が速いので、そういうのはもう不要かな。

追記:
さらにチャームも割り当てられると良いなと思い、方法を探ってみたが、IntelliPointではWindowsキー+通常キーの組み合わせを認識させるのは不可能そうな事が分かった。
そこで、適当に複雑なキーコンビネーション(CTRL+ALT+SHIFT+F1)を設定し、AutohotKeyで ^+!F1::Send, #c としてチャームを呼び出すようにした。
実に快適になった。

ちなみに、AutoHotKeyはデスクトップ画面だけでなく、メトロ画面でも動作する。
Windows 8はデザイン的にメトロからデスクトップを呼び出してるように見えるが、実際にはデスクトップからメトロを呼び出しているという事が分かる。

追加(2):
MSDN Virtual-Key Codes