トップページ⇒php
1001コメント283KB

PHPがJSPより優れている点って何ですか。

■ このスレッドは過去ログ倉庫に格納されています
0001たけ03/12/04 00:49ID:7VVPvP8a
よく巷でPHPは便利だ、簡単に作れるというんだけど、
ちょっと見たところ、そんなにJSPより利点があるようにも
見えないんだけど、誰か指摘して頂戴。
まあ、Perlよりは楽だろうけど。
0511nobodyさん05/02/05 00:32:50ID:???
>>510
いまでもそうだろ?
0512nobodyさん05/02/05 00:37:02ID:???
>>511
JITで速度はC並ですが
0513nobodyさん05/02/05 00:39:25ID:???
>>512
それは反則だろww
最初からCで書けよww
0514nobodyさん05/02/05 00:41:24ID:???
>>513
反則?VM内にJITコンパイラがあってVM上の動作速度はCとそれほど変わらないんだよ
0515nobodyさん05/02/05 00:45:50ID:???
>>514
ああ、JNIと間違えた。
でもCと変わらんってのは絶対ありえないからw
0516nobodyさん05/02/05 01:38:14ID:???
パフォーマンス系のサイト見たことないのね。
まぁでもJavaはXMLとかリフレクションでいくらでも重くなるからそう思うのも仕方ないか
0517nobodyさん05/02/05 02:03:34ID:???
>>504
スレ通して見て見たけど、入門書かじった程度の人間にでも
カチッと嵌るいい表現かなと。使い分け。それでいいんじゃねーか?


yahooについての記載はさておき。
内情知らない外部の人間が漏れ聞く情報だけでガタガタ言っても机上の空論。
0518nobodyさん05/02/05 10:13:09ID:???
>>515
「絶対ありえない」というのは絶対ありえないね。
0519nobodyさん05/02/05 10:15:34ID:???
>>507
> サーバスペックに余裕が無い状態で、phpよりjavaのほうが有利か?

サーバースペックに余裕が無い状態で、サーバースペックを活かせないPHPのコネクションプーリングの仕組みが有利か?
メモリとかCPU速度より、DB接続数の制限の方が先にボトルネックになることもありそうだぞ。
0520nobodyさん05/02/05 10:19:13ID:???
>>507
> ハードに惜しみも無く金かけられるクライアントが

最近は惜しみなく金かけなくても、そこそこのサイトならそこそこ回せるようなハードが売ってますが、なにか?
0521nobodyさん05/02/05 12:06:33ID:???
>>516
「サイトで書かれてたから速い」ってなかんじで鵜呑みにしないで、自分でプログラム組んで比較してみな。

>まぁでもJavaはXMLとかリフレクションでいくらでも重くなるからそう思うのも仕方ないか

高負荷のパフォーマンスを測ってみるといいよ。
javaは一定のライン超えると、恐ろしくパフォーマンス落ちるからさ。
phpが負荷に強いのもわかると思うよ。
0522nobodyさん05/02/05 12:12:50ID:???
>>519
コネクションが足りなけりゃ空くまで待ってもらえばいいだけ。
0523nobodyさん05/02/05 12:22:12ID:???
>>522
ふーん、待ってもらう余裕がある程度の負荷のときの話なのね。

じゃあJavaでもいいんじゃない?
PHPは一定のライン超えると恐ろしく開発パフォーマンス落ちるしね。
サーバー代よりそっちの方が高いし。
0524nobodyさん05/02/05 12:24:37ID:???
PHPのコネクションプーリングの問題点は、HTTPプロセスがひとつ握るということで、データベースが必要なくてもコネクションを握ってしまうということだな。
データベースが必要ないどころか、PHPすら動かない静的HTMLやら画像ファイルでもDBコネクションをにぎることになってしまう。
0525nobodyさん05/02/05 12:34:18ID:???
>>523
空きが無いような高負荷時にも、先にエラーはくから明快だよ。
「現在空きがありません」ってね。
javaはプールサイズ使い切ると、空くまでずっと待たせるだろ。
0526nobodyさん05/02/05 12:34:39ID:re6LpLVL
zend studio ってどうでしょうか?
0527nobodyさん05/02/05 12:35:24ID:???
>>524
何の話だ?意味わからん
0528nobodyさん05/02/05 12:35:30ID:???
YahooでPHPが使われてるっていう話とりあげるやつがいるけど、ゴリゴリPHP自体をカスタマイズした上で使ってるわけだからな。
そこらへんでダウンロードして使えるPHPとは別物だからな。

