【perl】速いのはどっち?【php】at PHP
【perl】速いのはどっち?【php】 - 暇つぶし2ch113:nobodyさん
06/10/27 01:20:45
速度気にしてもあまり意味無いけど
PHP5>Perl5>PHP4かな。
Perl6は遅いんですよね?

114:nobodyさん
06/10/27 01:24:53
>>113
いや、だいぶ安定してきたw

115:nobodyさん
06/10/27 03:32:16
PHP4は論外として、PHP5.1は確かにかなり速くなった。
>>111のような単純ループはPerlと大差ないか、むしろ速いかも。
しかし、PHPの最大の問題はその言語仕様の貧弱さ。
配列も連想配列も同じ扱いだから、配列操作が遅い。
>>111のコードを、
$i = 10000000;
$arr = array()
while ($i--) {
$x = $i * 2;
$y = $i / 2;
$z = $i << 1;
$arr[] = array($x,$y,$z);
}
と変えると途端にPerlより圧倒的に遅くなる。
もうひとつの問題はメモリの使用量。
上のようなコードをPerlと比べると数倍消費する。

116:nobodyさん
06/10/30 16:45:13
perl、php比較スレってマジレス傾向になるとスレが盛り上がらなくなるな。

117:nobodyさん
06/10/30 23:31:42
自分で速度比較も出来ない馬鹿の集まりだからな

118:nobodyさん
06/10/31 00:58:50
文字列をゴリゴリするならPerl
呼び出してすぐ終わるならPHP
なんとなく気が向いたらRuby
ソフトバンクのMNPシステムならN88-BASIC

119:k ◆WFGp1NZuiw
06/11/03 08:51:26 YXjRlHj6
CGI に対する mod_perl の利点ってコンパイルの省略以外に,共有メモリを使っ
た複数リクエスト間でのデータの共有が考えられると思うんですが,これがあ
まり話題にならないのは何故なんでしょうか?

いくらスクリプト言語でも,計算より I/O の方が "桁違い" のオーダーで遅い
んだから,重要だとおもうんですが.

120:nobodyさん
06/11/03 09:37:51
それは一般的に言われている共有メモリとはちょっと違うと思うよ。preforkだと同じプロセス間だけだし。
Perl/CGIからでも利用できる共有メモリモジュールがあるしPHPにもshmop関数がある。

121:k ◆WFGp1NZuiw
06/11/03 11:42:00
>それは一般的に言われている共有メモリとはちょっと違うと思うよ。
いえ,一般的な共有メモリのことです.

mod_perl になって常駐するようになれば,共有メモリ使って prefork の子プ
ロセス間でデータを共有できるようになりますよね?

>Perl/CGIからでも利用できる共有メモリモジュールがあるし
CGI だと毎回プロセスが終了しちゃうから意味無いよー.

122:nobodyさん
06/11/03 12:49:31
意図的にデストラクトしないから再び同じプロセスを利用したときに再利用出来るという永続化の利点であって
一般的に共有メモリと聞いて連想するCのshm関数等とは全く性質が違うと思う。

>CGI だと毎回プロセスが終了しちゃうから意味無いよー.
共有メモリに入ってるデータは呼び出し元に関わらず自分で解放するまでは残ったままだよ。
なので敢えてCGIと書いた。

最大maxclientsの数だけ確保しなきゃいけないのだからそれほど効率良くないと思う。
2chもdatを共有メモリに置いてると聞いたけどどういう方法でやってるのかな。

123:k ◆WFGp1NZuiw
06/11/03 12:59:47
>共有メモリに入ってるデータは呼び出し元に関わらず自分で解放するまでは残ったままだよ。
あー,そうですね...とんちんかんなこといってた.

>最大maxclientsの数だけ確保しなきゃいけないのだから
これよく分からないんですが,何の確保の事でしょうか?

124:nobodyさん
06/11/03 14:29:04
例えば1MBのデータを使い回すとして
IPC::ShareLite等なら1MBの共有メモリだけで済むけど
mod_perlだけでやろうとしたら予測されるapacheのプロセス数×1MB必要でしょ。

125:nobodyさん
06/11/03 14:40:01
ご主人様、それはわかっております。

126:k ◆WFGp1NZuiw
06/11/03 14:46:51
>>124
ああ,そういう意図ですか.了解です.

127:nobodyさん
06/11/21 10:12:54
mod_perlとmod_phpのパフォーマンス比較
URLリンク(www.itmedia.co.jp)

こんな情報も見つけれないやつは帰れ

128:nobodyさん
06/11/21 10:17:33
ついでにほれ っURLリンク(itpro.nikkeibp.co.jp)

129:nobodyさん
06/11/21 16:07:03
mod_phpの方がパフォーマンス高いのは意外だったな。
PHPは5.1で2倍くらいに速くなってたか。

