PHP カンファレンス 2021 10月2日(土) 15:40〜 Track2 でお話ししたスライドです https://fortee.jp/phpcon-2021/proposal/a795874d-9f0d-48a7-924f-a386bd1cea02 少しずつ加筆修正するかもしれません …
だいぶ前に xhgui 使ったときは、アプリ側にも xhgui のソースを入れて xhgui/external/header.php みたいなファイルを auto_prepend_file とかに設定していたと思うのですが、最新版だとだいぶ変わっていました。 xhprof とりあえず tideways_xhprof 拡張 が必要です。Docker なら次のような感じでインストールできます。 RUN mkdir -p /tmp/tideways_xhprof &&\ curl -fsSL https://github.com/tideways/php-xhprof-extension/archive/v5.0.2.tar.gz |\ tar xzf - --strip-components=1 -C /tmp/tideways_xhprof &&\ docker-php-ext-instal
速いは正義、アプリケーションは速くあるべきです 話者はPHPerKaigi2021にてパフォーマンスチューニングに関する登壇を行いました https://speakerdeck.com/seike460/php-web-application-performance-tuning 時間の関…
PHP 7.0のリリースから約5年が経過し、そろそろPHP 8.0のリリースも見えてきました。人によっては使い始めて5年目になるはずのPHP 7.xですが、いまだに新しい発見があったりして面白いですね。 本稿ではPHP 7.0から入った定数配列に関する性能改善について紹介します。 PHP 5時代は配列の組み立てコストが大きかった プログラミング上のテクニックとして、辞書データを連想配列としてプログラム中に記述し、これを必要に応じて使うというものがあります。たとえば次のコード例を見てみましょう。このような連想配列を持っておけば、プログラム中で国名コードをを扱う際に実在するかをチェックしたり、国名の日本語表記に変換したりといった処理ができるわけです。 <?php $country_name = [ 'jp' => '日本', 'us' => 'アメリカ合衆国', 'ru' => 'ロシア連邦'
PHP カンファレンス福岡 2019 にて、「PHP の関数実行とその計測」という題でお話させていただきました。 使ったスライドは slideshare に上げていますが、話の内容の方もテキストとしてネット上にあった方がよい部分もあるかな、と思い、登壇時の原稿とスライドで使った画像から雑に記事を用意してみました。自己紹介のように明らかに不要な部分は抜いています。元が原稿なため、やや話し言葉っぽい部分があります。 内容の誤り等にお気づきの際はお気軽にコメント / PR いただければ助かります。 PHP の関数実行とその計測 今回話す内容は以下です。 1 つは PHP の関数実行の仕組みについて もう1つはその性能計測について PHP で関数というのは、プログラムに行わせる一連の処理のまとまりです。 こんなコードのものですね。 まずはこのコードが処理系によってどう実行されているかの話からです。
正規表現を書く際、どのようなパターンにマッチさせるか、どこをキャプチャするかという視点で記述することはあっても、パフォーマンスを考えて記述するというのはある程度知っている人でなければ忘れがちな視点です。 このエントリでは、バックトラックをメインに正規表現がパフォーマンスに及ぼす挙動について見ていきます。 対象の正規表現エンジン ここでは、従来型 NFA を対象としています。具体的には、PHP の preg_ 関数で利用している PCRE や mb_ereg 関数が利用している鬼車です。Perl や Ruby、Python、Java、.NET でも従来型 NFA を採用しているので、似た挙動となるでしょう。 「従来型 NFA」や「バックトラック」などの用語については、「詳説 正規表現 第3版」のものを用いています。 バックトラックによるマッチ探査 正規表現エンジンでは、指定された文字列が、パ
Golangが一番パフォーマンスが良いかと予想していましたが、全く逆の結果になってしまいました。 Golangが遅い理由 遅い原因をいくつか考えて改善できないか試してみました。詳細は省きますが、以下の点については問題なさそうでした。 goroutineはリクエスト単位で起動している コネクションプールは有効になっている BeegoのORM特有の処理は主原因ではない(標準ライブラリのsql関数と大差なし) DB側のCPU使用率は100%になっているが、CPU使用率とメモリ使用量はPHP環境と同程度の負荷になっている ここまで確認して、プロファイラを使った方が良さそうに思えたので、いったんプロファイラで状況を確認するために、標準で提供されていて手軽に使えそうなpprofを使ってみました。topで確認すると次のような結果がでました。 (pprof) top 20 -cum 920ms of 15
ハイパフォーマンスを目指すにあたって誰もが知っておきたい基本的なところをまとめました。
こんにちわ!ランサーズの satoshi です。 今回は、クライアントサイド、サーバーサイド両方のモニタリングが出来る NewRelic をご紹介します。 サーバーのモニタリングツールだと、Munin 等が有名ですが、導入には手間がかかります。しかし、NewRelic なら、本当に5分で導入が完了します!しかも超簡単です。 まずは、ざっくりと機能の紹介をさせて頂きますので、導入方法 を知りたい方は、読み飛ばして下さい! サーバーサイドのモニタリング レスポンスタイム 上記のグラフのようにアプリケーションの処理、データベース処理、キャッシュエンジンを使っているならその処理(この場合はMemcached)それぞれに使われた時間が表示されます。 これが、各ページ毎に確認する事が出来き、ページでレスポンスが悪い場合、右下に トレース の結果が表示されます。 トレースでの内容(transaction
ウェブの複雑化、高機能化が加速するなか、ウェブアプリケーション実行基盤の高速化は極めて重要な課題になっている。 そんななか、米FacebookはPHP用の高速実行環境「HipHop Virtual Machine」(以下、hhvm)を発表した。今回は、この新しい仮想マシンについて紹介する。 HipHop VM開発に至る経緯 Facebookでは、爆発的なユーザー数の増加に対応するため、アプリケーション実行速度の高速化が急務とされていた。しかし、Facebookの成長はすでに既存のPHPの枠組みでは対処が追いつかないレベルにまでなっていた。問題は、これまでに蓄積されてきた膨大な量のPHPコードベースだった。PHPを捨てて他の言語に移行するためには、それらのコードをすべて書き直さなければならない。 そこでFacebookが選んだのは、アプリケーションのコードに手を加えるのではなく、PHPの実装
PECLに登録されているAPC(Alternative PHP Cache)は、PHPの中間コードのキャッシュや最適化を行う拡張モジュールです。APCは前に触ったことがあり、それがいつだったか調べてみたら、なんと2002年3月!使っていた環境は、PHP4.1.1+APC1.1.0。。。にもかかわらず、何だかGIGAZINEからリンクされているようで、リンク先としては結構恥ずかしいかも。。。 ということで、再度ざっとまとめることにしました。 PECL :: Package :: APC 使用した環境 まずは確認環境ですが、CentOS4.4+PHP5.2.0です。PHPは以下のようなconfigureオプションを付けてソースからbuildしています。 ●PHP5.2.0のconfigureオプション--with-apxs2=/usr/local/apache2/bin/apxs \ --pr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く