Django CGI(1.x 2.x) 2019年度版
カテゴリー: レンタルサーバーやcgi
2019-07-08 22:39
Django CGI(1.x 2.x) 2019年度版
django1.x と2.xの両方で動作可能な django.cgiを作ったので速度を比較してみた。
前回とは違うアプローチをしてみたので、1個のファイルに小さく収まりました。
ベンチマークをすると CGI起動だとdjangoは 応答速度的に使えないコと判明しました。
ただし、CGIではなく常駐で運用するとレスポンスはとても速いです。
結論
原因
※ 応答速度が1秒を超えると閲覧者に遅いとストレスを感じさせてしまいます。
※ 時間は、URL呼び出し開始からデータ取得終了までにかかった時間。
※ C言語バイナリが最小時間は一番小さかった。
CGIのサイズ
執筆:2019.07.08
編集:2019.07.08
編集:2019.07.08
django1.x と2.xの両方で動作可能な django.cgiを作ったので速度を比較してみた。
前回とは違うアプローチをしてみたので、1個のファイルに小さく収まりました。
ベンチマークをすると CGI起動だとdjangoは 応答速度的に使えないコと判明しました。
ただし、CGIではなく常駐で運用するとレスポンスはとても速いです。
結論
djangoをCGIで動かすと何もなくても 0.5~0.6秒 レスポンスまでに時間がかかります。
djangoをCGIで運用することはお勧めできません。
mod_wsgiが使えない場合は、mod_phpなら導入されているサーバーは多いので、phpのフレームワークを検討したほうが賢明です。
djangoをCGIで運用することはお勧めできません。
mod_wsgiが使えない場合は、mod_phpなら導入されているサーバーは多いので、phpのフレームワークを検討したほうが賢明です。
原因
djangoは多数のファイルに分散されて、起動時にそれを読み込むため、CGIで動作させると とても時間がかかります。
速度比較いろいろ
django1とdjango2の速度差はそれほどなく、若干django2のほうがレスポンスが速い傾向にありました。
django
サーバー | CGI |
manage.py |
mod_wsgi |
localhost | 1.11秒 | 0.01秒 | 0.03秒 |
さくらインター ネット ライト |
1.23秒 | - | - |
※ 応答速度が1秒を超えると閲覧者に遅いとストレスを感じさせてしまいます。
CGI版での速度比較 (調査日 2019年7月7,8日)
サーバー (apache2.4) |
django1(CGI) | hello.cgi | |||||
/admin/ | hello | python | php | C言語 | GO | ||
Windows10 (ローカルホスト) |
5.86秒 | 2.64秒 | 0.30秒 | 0.25秒 | 0.02秒 | 0.06秒 | |
FreeBSD11 (イントラネット) |
1.11秒 | 0.51秒 | 0.03秒 | 0.03秒 | 0.01秒 | 0.02秒 | |
さくらインターネット ライト FreeBSD9 (インターネット) |
1.23秒 | 0.64秒 | 0.08秒 | 0.12秒 | 0.06秒 | 0.06秒 |
※ C言語バイナリが最小時間は一番小さかった。
CGIのサイズ
ファイルサイズ | hello.cgiの種類 |
1,988,354 | GO バイナリCGI |
6,604 | C言語 バイナリCGI |
140 | PHP CGIスクリプト |
115 | perl CGIスクリプト |