ってか、PHPってアンドキュメントな仕様変更と日本語関係のエンバグの多さが怖くて使ってられない。
0529nobodyさん05/02/05 12:36:25ID:???
>>527
HTTPプロセスごとにコネクション使いまわすんだよ。
0530nobodyさん05/02/05 12:39:41ID:???
>>525
あぁ、じゃあ、同時に使える人の数は少なくていいってことね。
そういう高負荷か。
「Javaは」っていうけど、Javaのコネクションプーリングにもいろいろあるわけだし、必要なら開きが無ければすぐエラーはかせる仕組み作ることも難しくないしね。
0531nobodyさん05/02/05 12:41:14ID:???
>>529
明示的にconnectしなくてもコネクション握るってこと?
0532nobodyさん05/02/05 12:41:36ID:???
>>527
実際に同時に使われる接続数よりも多くの接続数を確保しないといけないってことだ。
0533nobodyさん05/02/05 12:42:38ID:???
>>531
そうだよ。
プロセスが持ってるからね。
connectどころか、そのプロセスがPHPの処理しなくてもコネクション握る。
0534nobodyさん05/02/05 12:42:50ID:???
>>530
別に、少なくないだろう?
例えば接続数500使い切るのにどれだけ同時アクセスが必要だと思う?
0535nobodyさん05/02/05 12:43:40ID:???
>>534
画像が100あるページを5つ。
0536nobodyさん05/02/05 12:53:06ID:???
ちなみに、DB接続数とHTTPプロセス数が同じなわけだから、DB接続が埋まってるときにはHTTP自体がつながらず「現在空きがありません」とだすこともできない。
0537nobodyさん05/02/05 13:11:59ID:???
>>536
普通にhttpがToo many connections吐くぞ
0538nobodyさん05/02/05 13:13:19ID:???
違うな。
DB接続もらってないハズレプロセスができるんだ。
で、ハズレプロセスひいたときには使ってないところに切断させて再接続。
切断されたところはハズレプロセスになる、って仕組みだったかな。
DB接続の実装次第だけど、そういう実装になってるものはHTTPプロセス数がDB接続限界を越えるとある確率で再接続が必要になってくる。
0539nobodyさん05/02/05 14:56:54ID:???
>>521
PHPも一定のライン越えると恐ろしくパフォーマンス落ちるよ。
ちなみに、固定HTMLだって、C言語で書いたって、一定のライン越えると
恐ろしくパフォーマンスは落ちる。
0540nobodyさん05/02/05 14:59:03ID:uijxdVw/
どうでもいいけど、XOOPSとかWikiって、どのサイトももっさりだな。
PerlやJSPのサイトって、そんなにもっさりじゃないのに。
0541nobodyさん05/02/05 15:06:41ID:???
まー、大規模サイトではJAVAかCかPerlが採用されてて、殆どPHPが採用されていない時点で気が付けよ。
0542nobodyさん05/02/05 15:09:04ID:???
PHP使った大規模サイトって、どこがあるの?
0543nobodyさん05/02/05 15:17:16ID:???
あるわけないじゃん。
PHPは中小規模専用に作られてるんだから
よほどのバカでもなければ大規模サイトで使ったりしない。
0544nobodyさん05/02/05 15:20:23ID:???
と言う事は、一定のラインは越えようがない程度の需要のサイトしかないってことだな。
1時間に数万アクセスあるJAVAのサイトと、数百のPHPのサイトの重さを比べても
仕方がないって事だ。
0545nobodyさん05/02/05 16:56:42ID:kff6pBVB
amazon とかは何をつかってますか?
また、C でコーディングとありますが、どうやって実装するのですか?
0546nobodyさん05/02/05 17:04:59ID:???
Cでコーディングって書いてあるなら、Cで実装するんだろ。
0547nobodyさん05/02/05 17:44:18ID:???
>>545
アマゾンがどうか知らんが、一番軽くするためには、自分でアパッチのモジュールを作る。
場合によっては固定HTMLを表示するよりも早く表示できる事もある。
(もちろん、print文で固定文字列をそのまま出すだけのプログラムで、だが)
普通にCGIとしてC言語を使っても、気休め程度にしか軽くはならない。
0548nobodyさん05/02/05 18:20:27ID:???
PHP = 佐倉 綾乃

C = 片岡 貢、 真東 輝

