【perl】速いのはどっち?【php】
■ このスレッドは過去ログ倉庫に格納されています
で、結局のところどっちが軽いんだよ? 教えろマニアども >>96 以前、abではベンチ取った事があるんで今更かなと。 php信者にベンチ取って貰った方が楽しめそうだし。 言語(インタプリタ)の処理速度がとか言いつつ、テンプレートエンジンの比較をしたリンクを 持ってくるあたり、十分期待できる。w 速度速度って、サーバ分散すりゃいいじゃん。 というか、そんな微々たる差なんてのはプログラムの組み方が悪い時のボトルネックを追い抜くことゼッタイないし。 PHPもPerlでも組み方次第でどうとでもなるし。 アプリケーションの特性によってボトルネック部分は変わってくるし。 言語なんて関係なくね? JavaだろうがCだろうが、悪い書き方したらとんでもなく遅くなって使い物にならなくなるし。 ふつーに考えて速度よりも保守性が大切になることのが多いし、遅かったらプロファイリングなりベンチマークなりでもして 該当個所だけ改善すればいいんじゃ? おまえらいつまで馬鹿みたいなこといいあってるんだ? 言語の速度を議論しているスレで > 言語なんて関係なくね? だとさ。 勝手に分散スレに行ってくれよ。 オラオラオラー おまいら能書きばかりでちゃんと計測してんだろうな。 オラオラオラー >>38 をPerlが得意とするコンソールで実行して何分かかったんだ?あ? オラオラオラー Perlみたいな糞遅いもんの測定には右下の時計で十分すぎるな。 オラオラオラー >>38 はPerlの遅さを証明する氷山の一角に過ぎないからな。 オラオラオラー 悔しかったら速いコード書いてみろよ。 オラオラオラー どうせできないだろうけど。ウププ 今日のところはこれくらいで勘弁しといちゃるからもういっていいぞ。 >>99 おまいのレスを見ながらいちいちググってみたけど 結局何が言いたいのかさっぱりわかんねぇ モジュールでも、コンパイル済みでも、cgiでも結局phpのほうが 速いのに違いはないんだろ? なにがphpAの仕組を理解しろ、だよ 二回目以降はコンパイルすっ飛ばす点じゃmod_perlと一緒だろ アセンブラより速いんだったら大いに結構じゃねーか 最近あんまベンチとってなかったので調べてみたら予想以上にPHP速いね。 PHP4の最初の頃に調べたときは何をやってもPerlより遅いみたいな印象だったけど 最新のだと空ループや正規表現までPerlを追い越してる雰囲気。 あるいはPerlが肥大化で遅くなった? ハードで簡単に解決できないPHPよりPerlのほうが100倍速いみたいなの今でもある? 進歩が止まったものは追い越される運命なのか。。。 ベンチマークの取り方にもよるけど、おおむねPerlの方が速い。 ただし、mod_phpとかのウェブのアプリケーションサーバとしての速度になると単純な速度比較は出来なくなる。 結局はプログラミングスキルの方が重要なんだけどね。 Perlのほうが速いと思っていたようなのまでPHPのほうが速いんだけど。 どーゆーことさ。。 $i = 10000000; while ($i--) { $x = $i * 2; $y = $i / 2; $z = $i << 1; } perlのほうが処理が速いっていうのは、 全然根拠のないデマだよ。 速度気にしてもあまり意味無いけど PHP5>Perl5>PHP4かな。 Perl6は遅いんですよね? 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と比べると数倍消費する。 perl、php比較スレってマジレス傾向になるとスレが盛り上がらなくなるな。 文字列をゴリゴリするならPerl 呼び出してすぐ終わるならPHP なんとなく気が向いたらRuby ソフトバンクのMNPシステムならN88-BASIC CGI に対する mod_perl の利点ってコンパイルの省略以外に,共有メモリを使っ た複数リクエスト間でのデータの共有が考えられると思うんですが,これがあ まり話題にならないのは何故なんでしょうか? いくらスクリプト言語でも,計算より I/O の方が "桁違い" のオーダーで遅い んだから,重要だとおもうんですが. それは一般的に言われている共有メモリとはちょっと違うと思うよ。preforkだと同じプロセス間だけだし。 Perl/CGIからでも利用できる共有メモリモジュールがあるしPHPにもshmop関数がある。 >それは一般的に言われている共有メモリとはちょっと違うと思うよ。 いえ,一般的な共有メモリのことです. mod_perl になって常駐するようになれば,共有メモリ使って prefork の子プ ロセス間でデータを共有できるようになりますよね? >Perl/CGIからでも利用できる共有メモリモジュールがあるし CGI だと毎回プロセスが終了しちゃうから意味無いよー. 意図的にデストラクトしないから再び同じプロセスを利用したときに再利用出来るという永続化の利点であって 一般的に共有メモリと聞いて連想するCのshm関数等とは全く性質が違うと思う。 >CGI だと毎回プロセスが終了しちゃうから意味無いよー. 共有メモリに入ってるデータは呼び出し元に関わらず自分で解放するまでは残ったままだよ。 なので敢えてCGIと書いた。 最大maxclientsの数だけ確保しなきゃいけないのだからそれほど効率良くないと思う。 2chもdatを共有メモリに置いてると聞いたけどどういう方法でやってるのかな。 >共有メモリに入ってるデータは呼び出し元に関わらず自分で解放するまでは残ったままだよ。 あー,そうですね...とんちんかんなこといってた. >最大maxclientsの数だけ確保しなきゃいけないのだから これよく分からないんですが,何の確保の事でしょうか? 例えば1MBのデータを使い回すとして IPC::ShareLite等なら1MBの共有メモリだけで済むけど mod_perlだけでやろうとしたら予測されるapacheのプロセス数×1MB必要でしょ。 mod_phpの方がパフォーマンス高いのは意外だったな。 PHPは5.1で2倍くらいに速くなってたか。 ごく単純な処理だけならPHPの方が起動にコストがかからずに早い。処理が複雑になると、Perlに勝てなくなる。 >>127 のテストって意味ないんだよな。 やるんなら、PHPでもPerlでもほとんど同じコードになるような処理でテストするか、 一般的なウェブアプリのコードを何種類か再現して、その平均を取るテストをするか、のどっちかじゃないと。 >>127 みたいにCGIモジュールとDBIモジュールのロードだけで処理コストのほとんどを使ってしまうようなテストじゃテストの意味がない。 CGIモジュールで<HTML>タグ書くなんて、実際にはありない行為だし。 >>127 がNGに引っかかってたから何かと思えばそこか。 >>131 ソースのひとつでもだしてから 言えや どっちが良いかなんてどうでもいいけど そこまで言うならここにデータを書け 一般的なウェブページを再現するようなコードなんて、そうそう書けるわけないじゃん。 あと、この板でPerlやPHPのベンチマーク取った書き込みしたのはたいていオレだよ。 1年くらい前のSmartyは遅いから使うなって、ベンチ取ったのもオレだし。 ちょっとまえにPHPのarray()が遅いって書き込んだのもオレ。 まあmod_perlはmod_phpよりだんぜん取り扱いが難しいから、単純に速度だけでどちらが優位かは言えない。 それに速度ならJavaの方が圧倒的に速いんだし。 >>134 >速度ならJavaの方が圧倒的に速いんだし。 まて、それは孔明の(ry 外部モジュールを使ったPerlとネイティブに動くPHPを 永続化が出来るmod_perlと出来ないmod_phpで比べるから おかしなことになると思いきやいい感じの勝負になってるねw >>134 > 1年くらい前のSmartyは遅いから使うなって、ベンチ取ったのもオレだし。 あのアホかぁ。 ベンチとるのも良いが、意味のあるペンチを取る様にしようね。 smartyはたいして有効な機能がないわりにファイルサイズが馬鹿に大きく、requireするだけで大きなコストがかかる。 他スレでもあるように<?=$var?>の方が遙かに実戦的。 smartyの唯一のメリットは強制的にビューとロジックを切り分けられるということ。 これはグチャグチャになりやすいPHPという言語の仕様からそれを防ぐという点で、初級のウェブアプリデベロッパーにはある程度有効な面もあった。 それにしたって、ウェブフレームワークを使った開発なら、たいていの場合フレームワークの仕組みとしてビュー部分は切り出してある。 よってますますsmartyは必要なくなってきて、smartyのようなテンプレートエンジンは廃れてきた。というのが最近までの流れ。 Perl遅いやPHP遅いだのグダグダ言う奴は大体ヘタレ初心者PGだろ? 前に仕事でPHP褒める奴がいたが、 そいつが昔書いたPerlソースを解析して遅い部分探してやったよ @array = @array + @array2; ↓ push (@array,@array2); これだけ変えてやったら劇的に早くなったよ。 お前ら1分に1000〜万単位のアクセス抱えた仕事でもしてんのか? 負荷分散サーバー100台必要なサイトとかの仕事やってんのか? TV局関連の仕事とか有名サイトとかそれ位のレベルの仕事の奴だけ語れぼけ 俺はTV局関連の仕事が多いから意識する事多いけどなw とりあえず俺の見解な! mod_perl上でコード数抑えたピュアコーディングが負荷分散サーバー数少なく処理できた。 インタープリターの性能が一番重要なんだとおもうよ。 後、短時間(1,2時間の番組)WEB投票物の番組連携の場合はASPを使う時があるよ。 >>140 >@array = @array + @array2; こういう書き方があるって今知った。 本見るとpush (@array,@array2);の方が多くね? 遅い部分探すのって、どうやるの? 自分のスクリプトでやってみたいので誰か教えてほしい。ググッたら出てくるかな? >144 Cだけど、牧野淳一郎のパソコン物理実地指導とかに書いてあったな。 私は勉強熱心じゃないへたれだからしらん。 use Benchmark;するか、UNIXのコマンドラインからtimeコマンド使えば良いのでは。 >>143 お前は初心者丸出しだw >>142 ツンツンしててすまんなもうちょい落ち着いて書き込むわ >>144 簡単な方法は $| = 1; (初心者に教えやすいおまじないだ!バッファリングを無効にするなんていってもわからんだろw) つけて気になる箇所の前にprint文入れて動かして見れ 処理スピードを目で見て確認できるw 146が言うようにuse Benchmarkでやると数値で確認できる。 >>143 ちょっときつい言い方だったから言い換える 昔のPerl本は速さより動かす時代だったんだよ 初版が2000年以前のPerl本買ってみるといい きちがいサンプルコードがいっぱいあるぞ その頃の残骸がPerlの評価を下げてるんだろうな。 でも今はPHPの方が金にはなるんじゃない? PerlもPHPもコードはさほど変わらんだろ。 極限の速さを競うならPerlで間違いない。 まだ仕事が出回ってるPHPの方が金になるかもしれないけど 金額が安すぎるんだよなぁ 偉そうに語っているが、たいした事は1つも書いていない 自称玄人乙 >>143 俺もそんな書き方しようなんて考えた事もなかったw >146のようなことが >145の本に結構具体的に書いてあるよ。 まあ当たり前の事なんだけど。 本体はperlだけど、拡張子をphpに変えてみた。 スクリプトクレクレ厨が沸いてワラタw >>4 に 5.安全性 perl<PHP も加えて。 >>153 script.cgi(中身はperl)をscript.php(中身はperl)にしたってこと? 動くのそれ。 動くわけないわなw 辛うじてhtmlだけは出力したけどww ごめん。 誤爆とかそういうレベルじゃない。 ホントにごめん。 >>155 と>>156 は透明あぼんして下さい。 ソースコードにHTMLのタグがあると気持ち悪いんだよ。PHP。 Smartyだっけ?それ使えばいい話だけど。 フリーのPHPスクリプトは気持ち悪いw あとな。K○NTだっけ?Perlでフリーのスクリプト出してるとこ。 あそこが書いたソースもキモい。 今時use strict、use warningや -wしてないソースwwwwwww 変数もグローバル/ローカルの区別なし。 strictにしてないなんて幾らでもあるじゃん。 自分で書くなら当然やるけど、別にちょっと使う程度なら問題ないし。 strictじゃないの?うはーwwwwきもっwwwwとか言う方がきもいわ。 >>158 そりゃ今時書いたコードじゃないからだろ my と local をきちんと説明できる人間ってどのくらい居るんだろうな。 初心者レベルだからlocalはぶっちゃけ自信ない。 よく特殊な使われ方するし。 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でいいじゃんって思う use strict; use warning; したままだと余分な処理かかるから完成したら外せ と聞いたがどうなのかね CPUにしかわからん程度の差だろうけれども >>164 my はシンボルテーブルに上がらず自分でメモリ確保するけど local はシンボルテーブル上に存在する けど our と local が同じ場所にいるのに区別されるのはなぜかわからん 世の中phpだけでいいだろう。 phpですべてができるからな。 そんなこと言ったら世の中brainfxxkだけでいい 世界最速のコードはひまわりという結論に達しました。 書き方による! と言いたくなるほど技術力の差が出てきている現状。 PHPエンジニア糞すぎる。何もわかってない奴多すぎる。 今でもPerlで研究しながら生き残ってる奴は妥当なコードがかける。 mod_phpでもsuPHP以外でsetuidすることは可能 もちろん遅くなる 転職の際に必ず思い出してください。 下記の条件が全て当てはまる会社にご注意下さい。 ・IT系 in 東京 ・転職会議で2.5点 ・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 J0HLWTFQRY ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる