パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

PHPはエコじゃない?」記事へのコメント

  • コードキャッシュやパース処理もしないシステムなんて、あるのだろうか。
    インタプリタをバカにしてはいけない。
    • コードキャッシュや事前パーシングぐらいじゃ
      実行速度の向上率は精々300%ぐらい。大したことないよ。
      http://php.y-110.net/wiki/index.php?PHP%A1%A7eAccelerator%20%A4%C7%20P... [y-110.net]
      インタプリタをバカにしてはいけない、というなら
      せめてネイティブコードへのJITコンパイルぐらいしてくれないと。

      でもそこまでやっても結局、非コンパイル型の動的言語って全部遅いんだよ。
      結局変数をスタックに置くのと、ヒープに置くのじゃメモリアクセスが
      最低一回分違うわけで、このペナルティはスクリプト言語である以上回避できない問題だ。
      あと、特にPHPはrequire周りとOOP機能を使った時のパフォーマンスが悪い(実感として)。
      .NET VMで動くC#ですらPHPに対して完全勝利してるんだから、
      PHPでいくら頑張っても最適化処理をちゃんとやったC++の足もとにも及ばない。

      もちろん、PHP開発にはPHP開発の利点があるのは事実だが、Facebookほどに
      利用者数が膨れ上がったシステムを全部PHPで済まそうってのは
      非エコって言われてもしょうがないと思う。

      ただ、PHPとC++を併用とか大変だから、C#+ASP.NETみたいな
      両方の良さを兼ね備えた素敵フレームワークが生まれたんだろうね。

      --
      ごめんなさい。
      親コメント
      • by Anonymous Coward

        コードサイズとか必要な情報が限られているので「最大で3倍」なのか
        「少なくても3倍」なのか判断できませんね。

        >あと、特にPHPはrequire周りとOOP機能を使った時のパフォーマンスが悪い(実感として)。
        バイトコードキャッシュではinclude/require時の動作について、パスを
        走査する処理を改善しているとのこと。
        http://d.hatena.ne.jp/i_ogi/20070604/1180979055 [hatena.ne.jp]

        さすがにFaceBookくらいの規模になると、やってるんじゃないですかねえ。
        mixiとかも。

      • by Anonymous Coward
        > 変数をスタックに置くのと、ヒープに置くのじゃメモリアクセスが最低一回分違う
        違うっけ?

        > .NET VMで動くC#ですら
        「非コンパイル型の動的言語って全部遅い~.NET VMで動くC#ですら」
        って文脈だとC#が非コンパイル型の動的言語のように見えますが、.NETはJITコンパイルされるんでは?
        VMとは言うものの、JITコンパイルされた後は普通にネイティブコードで走るのでJavaのようなVMとは違いますし、ペナルティは非常に低いですよ。

        # 文句ばっかり言ってますが「非コンパイル型の動的言語って全部遅い」には激しく同意します。

Stay hungry, Stay foolish. -- Steven Paul Jobs

処理中...