PHPのパフォーマンステスト

最近PHPの見直しをしているついでに、記述の違いでどれだけパフォーマンスが違うかをテストしてみました。

チェックしたのは下記2つ。

・『 $a[ abc ](遅い)』と 『 $a[ ” abc ” ](速い)』
・for文で 『 count()を直接指定(遅い)』と 『 count()の結果を変数に代入して指定(速い)』

処理が遅い記述

for ($i = 0; $i < count($a[abc]); $i++){ $hoge1 += $a[abc][$i]; } [/sourcecode] 処理が速い記述

$count = count($a[“abc”]);
for ($i = 0; $i < $count; $i++){ $hoge2 += $a["abc"][$i]; } [/sourcecode] 遅い方の記述と速い方の記述を組み合わせてテストしました。下記ページで確認できます。 PHP パフォーマンステスト

なんとこの2つの記述の違いだけで、約10倍近いパフォーマンスの差がでます。

連想配列はきちんとダブルクォート、もしくはシングルクォートで括っていますが、for文にcount()を指定するのはよくやってしまっています。これからは少し手間でもきちんと変数に代入するように気をつけよう…。

他にも記述の違いでのPHPのパフォーマンスがかなり異なるようで、下記サイトを参考にきちんと基本を見直していこうと思います。

The PHP Benchmark

  • Category : PHP
  • Tags : 

リアルタイムで確認しながら背景を作れる『bgMaker』

bgMaker』はホームページの背景パターンを簡単につくれるWEBサービスです。

画面真ん中のグリッドにちょこちょこと色をのせていくと、それにあわせてリアルタイムに背景に表示されていきます。
(こんなかんじです↓)

グリッドのサイズを大きくすることもでき、もちろんつくった背景パターンは「Save(絵をかくところの右下部)」でダウンロードすることができます。また「Gallary」をクリックすることで、前に誰かがつくった背景パターンを見ることもできます。

背景パターンをお探しの方は、これでオリジナルの背景パターンを作成してみてはいかがでしょうか。適当に塗りつぶしていくだけでも案外いいかんじになったりします。ぜひお試しあれ。

bgMaker ||| Background maker || Tiled Background generator | Web Background maker

パスワードに使う文字は気をつけよう…。

最近暗号化について調べていて「そーいえば数年前にmd5は解読できるってあったなぁ」と思い出し、ウェブで情報探していたら「えっ」と思うサイトを見つけてしまいました(今さらかもしれないんですが…)。

iloveyou」をmd5で暗号化すると「f25a2fc72690b780b2a14e140ef6a9e0」。でもって、下記サイトで「f25a2fc72690b780b2a14e140ef6a9e0」を検索すると、なんと「iloveyou」と表示するではないですか!

md5.rednoize.com – reverse engineer md5 hashes – powered by rednoize.com

 

これはなんだ!簡単に解読できるようになったのか!と思って調べたら、暗号化前の文字とmd5の暗号化文字をデータベース化してるだけでした。

けど適当に単語を暗号化して検索すると、けっこうデータベース化されています。

md5は数年前までは復号化が難しい安全な暗号化とされていたため、復元できない暗号化をする場合によく用いられていますが、こんなアナログな方法でデータベース化されていたら復元もくそもないですね…。

気になる方は下記サイトでmd5暗号化できるので、暗号化して「md5.rednoize.com」を通してみてください。復号化されているということは、ちょっとパスワードにつかうには危険な文字列かもしれません。

MD5ハッシュ計算ツール – phpspot

 

まあこれはプログラム側のパスワードの管理等の問題なので、普通にWEBサービスを使う分には関係ないかもしれません。今時md5ハッシュして、そのままDBにほりこんでるような仕様のものはあまりないと思うので(…たぶん)。

けど大切なパスワードは「出来る限りランダムな文字列」を使うにこしたことはありません。みなさん、気をつけましょう!