Authentication




Cancel OK
B!コメントする  2013-04-19 23:45:00 by old

自分がどれくらいの比率でどの関数を使用しているか?

ちょっとしたブラウザー上のエディターを作ろうと思った時に入力補完をしたいと考えたんですが、
そこから優先順位とかも含めて「どの関数をどれくらいの比率で使っているんだろうか…?」と思ったので簡単に集計してみた。

手近にあったリファレンスからよく使う関数と作りかけのプログラムをちょっと眺めて50~60前後をピックアップしてみた。

//取得ファイル名
$target = file('target.txt');

// 集計
$count = count($target);
for( $i = 0; $i < $count; $i++ )
{
if( pregmatch('/htmlspecialchars|return|isset|(^if|\tif)|for|while|foreach|pregmatch|pregreplace|strlen|substr|base64encode|base64decode|mbconvertencoding|isdir|mkdir|moveuploadedfile|count|file|filesize|fileexists|md5|GET|POST|SERVER|date|strtotime|urldecode|urlencode|sort|arsort|natsort|strstr|time|unset|fileputcontents|filegetcontents|copy|unlink|readdir|while|exit|header|setcookie|rand|mtrand|define|gettype|settype|explode|implode|update|delete|insert|select|errorlog|errorreporting|mbstrlen|arrayunique|PDO/', $target[$i], $match) )
{
$functioncount[$match['0']]++;
}
}

// 結果表示
natsort($function
count);
foreach( $functioncount as $val => $num )
{
echo $num . " - " . $val . "<br />";
}


人それぞれの書き方があるのでこれだとマッチしない人もいると思うけど、自分の書き方だとこれでだいたいOKなのでこれでそこそこ大きいファイルをいくつか繋げて統計を取ってみた。
結果は以下の通り

ファイルA
1 - return
1 - file
1 - preg
replace
2 - while
2 - header
4 - POST
4 - count
4 - substr
6 - for
15 - pregmatch
46 - if


ファイルB
1 - pregreplace
1 - mkdir
1 - base64decode
1 - isset
2 - strlen
2 - rand
2 - mb
convertencoding
3 - copy
3 - SERVER
3 - POST
3 - GET
4 - unlink
4 - substr
5 - base64
encode
5 - htmlspecialchars
8 - for
11 - header
20 - time
25 - return
39 - file
41 - if


ファイルC
1 - base64decode
1 - base64
encode
1 - arrayunique
1 - define
1 - arsort
1 - htmlspecialchars
2 - explode
2 - GET
2 - POST
2 - strlen
2 - rand
2 - if
3 - md5
3 - exit
3 - setcookie
3 - mt
rand
3 - copy
4 - substr
5 - select
5 - sort
6 - SERVER
7 - isset
8 - mbconvertencoding
9 - pregmatch
10 - file
17 - insert
18 - preg
replace
18 - while
20 - count
25 - header
39 - date
45 - delete
46 - update
48 - PDO
57 - for
69 - time
103 - return
183 - if


ファイルによってはデータベース関連だったりテキスト処理だったりと、作った内容によって中身が現れてる気がする。

でも何をおいても「if」と「for」が多い。
多いから悪いというわけでもないんだけどなにかもっと効率よく分岐したり、取り出したり出来そうな気もするのでちょっと今後は意識してみようと思う。


PHP  

  • コメント
  • コメントはまだありません