130:nobodyさん
06/11/23 02:31:34
ごく単純な処理だけならPHPの方が起動にコストがかからずに早い。処理が複雑になると、Perlに勝てなくなる。

131:nobodyさん
06/11/23 04:16:42
>>127のテストって意味ないんだよな。
やるんなら、PHPでもPerlでもほとんど同じコードになるような処理でテストするか、
一般的なウェブアプリのコードを何種類か再現して、その平均を取るテストをするか、のどっちかじゃないと。
>>127みたいにCGIモジュールとDBIモジュールのロードだけで処理コストのほとんどを使ってしまうようなテストじゃテストの意味がない。
CGIモジュールで<HTML>タグ書くなんて、実際にはありない行為だし。

132:nobodyさん
06/11/23 04:45:59
>>127がNGに引っかかってたから何かと思えばそこか。

133:nobodyさん
06/11/23 06:16:28
>>131
ソースのひとつでもだしてから

言えや

どっちが良いかなんてどうでもいいけど

そこまで言うならここにデータを書け

134:nobodyさん
06/11/23 12:17:41
一般的なウェブページを再現するようなコードなんて、そうそう書けるわけないじゃん。
あと、この板でPerlやPHPのベンチマーク取った書き込みしたのはたいていオレだよ。
1年くらい前のSmartyは遅いから使うなって、ベンチ取ったのもオレだし。
ちょっとまえにPHPのarray()が遅いって書き込んだのもオレ。
まあmod_perlはmod_phpよりだんぜん取り扱いが難しいから、単純に速度だけでどちらが優位かは言えない。
それに速度ならJavaの方が圧倒的に速いんだし。

135:nobodyさん
06/11/23 12:43:16
>>134
>速度ならJavaの方が圧倒的に速いんだし。

