スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

キャッシュ機構

なかなかサイトに手が回らないので、Blog だけでも。

たまに
 スクリプトで使ってる「キャッシュ」がよくわからん
というご質問があるので、これについて少々。

まず、簡単に一言で言うと「使い回し」です。
一度作ったデータをとっておいて、後から使うときに楽しましょう、と。

んなこと言われてもいまいち実感できん、と言われそうなので、
簡単な例を。



・データの作成に 100 秒かかる
・データを返す(要求元に渡す)のに 1 秒かかる
という条件のもと、同じデータを作成して返すという処理を
キャッシュの有無で比較してみます。
(単純に 3 回実行し、平均時間を出してみます)

 < 毎回データを作成して返す(キャッシュなし) >
1 回目: 100 + 1 = 101 秒 (データ作成 + return)
2 回目: 100 + 1 = 101 秒
3 回目: 100 + 1 = 101 秒

平均: 101 秒

 < 1 回目のデータをキャッシュし、2 回目からキャッシュを返す >
1 回目: 100 + 1 = 101 秒 (キャッシュ作成 + return)
2 回目: 1 秒 (return のみ)
3 回目: 1 秒

平均: 34.3 秒



キャッシュの効果が一目瞭然です。
回数が増えれば、さらに効果が大きくなります。

ただし、どんなデータにもキャッシュが使えるかというとそうでもなく、
例えば「頻繁に変化するデータ」には使えません。
(実際のデータは変化するのに、毎回同じ値を返しちゃまずいですね)

ゲームのように、同じデータを使い回すことが多いアプリには
極めて有効です。
「ゲームの動作が重い」と感じる場合は、キャッシュできそうな
データを探してみると良いでしょう。
スポンサーサイト

コメントの投稿

非公開コメント

アクセスカウンタ
プロフィール

TOMY

  • Author:TOMY
  • Kamesoft

    ・社会人見習い Lv3
    ・ミク廃
    ・ほむらー
    ドット絵はちゅねミク (C)袴っ娘推進委員会
カレンダー
03 ≪│2017/04│≫ 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
最近の記事
カテゴリー
最近のコメント
RSSフィード
ブログ内検索
Clover Days
ALcot『Clover Day's』応援中!
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。