C++ = 安田 潤司、 真東 光介

JAVA = 北見 柊一、 四宮 慧
0549nobodyさん05/02/05 18:26:34ID:TBO/V8CN
>>548
余計分からねーよ。
0550nobodyさん05/02/05 19:54:05ID:NCI5rUWC
Yahooはphpすよ。
0551nobodyさん05/02/05 20:01:00ID:???
phpベースの独自スクリプトってphpって言うのか?
とりあえずphpが高速だと主張するのなら、
PukiWikiをなんとかしてから発言して欲しいと思う。
PHP使いしかいないはずの質問スレですら、PHPは重いみたいな
話になってて悲しいぞ。
0552nobodyさん05/02/05 20:34:02ID:???
アプリの遅さは言語と関係ない。
C で同じ者でも遅くも速くも作れる。
PHP も同じ。
0553nobodyさん05/02/05 20:52:38ID:???
そういう問題ではなく、同じ物をまともにPHPとCで作ったら、
全然Cの方が早いという話だろ。
0554nobodyさん05/02/05 21:04:21ID:FFu8yeXA
わからないのは、 C言語って、具体的にどこのソースを書くときにつかうのですか??
0555nobodyさん05/02/05 21:08:15ID:???
>>539
当たり前だろそんなもの
程度問題ってことなんだよ
同じスペックのマシンで、同じ処理を行うプログラムを書いて実際に比較すれば
その一定のラインが、Javaのほうが低いことがわかるから
0556nobodyさん05/02/05 21:12:52ID:???
>>554
何を使っているか知らんがお前がプログラムを書くのと同じことをすべてだよ
0557nobodyさん05/02/05 21:36:23ID:???
>>555
へー、やったんだ。
どんな環境で、どういう条件で、どういうプログラムで、どういう方法で試したの?
0558nobodyさん05/02/05 22:25:08ID:???
>>557
10万件のレコードから、結果出力が700件程度になるような
検索キーワードを問い合わせして、処理に要した時間を単に
出力するシンプルなテストwebプログラム。
jspはdatasource経由でコネクションプーリング使用同時
poolsizeは50
phpはpconnectではなくconnect

マシンスペック
P3 1.4デュアル
メモリ 1G
一応PCじゃなく鯖専用マシンな

別のソケットを使用した自動リクエスト発行プログラムから、
1000ミリ秒、300ミリ秒、200ミリ秒、100ミリ秒間隔でテストプ
ログラム自体にリクエストを送信した状態で、ブラウザから
テストプログラムを呼び出して、処理にかかった時間を計測。

結果は、
1000m秒間隔ではjspが平均1/100秒ほど優勢
300m秒では同等
200m秒では逆転
100m秒ではphpが平均で10秒以上の差で優勢

漏れのマシンだと、大体、CPU占有率80%位でphpが逆転した
かんじかな。
あと負荷テストが終わった後、ガーベッジコレクションのためか、
1分以上CPUを占有したままだった。
phpはすぐに落ち着いたけどね。

0559nobodyさん05/02/05 22:33:56ID:???
>>557
あと、プールサイズは500に増やしてみたけど大して変わらんかったな
パフォーマンスが落ちたのはDB周りが原因ではなさそうだ
0560nobodyさん05/02/05 23:03:00ID:???
実行したソース出してみ。
0561nobodyさん05/02/05 23:10:03ID:???
なんか、MSが良くやる感じの情報操作だなぁ…
サーバの情報って、CPU速度とかそういう事ではなくて、例えばTomcatの設定とか
Apacheの設定とか、そういうのが求められてるわけで、
その設定によって、いくらでもパフォーマンスは変えられる。
0562nobodyさん05/02/05 23:10:57ID:???
あと、OSも出さないし、なんつーか、テスト慣れしてない人が、
見よう見まねでテストやってる感が…
0563nobodyさん05/02/05 23:13:20ID:???
>>560
<%@ page import="java.io.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%
long time = System.currentTimeMillis();
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySQL");
Connection con = ds.getConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from zipcode where newpost like '%21-0%'");
%>
<%@ page contentType="text/html;charset=windows-31j"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>untitled</title>
</head>
<body>
<%
while(rs.next()){
%> <%=rs.getString("address")%><br><% } %>
</body>
</html>
<% rs.close();stmt.close();con.close();%>
<%=System.currentTimeMillis()-time %>
0564nobodyさん05/02/05 23:14:29ID:???
>>560

