って事で,客先でいろいろと緊張したりして疲れたので, 19:00 とかにさくっと帰っちゃう事にした.ふぅ.
T2U の続きをプレイ.
って事で,客先でいろいろと緊張したりして疲れたので, 19:00 とかにさくっと帰っちゃう事にした.ふぅ.
T2U の続きをプレイ.
客先に納品に行ったら,持ってったデータが CRLF 形式だったり, perlcc が gcc のフェーズでライブラリがねーよとかエラーが出たりしてあせる. まぁ結局 perlcc の出力するコマンドオプションを手で編集して実行したが, perlcc がこれを出さない仕様だったら危ないところだった(笑)
先日来の perl プログラムは今日が納品. なんだけど,やけに速度が遅くて, こんなん持ってったら怒られてしまうかしら(笑)
具体的にはアクセスログ集計なんだけど, 40万件で 1min,サンプルデータで 200万件だと 5min 弱もかかって, apache のデフォルトタイムアウトに抵触するありさまだ. 客先のマシンはこっちのローカルにあるテストマシンより性能はいいだろうけど, それでも,さすがにいきなり 10倍とかの性能が出るって訳じゃないしね.
って事でプログラムの高速化をしなければならないのだが... まぁログ解析部分にほとんどの時間を使っているのは自明なので, ログを読んでるループ( while( <FILE> ){ ~ } ) の中をすべてコメントアウトして実行, さらにその内側の { ~ } をコメントアウトして実行... うーん,ちょっと頭悪い方式な気がするけど,他に思いつかなかった. { } のスコープごとに時間を計測してくれる perl 内蔵の perf とかあればいいのにね. BenchMark モジュールとかは微妙に使いにくい. 実は大きなカンチガイをしている気がしてならないところではあるが.
で,「 if( /^$hoge/ ){ ~」を「 if( substr( $_, 0, length( $hoge ))){ ~」 に変更したところ,5min 近かった処理は 1.3min にまで改善された. うーん,正規表現のコンパイルってそこまで露骨に重い作業ですカー...
1:30 就寝,7:30 起床. 今日から都営 12号線が開通,らしいけど乗らないのでどうでもいい(ぉ 「地下鉄の山手線」なんてどっかで読んだ気がするけど, これ,確か環状線でなく「6」の字のように 「エッジがボディと接触してるだけの,普通の直線的路線」なんだったような.
でもまぁ,あたしは乗る機会がないと思うけど, 近隣でこれを利用すると便利な人は多そうだし, 開通しないよりする方が確実に良い事だ.おめでとう.