2010年11月09日 たとえば、Cwd::cwd()ではなくCwd::getcwd()を使う Module::InstallベースのMakefile.PLが異様に遅いのでDevel::NYTProfでプロファイルを取ったところ、Cwd::cwd()が非常に遅いことがわかった。そこでこれをCwd::getcwd()に置き換えたところ、明らかにMakefile.PLの実行が高速になりキビキビと動くようになった。 調べてみるとこのcwd()、なんと内部で`pwd`を行っているのだ!そしてModule::Installはcwd()を大量に呼んでおり、これだけで秒単位の時間を消費していたのだった。 cwd()が`pwd`と同じだということは、Cwd.pmのpodにも書いてある。 $ perldoc Cwd ... getcwd my $cwd = getcwd(); Returns the cur
組み合わせ最適化の手法として「動的計画法」というモノがあります。 wikipediaから抜粋 動的計画法(どうてきけいかくほう、英: Dynamic Programming, DP) コンピュータ科学の分野において、ある最適化問題を複数の部分問題に分割して解く際に、そこまでに求められている以上の最適解が求められないような部分問題を切り捨てながら解いていく手法 一見難しそうですが、実は理解するのは以外と簡単です。いろいろな場面で応用が利く便利な手法ですので、覚えておいて損はないものです。コンピュータ系、情報系のお勉強をする人であれば、おそらく一度は習ったりするかもしれません。 ナップサック問題と動的計画法 動的計画法の一番親しみやすそうな例として「ナップサック問題」というのがよく取り上げられます。 こんな感じの問題です。 今ここに様々な大きさの品物が置いてあるとします。そしてそれらの品物は各
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く