
perlの細かいコードの実行速度を検証してみようという記事です。
今回は、前回記事のメモに書いたforとforeachの速度を検証します。
まず、検証用のスクリプトです。
for_vs_foreach.txt
これを実行すると2つの関数の実行にかかった時間が分かります。
結果は、foreachのほうがだいたい0.00003速いことが分かりましたが、
forのほうが速いときもあって、正直どちらもそんなに変わらない感じです。
今回のはあんまり意味がなかったようです。
次はダブルクウォートとシングルクウォートでも比較してみます。
今回は、前回記事のメモに書いたforとforeachの速度を検証します。
まず、検証用のスクリプトです。
for_vs_foreach.txt
これを実行すると2つの関数の実行にかかった時間が分かります。
結果は、foreachのほうがだいたい0.00003速いことが分かりましたが、
forのほうが速いときもあって、正直どちらもそんなに変わらない感じです。
今回のはあんまり意味がなかったようです。
次はダブルクウォートとシングルクウォートでも比較してみます。
スポンサーサイト


perlコード書くときに気を使ってることをメモ。
- use strictは必ずつける。
- use warningsも警告が出るから便利。
- for (0..3)よりforeach (0..3)のほうが速い(?)。
- 変数を使わない場合はシングルクウォートを使う。
- 組み込み関数は括弧を省略してるコードが多いけど普通に括弧つける。
- 正規表現は重いというけど気にせず使いまくる。
- evalは実行時にコンパイルするから重い。使うときはよく考える。
- 正規表現を使わない置き換えはtr//を使う。
- 無駄にコメントはつけない。(当たり前)
- geekな書き方は後で見たとき自分でも分からなくなりやすい。
- 配列とかを関数とかに渡すときはリファレンス使う。
- splitした要素でいらない要素はundefする。
($hoge,undef,$fuga) = split(/<>/); <- よい
($hoge,$gomi,$fuga) = split(/<>/); <- よくない
他にもいろいろあるけどこのくらい。
- use strictは必ずつける。
- use warningsも警告が出るから便利。
- for (0..3)よりforeach (0..3)のほうが速い(?)。
- 変数を使わない場合はシングルクウォートを使う。
- 組み込み関数は括弧を省略してるコードが多いけど普通に括弧つける。
- 正規表現は重いというけど気にせず使いまくる。
- evalは実行時にコンパイルするから重い。使うときはよく考える。
- 正規表現を使わない置き換えはtr//を使う。
- 無駄にコメントはつけない。(当たり前)
- geekな書き方は後で見たとき自分でも分からなくなりやすい。
- 配列とかを関数とかに渡すときはリファレンス使う。
- splitした要素でいらない要素はundefする。
($hoge,undef,$fuga) = split(/<>/); <- よい
($hoge,$gomi,$fuga) = split(/<>/); <- よくない
他にもいろいろあるけどこのくらい。


だいぶ前の記事ですが、
>「警察に協力的すぎたのが問題だった」Winny裁判の結審で金子氏がコメント
>http://internet.watch.impress.co.jp/cda/news/2006/09/05/13199.html
winnyの開発者、金子氏は警察に協力的すぎたらしいです。
まぁ俺も、部屋に警察が何人か押し入ってきてソースコードくれ って言われたら断れないだろうなたぶん。 無言の圧力とかそういうものがあるんだと思います。
金子氏はWinnyの開発を止めるという誓約書を書いてしまったそうで、
セキュリティ上のバージョンアップさえもできないそうです。
anntinyのようなwinnyを経由して広まるウイルスは、winnyにハードコードされてる
"UpFolder.txt"にフォルダを 追加しちゃうんですよねたしか。
それならば、その名前を 変えれば簡易的な対策にはなるんじゃないでしょうか。
それぐらいならソースコードがなくてもバイナリを弄って 変えられるんじゃないかなーたぶん。
誰かパッチ作ってください。
>「警察に協力的すぎたのが問題だった」Winny裁判の結審で金子氏がコメント
>http://internet.watch.impress.co.jp/cda/news/2006/09/05/13199.html
winnyの開発者、金子氏は警察に協力的すぎたらしいです。
まぁ俺も、部屋に警察が何人か押し入ってきてソースコードくれ って言われたら断れないだろうなたぶん。 無言の圧力とかそういうものがあるんだと思います。
金子氏はWinnyの開発を止めるという誓約書を書いてしまったそうで、
セキュリティ上のバージョンアップさえもできないそうです。
anntinyのようなwinnyを経由して広まるウイルスは、winnyにハードコードされてる
"UpFolder.txt"にフォルダを 追加しちゃうんですよねたしか。
それならば、その名前を 変えれば簡易的な対策にはなるんじゃないでしょうか。
それぐらいならソースコードがなくてもバイナリを弄って 変えられるんじゃないかなーたぶん。
誰かパッチ作ってください。


書いてみます。(プ
ブログを書くのは初めてです。(プゲラ
何書いていいか分かりません。(プゲラッチョ
ブログってのはブログだからブログっぽいのをブログっぽく
書かないといけないわけで、だからこうやって無理やりにでも
ブログっぽく書いてるわけだけど、ブログっぽさがないというか。いやむしろ書くために書いてるわけじゃないからね。(プゲラチョリーノ
ブログを書くのは初めてです。(プゲラ
何書いていいか分かりません。(プゲラッチョ
ブログってのはブログだからブログっぽいのをブログっぽく
書かないといけないわけで、だからこうやって無理やりにでも
ブログっぽく書いてるわけだけど、ブログっぽさがないというか。いやむしろ書くために書いてるわけじゃないからね。(プゲラチョリーノ

| ホーム |