まて、それは孔明の(ry

136:nobodyさん
06/11/23 20:19:00
外部モジュールを使ったPerlとネイティブに動くPHPを
永続化が出来るmod_perlと出来ないmod_phpで比べるから
おかしなことになると思いきやいい感じの勝負になってるねw

137:nobodyさん
06/11/23 23:51:36
>>134
> 1年くらい前のSmartyは遅いから使うなって、ベンチ取ったのもオレだし。

あのアホかぁ。
ベンチとるのも良いが、意味のあるペンチを取る様にしようね。

138:nobodyさん
06/11/24 00:41:09
smartyはたいして有効な機能がないわりにファイルサイズが馬鹿に大きく、requireするだけで大きなコストがかかる。
他スレでもあるように<?=$var?>の方が遙かに実戦的。
smartyの唯一のメリットは強制的にビューとロジックを切り分けられるということ。
これはグチャグチャになりやすいPHPという言語の仕様からそれを防ぐという点で、初級のウェブアプリデベロッパーにはある程度有効な面もあった。
それにしたって、ウェブフレームワークを使った開発なら、たいていの場合フレームワークの仕組みとしてビュー部分は切り出してある。
よってますますsmartyは必要なくなってきて、smartyのようなテンプレートエンジンは廃れてきた。というのが最近までの流れ。




139:nobodyさん
06/11/25 13:04:02
>>138
っ URLリンク(simplate.aimy.jp)

140:nobodyさん
06/12/13 05:30:09 3eAAIseo
Perl遅いやPHP遅いだのグダグダ言う奴は大体ヘタレ初心者PGだろ?
前に仕事でPHP褒める奴がいたが、
そいつが昔書いたPerlソースを解析して遅い部分探してやったよ

@array = @array + @array2;

push (@array,@array2);

これだけ変えてやったら劇的に早くなったよ。
お前ら1分に1000~万単位のアクセス抱えた仕事でもしてんのか?
負荷分散サーバー100台必要なサイトとかの仕事やってんのか?
TV局関連の仕事とか有名サイトとかそれ位のレベルの仕事の奴だけ語れぼけ
俺はTV局関連の仕事が多いから意識する事多いけどなw

とりあえず俺の見解な!
mod_perl上でコード数抑えたピュアコーディングが負荷分散サーバー数少なく処理できた。
インタープリターの性能が一番重要なんだとおもうよ。

後、短時間(1,2時間の番組)WEB投票物の番組連携の場合はASPを使う時があるよ。

141:nobodyさん
06/12/13 07:41:24
わかりきったこと書くな

142:nobodyさん
06/12/13 09:58:26
>>140はツンデレちゃん?

143:nobodyさん
06/12/13 12:40:05
>>140
>@array = @array + @array2;

こういう書き方があるって今知った。
本見るとpush (@array,@array2);の方が多くね?

144:nobodyさん
06/12/13 17:47:24
遅い部分探すのって、どうやるの?
自分のスクリプトでやってみたいので誰か教えてほしい。ググッたら出てくるかな?

145:nobodyさん
06/12/13 21:14:09
>144
Cだけど、牧野淳一郎のパソコン物理実地指導とかに書いてあったな。
私は勉強熱心じゃないへたれだからしらん。

146:nobodyさん
06/12/13 23:13:40
use Benchmark;するか、UNIXのコマンドラインからtimeコマンド使えば良いのでは。

147:nobodyさん
06/12/14 07:05:14 GsaWAeDl
>>143
お前は初心者丸出しだw
>>142
ツンツンしててすまんなもうちょい落ち着いて書き込むわ
>>144
簡単な方法は
$| = 1; (初心者に教えやすいおまじないだ!バッファリングを無効にするなんていってもわからんだろw)
つけて気になる箇所の前にprint文入れて動かして見れ
処理スピードを目で見て確認できるw

146が言うようにuse Benchmarkでやると数値で確認できる。

148:nobodyさん
06/12/14 07:16:22 GsaWAeDl
>>143
ちょっときつい言い方だったから言い換える
昔のPerl本は速さより動かす時代だったんだよ
初版が2000年以前のPerl本買ってみるといい
きちがいサンプルコードがいっぱいあるぞ

その頃の残骸がPerlの評価を下げてるんだろうな。
でも今はPHPの方が金にはなるんじゃない?
PerlもPHPもコードはさほど変わらんだろ。
極限の速さを競うならPerlで間違いない。

149:nobodyさん
06/12/14 13:44:19
まだ仕事が出回ってるPHPの方が金になるかもしれないけど
金額が安すぎるんだよなぁ

150:nobodyさん
06/12/14 23:59:30
偉そうに語っているが、たいした事は1つも書いていない
自称玄人乙

151:nobodyさん
06/12/15 05:49:06
>>143
俺もそんな書き方しようなんて考えた事もなかったw

152:nobodyさん
06/12/23 15:44:33
>146のようなことが
>145の本に結構具体的に書いてあるよ。
まあ当たり前の事なんだけど。

153:nobodyさん
06/12/29 14:04:40
本体はperlだけど、拡張子をphpに変えてみた。
スクリプトクレクレ厨が沸いてワラタw

154:nobodyさん
07/03/22 06:53:45
>>4

5.安全性
perl<PHP

も加えて。

155:nobodyさん
07/03/22 07:06:19
>>153

script.cgi(中身はperl)をscript.php(中身はperl)にしたってこと?
動くのそれ。

156:nobodyさん
07/03/22 07:10:20
動くわけないわなw
辛うじてhtmlだけは出力したけどww

157:nobodyさん
07/03/22 07:19:21
ごめん。
誤爆とかそういうレベルじゃない。
ホントにごめん。
>>155>>156は透明あぼんして下さい。

158:nobodyさん
07/03/22 23:22:01
ソースコードにHTMLのタグがあると気持ち悪いんだよ。PHP。
Smartyだっけ?それ使えばいい話だけど。
フリーのPHPスクリプトは気持ち悪いw

あとな。K○NTだっけ?Perlでフリーのスクリプト出してるとこ。
あそこが書いたソースもキモい。
今時use strict、use warningや -wしてないソースwwwwwww
変数もグローバル/ローカルの区別なし。

159:nobodyさん
07/03/23 00:33:46
概ね同意だがこいつ頭悪そう

160:nobodyさん
07/03/23 18:28:46
strictにしてないなんて幾らでもあるじゃん。
自分で書くなら当然やるけど、別にちょっと使う程度なら問題ないし。
strictじゃないの?うはーwwwwきもっwwwwとか言う方がきもいわ。

161:nobodyさん
07/03/26 20:24:15
>>158
そりゃ今時書いたコードじゃないからだろ

162:nobodyさん
07/04/06 03:04:34
my と local をきちんと説明できる人間ってどのくらい居るんだろうな。

163:nobodyさん
07/04/06 05:22:41
初心者レベルだからlocalはぶっちゃけ自信ない。
よく特殊な使われ方するし。

164:nobodyさん
07/04/06 22:13:55
my(=局所変数)スコープ内でのみ利用できてスコープを抜けた所(リファレンスがなくなったところ?)で破棄される。
local(=退避変数)宣言があった所で値を退避させてスコープを抜けた所でもとに戻す。
って感じで説明するかなぁ
以下のコード実行結果予想して、実際に実行してあってれば理解できるんじゃないかな
use strict;
use warnings;
my $a = 1;
local $b = 1;
my $c = undef;
if(1){
my $a = 'a'; local $b = 'a';
$c = sub {
printf "%d:a=%s,b=%s\n",1,$a++,$b++;
};
printf "%d:a=%s,b=%s\n",2,$a++,$b++;
}
printf "%d:a=%s,b=%s\n",3,$a++,$b++;
$c->();
printf "%d:a=%s,b=%s\n",4,$a++,$b++;

局所化できない変数($_等)除くと、よっぽど特別な理由がなきゃmyでいいじゃんって思う



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch