タグ

PHPとperformanceに関するakiyanのブックマーク (18)

  • Composer を倍速にした、たった 1 行のコード

    まだ 12 月早々ですが、PHP ユーザに素敵なクリスマスプレゼントが届きました。 いまや使うのが当たり前となった Composer ですが、複雑な依存解決に実行時間がかかるのがネックでした。 これは日国内だけでなく、海外のユーザも同じで、皆がしょうがないと思いつつも、小さな不満を持ちながら使っていました。 そんな、ある�日、わずか 1 行のコードが追加されたことで、実行時間が、わずか半分になるという現象が起こりました。 Composer を倍速にするには? composer self-update を実行して、最新版にするだけです。 $ composer self-update 実際の効果 このコードの効果を見てみましょう。composer コマンドの --profile オプションを使って、実行時間と使用メモリ量を出力します。 $ composer update --dry-run

    akiyan
    akiyan 2014/12/04
    これはやべえ、composer以外でもgc_disableしてベンチ取りたくなる...
  • 素のPHPまたはCakePHPの テンプレートのHTML部分を圧縮(minify) して通信量を削減により、高速化を図る - zz log

    概要 PHPのViewテンプレートをtoken_get_all(指定したソースを PHP トークンに分割する)と自前のhtml-minifier により、事前にHTML圧縮を行い、その結果をキャッシュすることで、5~10%程度のHTML容量の削減を行うことができました。 詳細 ※CakePHP の View テンプレートは、テンプレートエンジンを使用せず、素のPHPを使用します。 IDE等の支援を受けながら、View テンプレートを作成しますが、人間向けに可読性を持たせようとすると、ブロック要素毎にインデントを行いながら作成することになります。インデントに使用される(半角空白やタブ)は人間の可読性のためだけにあり、デメリットとして通信量の増大(ブラウザのHTMLパースは体感できない程高速に行われる)やサーバー側のキャッシュの非効率化などがあります。 PHPのテンプレートによるレンダリング後

    素のPHPまたはCakePHPの テンプレートのHTML部分を圧縮(minify) して通信量を削減により、高速化を図る - zz log
  • DooPHPのコールグラフ - 浜村拓夫の世界

    DooPHPという軽量なPHPフレームワークが紹介されていた。 PHP用の世界最速最軽量MVCフレームワーク「DooPHP」 - Web活メモ帳 DooPHPPHPでできたオープンソースの軽量MVCフレームワークです。 CakePHPやCodeIgniterと比較したベンチマークを測った所、はるかに多くの処理を実行できたそうです。 DooPHP公式サイト(英語) http://www.doophp.com/ DooPHPのツイッター http://twitter.com/doophp CodeIgniterよりも軽量とのこと。 さっそくXHProfでDooPHPのファンクションコールを調べてみた。 確かにDooPHPのコールグラフは、CodeIgniterのコールグラフに比べてスッキリしており、軽そうだ。 (CodeIgniterのコールグラフは、以前ブログに掲載) PHPのプロファイラ

    akiyan
    akiyan 2012/02/21
    DooPHPのコールグラフ。
  • PHP用の世界最速最軽量MVCフレームワーク「DooPHP」 | Web活メモ帳

    DooPHPPHPでできたオープンソースの軽量MVCフレームワークです。より少ないコストでサイトを構築するには最近はこういったフレームワークは必須ですね。 高性能だけれども軽くて早い、ぜひ使ってみたくなるようなベンチマークが公式サイトに掲載されていました。 CakePHPやCodeIgniterと比較したベンチマークを測った所、はるかに多くの処理を実行できたそうです。 DooPHPは軽量ですがいくつかの重要な機能はサポートしています。 ・MVC ・REST ・URIルーティング ・ORMTemplateエンジン 最近はこういったフレームワークが多数出現するため選択肢に幅がでるのは良いのですが、とっかかりが難しく途中で利用を諦める場合があります。業務で利用できるまでになるには日語での情報が期待ですね。 サイトにはブログなどの多数のデモがあるためPHPデベロッパーの方はぜひ見てみてくだ

    PHP用の世界最速最軽量MVCフレームワーク「DooPHP」 | Web活メモ帳
    akiyan
    akiyan 2012/02/21
    DooPHPのパフォーマンス測定結果。
  • MySQL を PDO で使うときは ATTR_EMULATE_PREPARES を設定しよう : DSAS開発者の部屋

    「DSAS for Social を支える技術」 というネタでadvent calendar に挑戦します。 methane です。 PDOで MySQL を使うときは、みなさん $stmt = $con->prepare("..."); して $stmt->execute($values); とかしてプリペアドステートメントを利用されていると思います。 実は、このプリペアドステートメント、パフォーマンス的にはあまり良くありません。1つのクエリを実行するために、プレースホルダ付きのクエリを投げた後に、それに値をバインドして実行するコマンドを投げるので、1回のクエリを実行するのに2往復の通信が必要になるのです。 プリペアドステートメントにはパフォーマンスの利点(同じクエリを何度も発行するときにDBサーバーがクエリの解析を繰り返さないでもすむ)というものと、SQLインジェクション対策になる(正

    MySQL を PDO で使うときは ATTR_EMULATE_PREPARES を設定しよう : DSAS開発者の部屋
    akiyan
    akiyan 2011/12/01
    ほお。
  • PHPコード最適化Tipsのウソと本当(解説) - カタコト日記

    PHP コード最適化 Best Practices 63+ - カタコト日記 前回は、元記事に一定の敬意を表して、項目とかはあえてそのままにしてたんですが、 自分としても気になる部分が多々あったので、少しだけ調べ直して優先度&解説つけました。 独断と偏見ですが。ヽ(´ー`)ノ 検証はしてません。ごめんなさいごめんなさい。 優先度A、B、C、不明、非推奨に分けてみました。どうぞつっこんでください。 長いよ、今回は。 優先度A. 頻度も高いし使えそう - 6つ 01. static にできるメソッドは static として宣言しよう。(4倍速い) 正しくは、static なメソッドには、OOP のルールに従ってちゃんと static 宣言をつけよう! ってとこでしょうか。来そうでないものを無理に static にしちゃえって話ではないはず。*1 × <?php public function

    PHPコード最適化Tipsのウソと本当(解説) - カタコト日記
  • PHPコード最適化高速化TIPSまとめ | Webエンジニアのメモ

    TweetPocket PHPコード最適化高速化TIPSまとめPHP最適化 ベストプラクティス! 参考url: http://d.hatena.ne.jp/koto2/20080518/1211070116 01. static にできるメソッドは static として宣言しよう。(4倍速い) 02. echo の方が print より速い。 03. echo ‘文’,’字’; (カンマ区切り)の方が、’文’.’字’ (ドット連結)より速い。 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。 05. 大きい配列のような変数は unset() してメモリを解放しよう。 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。 07. require_once はハイコストなのです。 08. include や require

  • Hip-Hop PHP for Centos - Browse /CentOS 5 64bit at SourceForge.net

    akiyan
    akiyan 2010/05/21
    CentOSならHipHopPHPがrpmで導入できる。
  • Gree Fast Processor: PHPを3倍(くらい)速く | GREE Engineering

    ごあいさつエントリだけというのもなんなので、引き続きfujimotoです。実質上1つめのような気がするこのエントリでは、PHPが3倍くらい(少なくとも2倍くらいは...)速くなるGree Fast Processorというのを先月作ってみたのでご紹介です。 すぐわかるまとめ Gree Fast Processorというのを使ってみると、シンプルなsymfonyのプロジェクト(xav.ccで試しました)でも2倍弱、結構複雑なアプリケーションだと7倍くらい速くなったりします。いくつかの制約がありますが、パフォーマンスに飢えているかたはお試しください。 こちらはなんかすごい速くなっている感じのグラフ(一番上が速くなった版のRequests per Second、赤が通常版のRequests per Second): これはさすがにbest caseすぎる気がしますが、普通にやっても2倍弱くらいは

    Gree Fast Processor: PHPを3倍(くらい)速く | GREE Engineering
    akiyan
    akiyan 2010/05/21
    staticやglobalの注意点、headerの制約があるから単純にはいかないけど、それさえクリアできればかなりよさそう。
  • PHP コード最適化 Best Practices 63+ - カタコト日記

    みたいなタイトルの記事を Digg 経由で発見。チートシート代わりにと思い超訳。*1 A Software Architect PHP 最適化 ベストプラクティス! 01. static にできるメソッドは static として宣言しよう。(4倍速い) 02. echo の方が print より速い。 03. echo '文','字'; (カンマ区切り)の方が、'文'.'字' (ドット連結)より速い。 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。 05. 大きい配列のような変数は unset() してメモリを解放しよう。 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。 07. require_once はハイコストなのです。 08. include や require でファイルはフルパスで指定しよう。 09

    PHP コード最適化 Best Practices 63+ - カタコト日記
  • アシアルブログ

    2018-12-21 経済産業省『未来の教室』実証事業の一環として宮崎県立日南振徳高等学校で『農業IoTシステム自作』講座を開催しました MonacaEducation担当の岡です。経済産業省『未来の教室』実証事業の一環として宮崎県立日南振徳高等学校の生徒達とビニールハウスなどの温度湿度をクラウドに記録、スマートフォンやタブレットなどのモバイル端末からグラフとして情報を確認できるようなシ… 経済産業省『未来の教室』実証事業の一環として宮崎県立日南振徳高等学校で『農業IoTシステム自作』講座を開催しました 2018-12-14 IT健保(関東ITソフトウェア健康保険)のお得な活用方法について調べてみた はじめまして、諸井です。 マーケティングや営業のフロント・バックオフィス全般を担当しています。 入社して3年弱、嬉しかったことはいくつかあるのですが、そのひとつは関東ITソフトウェア健康保険

    akiyan
    akiyan 2007/06/06
    ほうほう!
  • eAccelerator/APC/xcacheのパフォーマンス比較再び - Do You PHP はてブロ

    先日比較してみましたが、使っていたPHPがdebug buildだったので、non debug buildで改めてやってみました。ついでに、ZendOptimizer 3.2.6と組み合わせた場合も計測してみました。 で、結果ですが、総実行時間(Total)だけ掲載しています。eAccelerator、Xcacheはzend_extensionとしてもロードできるので、zend_extensionと通常のextentionの場合の比較もしています。 Total none(ZendOpt) 106% ea(opt=0, zend_extension) 104% ea(opt=0, extension) 115% ea(opt=0, zend_ext, ZendOpt) 117% ea(opt=0, ext, ZendOpt) 102% ea(opt=1, zend_extension) 94

  • Ubuntu、Symfony、Lighttpdを使ってスケールするWeb 2.0サイトを構築する - PHPプロ!ニュース

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • AngelicWing Diary - [php] さようならeAccelerator

    Oct 28,2006 (Sat) 20:22 - [php] さようならeAccelerator 珍しくPHPな話題続き。 PHPは基的に毎回コンパイルして中間コードを生成し、実行している。 当然、毎回そんなことしていれば実行コストが上がるわけで 「じゃあ、中間コードをディスクやメモリにキャッシュすればいいんじゃね?」 という考えのもと、結構昔からボクがWEB+DB PRESSに記事を書いたmmcacheとか 今ではPECLに入ってるAPCとか、 開発が止まってしまったmmcacheを引き継いだeAcceleratorとか、いくつかの解決方法(とはいっても、やってることはほとんど同じだけど)が生まれた。で、自分は雑誌に書いたってこともあり比較的安定していたeAcceleratorを使っていたんだけど PHP5になってからの体側の変更の多さなのか、symfonyを使ってるとたまに問題

    akiyan
    akiyan 2006/11/03
    これすごいいいんじゃない。
  • ウノウラボ Unoh Labs: PHPのちょっとしたコツ

    Keitaです。 個人的には、Pythonの思想を取り入れた JavaScript 1.7 がとても気になっているのですが、それは明日の Keita(個々一番さん)が説明してくれると思うので楽しみに待つことにしましょう☆ ウノウの社員は、スルー力も必要なようです。 さて、そんな世迷言はみなかったことにして、PHPの話題です。 PHPいいよ、PHP素敵だよ。 さて、今回は日ごろ気をつけているPHPのコーディングのコツをTIPS形式で書いていこうと思います。 しかし、はるか過去にいろいろな所で情報収集したので情報の出典を忘れてしまいました。 わかる限りはURLを記載していきますが、記載されてない所があったらすいません&コメントで補足いただけると助かります。 1. array_pushは遅い いくつかのBlogで語られてることですが、array_pushは、次のような書き方のほうが早いそう

    akiyan
    akiyan 2006/10/27
    関数よりも構文。なるほど。※countは毎回数えてはいないらしい >> http://d.hatena.ne.jp/odz/20061026/1161927585
  • サービス終了のお知らせ

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

    akiyan
    akiyan 2006/07/27
    興味深い。
  • この先生きのこるには

    一時期セッションまわりで不具合が出たのでdisableにしてそのままほったらかしになっていたeAcceleratorを久しぶりにインストールしてみた。 最初に公式ページからRelease-0.9.5-beta2をインストールしようとしたんだけど、makeの所でempty_stringがどうこう言われて失敗するので、http://snapshots.eaccelerator.net/でeaccelerator-svn226.tar.gzを拾ってきて、インストールした。 インストール手順は export PHP_PREFIX="/usr/local/php-5.1.4" $PHP_PREFIX/bin/phpize ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config make

    この先生きのこるには
    akiyan
    akiyan 2006/07/06
    メモ。
  • 2006-02-16 - while(denpa) 仮設営。

    このページでは一日の定義が04:00-28:00となっております。 例えば、5/10 02:00 と表示されている場合、 5/10 26:00と読み変えてください。(世間的には5/11 02:00なんですが。)

    akiyan
    akiyan 2006/02/21
    なるほど。PHP5ではどうか。
  • 1