500msから100ms。当社比5分の1。

| コメント(0) | トラックバック(0)

ビートマニアIIDXゲームセンターマップ
新しいページ「ビートマニアIIDX設置店舗統計情報」を追加しました。
詳しくは、SINTさんからアナウンスがあると思います。


今回のページは、機能的にはデータを表示するのみで、
データの変更とか、複雑な機能はないんですが、
たくさんある店舗データから特定の条件でさまざまな「集計」を行って
その結果を表示する、といもので、
てきとーに作ってしまうと、集計データの作成に何秒もかかってしまったりして、
とても重たい処理になってしまいかねません。

# といっても、ゲーセンマップのデータ量はたかだか数千のオーダーなんで、
# 数万、数百万のデータを扱うわけではないから、
# めちゃくちゃアホなプログラムを書かない限り、遅くて使い物にならない
# なんてことはないと思いますが、、。
# でもサイトのアクセス数が伸びても(アクセス負荷が高まっても)対応できるように、
# プログラムの処理はすこしでも軽く書いておくことに越したことはありません。


最初、効率が悪いことがわかりながらも、
手っ取り早く作れる方法で、がーーっとプログラム書いて動作を確認したんですが、
このとき処理に500msかかっていました。
このスピードでも、十分実用に耐えるスピードだったんですが、
もっと早くやる方法も頭の中にあったんで、じっくりチューニングしていきました。
それで、100msまで早くできました。

この数字は、テストサーバー(仮想マシンでかなりトロイ)での数字で、
本番サーバー上では50msくらいで動いてます。
本番サーバーは2倍も早いです。


ちなみに、データ量が膨大だったり、集計のための演算量が膨大だったりして、
必要なデータの作成に何秒とか何十秒とか何時間とかだったり、
どうしてもかかってしまう場合があります。
そんなときは、どうするかというと、
当然な話だけど、リアルタイムでの集計データの取得・表示はあきらめなければ
なりません。
数時間おきなり、1日おきなり、適当な間隔で集計データを作成、キャッシュしておき、
集計データが必要になったときは、キャッシュしてある集計済みのデータを参照する、というやり方になります。

トラックバック(0)

トラックバックURL: http://2dera.net/mt/cgi-bin/mt-tb.cgi/386

コメントする

このブログ記事について

このページは、ヒューガが2009年6月 5日 00:10に書いたブログ記事です。

ひとつ前のブログ記事は「IIDX17ロケテ」です。

次のブログ記事は「リニアモーターカーに乗ってきました」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。