<?
function getmicrotime(){
list($msec, $sec) = explode(" ", microtime());
return ((float)$sec + (float)$msec);
}
$time = getmicrotime();
$con = mysql_connect("218.45.22.177","wi","wi");
mysql_selectdb("wi");
$result = mysql_query("select * from zipcode where newpost like '%21-0%'");

while($row=mysql_fetch_object($result)){

echo $row->address."<br>";

}
mysql_close($con);
$totaltime = getmicrotime() - $time;
echo $totaltime;
?>
0565nobodyさん05/02/05 23:18:01ID:???
>>562
redhat9.0
apach2
php 4.3.9
tomcat5
0566nobodyさん05/02/05 23:21:23ID:???
やべえipさらしちゃったwww
0567nobodyさん05/02/05 23:21:53ID:???
サーバの設定は出さないわけか。。。
0568nobodyさん05/02/05 23:28:11ID:???
なんでPreparedStatementじゃないの?
0569nobodyさん05/02/05 23:29:27ID:???
遅くしたいからじゃない?(w
0570nobodyさん05/02/05 23:33:26ID:???
>>569
どっちかっていうとphpのほうが不利な条件だぞ。
pconnect使ってないし
fetch_objectは遅いし
0571nobodyさん05/02/05 23:59:52ID:???
一番最新で速い技術で比べないと意味無いような気がするが。
0572nobodyさん05/02/06 00:12:45ID:???
>>571
最新の技術使って、高速化追求しだすときりがないんだよ。
phpもエンコードして高速化しようと思えばできるんだからさ。
0573nobodyさん05/02/06 00:41:47ID:???
いや、べつにそうすればいいじゃん。
0574nobodyさん05/02/06 00:41:47ID:???
gj。 行動した事を評価したい。
ケチつけるだけなら誰でも出来るしな。
0575nobodyさん05/02/06 06:13:19ID:???
sunは開発資金に余裕がありそう。

phpは・・・???
0576nobodyさん05/02/06 12:03:35ID:???
Javaマンセーのみなさん、グダグダ言ってないで、軽く動いているサイトをいくつか紹介してください。
0577nobodyさん05/02/06 12:12:55ID:???
つーか、いくつも紹介されてただろ。
0578nobodyさん05/02/06 14:00:20ID:???
それがグダグダw
0579nobodyさん05/02/06 14:52:29ID:???
PHPでコーディングは出来ても、日本語が通じない奴が多いな。
0580nobodyさん05/02/06 23:19:13ID:???
>>575
MSからたんまりもらったからな。
0581nobodyさん05/02/06 23:20:14ID:???
>>576
anaの予約サイトは普通に動いてると思うが。
0582nobodyさん05/02/07 08:09:40ID:???
>>581
いくら例出しても納得しないから、無駄だよ。
今までもさんざん例が出てきてるのに、無視だからな。

JALマイレージバンクもjspだし、リクナビもjsp。
0583nobodyさん05/02/07 10:20:19ID:???
JALやIYバンクってPHPも使ってるんだな。
適材適所の良い見本だ。
0584nobodyさん05/02/07 19:36:47ID:???
VIAのサイトもJSPだな
0585nobodyさん05/02/08 02:15:19ID:???
PHPは小中規模に最適でサクサクってよく言うけど、
その代表のPukiWikiのサイトやら、各通販サイトやら、
サクサクなところが殆どないんだけど、どうしてなの?
xoopsも、公式サイトやら企業のサイトなど、でかいところは割に快適だが、
個人がレンタルサーバ匂い輝みたいな所は、概して重いんだよね…
phpって実は結構な規模のサーバスペックが要求されるんじゃないの?
0586nobodyさん05/02/08 02:16:41ID:???
>>585
>>552
0587nobodyさん05/02/08 02:40:42ID:???
wikiに関してはPHPに限らず重いことが多い。
0588nobodyさん05/02/08 02:41:16ID:???
遅くも速くもコーディング次第なのが問題なんじゃなくて、
キラーアプリが激遅なのが問題にされてるんじゃないのか?
それらはPHP技術者の中でも有能な人が開発してるんだろうし
0589nobodyさん05/02/08 02:48:21ID:???
KJWiki

http://javaballista.ddo.jp/kjwiki/kjwiki

JavaのWikiクローンだが、サクサクしてるな。
0590nobodyさん05/02/08 02:50:55ID:WbzNwqmY
PHPがそんなにサクサクなら、もっと商用サイトで採用されてもいいと思うんだが…
現実を見るとJAVAで問題なく作られて、問題なく動いてるんだよね
単純ならば、JAVAよりスクリプトが速いなんてのもあったけど、
実際問題、そんなに単純な仕組みなんて、実務サイトでは要求されないし
DB叩くだけのアプリでベンチ取ったところで、実務とかけ離れたデータしか取れないでしょ
0591nobodyさん05/02/08 02:50:56ID:???
wikiはページ数が増えると重くなるんだよ。
0592nobodyさん05/02/08 02:51:36ID:???
>>591
PukiWikiのサイトは、ページ数が少なくても重いような。。。
0593nobodyさん05/02/08 02:52:18ID:???
PerlのWikiも重い。FreeStyleだっけ?
JavaのWikiってあんまり見た事無いな
0594nobodyさん05/02/08 06:29:48ID:???
http://www.digiket.com/
0595nobodyさん05/02/08 06:43:11ID:???
PHPは、なまじ共有鯖で動いちゃうから不利だよな。
1鯖何百ユーザーも入っている鯖で動いてるXoops
やWikiが、重いだ何だのとケチつけられちゃうからさ。

Javaでかかれたサイトは、専用鯖が当たり前。
そもそも比較するのがおかしいわ。

共有鯖で動いているPHP系WikiやXoppsと重さを比
べるなら、共有鯖で動いてるJava系WikiなりXoops
なりを持ち出さないと意味無いね。

0596nobodyさん05/02/08 08:05:38ID:???
>>590
ここで挙げられて問題なく動いているのは日本を代表する超大手のみ。
0597nobodyさん05/02/08 09:16:11ID:???
日本を代表しない小規模だと、アホみたいな負荷がかかることもなく普通にサクサク動いてますが、なにか?
0598nobodyさん05/02/08 11:01:57ID:???
PHPは簡単に使えるから凄く便利!
0599nobodyさん05/02/08 11:10:33ID:???
>Javaでかかれたサイトは、専用鯖が当たり前。

共有鯖も多いよ
0600nobodyさん05/02/08 12:45:25ID:???
>>599
を見てJava厨の存在自体がネタに思えてきた
0601nobodyさん05/02/08 18:35:57ID:???
Javaの使える商用のレンタルサーバって結構ある。
個人向けのプランでは対応してないところが多い上に、
国内では、規模がでかいところが多いから、専用サーバばかりに思えるだけで。
0602nobodyさん05/02/08 19:03:07ID:???
>>600
自分の想像を越えたものはすべてネタなんですね。
0603nobodyさん05/02/08 22:21:51ID:???
PHPと言えばレンタルサーバで簡単に動いて便利みたいになってるが、
mbstringに対応してないレンタルサーバって、意外に多いんだよね…
0604nobodyさん05/02/09 00:04:37ID:???
>>601
国内は殆ど専用サーバ。
そもそもServletコンテナ自体、共用サーバで使うには不向きなんだよ。
0605nobodyさん05/02/09 00:09:39ID:???
>>603
それは海外のサーバな。
国内は対応してい無いほうが珍しいよ。
0606nobodyさん05/02/09 00:54:18ID:???
>>605
国内でも対応してないところ結構あるよ。
RedHat7〜9を使ってるところが多い。
セキュリティアップデートで契約してるパッケージやさん(progenyとか)
のRPMで実現出来ない事が主な理由だそうだ。
BSDとかの鯖はたいてい対応してるね。
0607nobodyさん05/02/09 00:55:56ID:???
>そもそもServletコンテナ自体、共用サーバで使うには不向きなんだよ。

何時代の話ですか?
今時レンタルサーバ向けの商用コンパネにもTomcatのメニューがあったりするんだよ。
0608nobodyさん05/02/09 01:00:14ID:???
>>606
一部の特例を持ち出し「結構ある」とは如何なものか。
その結構あるという鯖業者って、具体的にどこよ?
0609nobodyさん05/02/09 01:31:46ID:???
俺の知ってるところでは、PLESKレンタルサーバーは非対応。
聞くところによると@serverも駄目らしい。
0610nobodyさん05/02/09 01:34:40ID:hfz75OfT
さくらはmbstring入ってるけど文字化けするのよねん
回避策はあるけど、サポート外とか断言してるしw
■ このスレッドは過去ログ倉庫に格納されています