アヤチノオト

覚書のこと

里々がなんで遅いのかやっぱりよくわからんという記事

このまえ記事で無料のプロファイラ使って調べたんだけどよくわかんなかったのでVisual Studio Ultimate 2013買いました。
嘘です。試用期間あるみたいだからインストールして分析機能を使ってみたよ。

実験方法~

ミニゲームてんこもりな某ゴーストの辞書をloadしてからOnBootを呼び出してみた。

辞書の読み込み

大体10秒位かかっててそのうちの約9割がsatori_load_dict.cppってファイルにあるLoadDictionaryって関数だったよ。LoadDictionaryの中身は pre_processとselect_dict_and_load_to_vectorがそれぞれ30%程度。
たとえばpre_processが倍の速さになれば起動時間が1.5秒ほど縮まる計算に……?
f:id:ayachigin:20140729210425p:plain

OnBoot

satori_tool.cppのSatori::calculateが実行時間の54%を占めてて、この関数自体はほとんど何もしてないんだけどこの関数から呼び出してるcalcとUnKakkoがそれぞれ約27%。
calcの時間かかってるのはほとんど全部vectorの操作(push_backとかな)でした。UnKakkoはたくさん関数呼び出しててよくわからんでした。
f:id:ayachigin:20140729202755p:plain

感想

これvectorがおそいんじゃねって気がほんのりする。ほんのりな。
もっともっと括弧を多用するとまた違う結果になるかもだけど。
というか括弧使いまくると遅くなるというのがよくわからなくて。具体的に遅いコードがどこかに載っていたら教えて欲しいです。