php性能分析工具,php性能分析
php性能分析工具,php性能分析
一、前言
有用的东西还是记录下来吧,也方便以后的查询;这次记录一下xhprof的安装使用;
xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,
还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。
二、安装
<span>1. wget http:<span>//</span><span>pecl.php.net/get/xhprof-0.9.3.tgz </span> 2. tar zxf xhprof-0.9.3.<span>tgz </span>3. cd xhprof-0.9.3/<span>extension </span>4. /usr/bin/<span>phpize (php版本安装后生成的phpize文件,可根据phpinfo查看,所以php版本不同,生成的phpize也不同,此步骤主要生成configure文件) </span>5. ./configure –with-php-config=/usr/bin/php-<span>config (php</span>-<span>config的路径,也是php安装后生成的文件) </span>6.<span> make </span>7.<span> sudo make install (会自动将生成的扩展文件拷贝到扩展目录中</span>/usr/lib64/php/<span>modules) 当然具体的php文件的目录,每个人不尽相同,可根据phpinfo查询</span></span>
三、php.ini配置
<span><span>1</span> <span>根据phpinfo找到 extension_dir的目录 </span><span>2</span> (/etc/php.d/xhprof.<span>ini) </span><span>3</span> <span>4</span> <span>添加一下内容: </span><span>5</span> <span>6</span> extension=xhprof.<span>so </span><span>7</span> xhprof.output_dir=/tmp/xhprof <span>//</span><span>xhprof的分析日志</span></span>
四、重启服务
<span><span>1</span> sudo /etc/init.d/<span>http restart </span><span>2</span> <span>3</span> 查看phpinfo是否安装成功</span>
五、使用方法
<span><span> 1</span> <span>开头: </span><span> 2</span> xhprof_enable(); <span>//</span><span>开启监测 </span><span> 3</span> <span>//xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不记录内置的函数 </span><span> 4</span> <span>//xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 同时分析CPU和Mem的开销 </span><span> 5</span> <span> 6</span> <span>//要测试的代码</span> <span> 7</span> ... <span> 8</span> ... <span> 9</span> ... <span>10</span> <span>11</span> <span>结尾: </span><span>12</span> <span>$xhprof_data</span> = xhprof_disable(); <span>//</span><span>停止监测,返回运行数据</span> <span>13</span> <span>$xhprof_root</span> = '/(xhprof的虚拟主机目录)/'<span>; </span><span>14</span> <span>//</span><span>引入当初安装到xhprof虚拟主机目录中的文件</span> <span>15</span> <span>include_once</span> <span>$xhprof_root</span>."xhprof_lib/utils/xhprof_lib.php"<span>; </span><span>16</span> <span>include_once</span> <span>$xhprof_root</span>."xhprof_lib/utils/xhprof_runs.php"<span>; </span><span>17</span> <span>$xhprof_runs</span> = <span>new</span><span> XHProfRuns_Default(); </span><span>18</span> <span>$run_id</span> = <span>$xhprof_runs</span>->save_run(<span>$xhprof_data</span>, "xhprof"<span>); </span><span>19</span> <span>echo</span> '<a href="http://(xhprof的虚拟主机域名)/xhprof_html/index.php?run='.<span>$run_id</span>.'&source=xhprof" target="_blank">xhprof统计</a>'<span>; </span></span>
上边的代码使用了,给xhprof设置虚拟主机的方法。
把源码包中的 xhprof_html 和 xhprof_lib 文件夹拷贝到自己建立的虚拟目录中
cp -r xhprof_html xhprof_lib /xxx/xhprof/ (此处目的是建立数据分析目录,可将此目录配置成虚拟主机访问)
运行后,统计点击返回的 xhprof统计 链接,即可。
六、注意问题以及名词解释
在显示的统计页面中,点[View Full Callgraph]图形化显示(最大的性能问题会用红色标出,其次是黄色);
点击后,可能提示错误消息,执行以下命令即可
<span><span>1</span> yum install -<span>y graphviz </span><span>2</span> yum install graphviz-gd</span>
名词解释
<span><span> 1</span> <span>Function</span><span> Name 函数名 </span><span> 2</span> <span> Calls 调用次数 </span><span> 3</span> Calls%<span> 调用百分比 </span><span> 4</span> Incl. Wall <span>Time</span><span> (microsec) 调用的包括子函数所有花费时间 以微秒算(一百万分之一秒) </span><span> 5</span> IWall%<span> 调用的包括子函数所有花费时间的百分比 </span><span> 6</span> Excl. Wall <span>Time</span> (microsec) 函数执行本身花费的时间,不包括子树执行时间,<span>以微秒算(一百万分之一秒) </span><span> 7</span> EWall%<span> 函数执行本身花费的时间的百分比,不包括子树执行时间 </span><span> 8</span> Incl. CPU(microsecs) 调用的包括子函数所有花费的cpu时间。减Incl.<span> Wall Time即为等待cpu的时间 </span><span> 9</span> 减Excl.<span> Wall Time即为等待cpu的时间 </span><span>10</span> ICpu% Incl.<span> CPU(microsecs)的百分比 </span><span>11</span> Excl. CPU(microsec) 函数执行本身花费的cpu时间,不包括子树执行时间,<span>以微秒算(一百万分之一秒)。 </span><span>12</span> ECPU% Excl.<span> CPU(microsec)的百分比 </span><span>13</span> Incl.<span>MemUse(bytes) 包括子函数执行使用的内存。 </span><span>14</span> IMemUse% Incl.<span>MemUse(bytes)的百分比 </span><span>15</span> Excl.MemUse(bytes) 函数执行本身内存,<span>以字节算 </span><span>16</span> EMemUse% Excl.<span>MemUse(bytes)的百分比 </span><span>17</span> Incl.PeakMemUse(bytes) Incl.<span>MemUse的峰值 </span><span>18</span> IPeakMemUse% Incl.<span>PeakMemUse(bytes) 的峰值百分比 </span><span>19</span> Excl.PeakMemUse(bytes) Excl.<span>MemUse的峰值 </span><span>20</span> EPeakMemUse% EMemUse% 峰值百分比</span>
七、参考资料
<span>1</span> <span> http://blog.csdn.net/maitiandaozi/article/details/8896293 </span><span>2</span> <span> http://www.cnblogs.com/wangtao_20/archive/2011/03/16/1986508.html </span><span>3</span> <span> http://www.cnblogs.com/wangtao_20/archive/2013/09/13/3320497.html </span><span>4</span> <span>5</span> <span> http://avnpc.com/pages/profiler-php-performance-online-by-xhprof </span><span>6</span> <span> http://www.ituring.com.cn/article/132392 </span><span>7</span> http://www.ituring.com.cn/article/133062?utm_source=tuicool

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Kirin 8000 と Snapdragon プロセッサの性能分析: 長所と短所の詳細な比較 スマートフォンの普及とその高機能化に伴い、携帯電話の中核コンポーネントであるプロセッサにも大きな注目が集まっています。現在市場で最も一般的で優れたプロセッサー ブランドの 1 つは、Huawei 社の Kirin シリーズと Qualcomm の Snapdragon シリーズです。この記事では、Kirin 8000 プロセッサと Snapdragon プロセッサのパフォーマンス分析に焦点を当て、さまざまな側面における 2 つのプロセッサの長所と短所の比較を検討します。まず、Kirin 8000 プロセッサーを見てみましょう。ファーウェイの最新フラッグシッププロセッサー、Kirin 8000

PHP 拡張機能 Xdebug を使用して強力なデバッグとパフォーマンス分析を行う方法 はじめに: PHP アプリケーションの開発プロセスにおいて、デバッグとパフォーマンス分析は不可欠なリンクです。 Xdebug は、PHP 開発者がよく使用する強力なデバッグ ツールで、ブレークポイント デバッグ、変数追跡、パフォーマンス分析などの一連の高度な機能を提供します。この記事では、Xdebug を使用して強力なデバッグとパフォーマンス分析を行う方法と、いくつかの実用的なヒントと注意事項を紹介します。 1. Xdebug をインストールし、Xdebu の使用を開始します。

パフォーマンスの比較: Go 言語と C 言語の速度と効率 コンピューター プログラミングの分野では、パフォーマンスは開発者が常に注意を払う重要な指標です。プログラミング言語を選択するとき、開発者は通常、その速度と効率に重点を置きます。 Go 言語と C 言語は、2 つの人気のあるプログラミング言語として、システムレベルのプログラミングや高性能アプリケーションに広く使用されています。この記事では、速度と効率の観点から Go 言語と C 言語のパフォーマンスを比較し、具体的なコード例を通じてそれらの違いを示します。まずはGo言語とC言語の概要を見ていきましょう。 Go言語はGによって開発されました

JavaQueue のパフォーマンス分析と最適化戦略 キューの概要: キュー (キュー) は Java で一般的に使用されるデータ構造の 1 つであり、さまざまなシナリオで広く使用されています。この記事では、JavaQueue キューのパフォーマンスの問題について、パフォーマンス分析と最適化戦略の 2 つの側面から説明し、具体的なコード例を示します。はじめに キューは、プロデューサー/コンシューマー モード、スレッド プール タスク キュー、およびその他のシナリオの実装に使用できる先入れ先出し (FIFO) データ構造です。 Java は、Arr などのさまざまなキュー実装を提供します。

C++ コードのパフォーマンス分析を実行するにはどうすればよいですか? C++ プログラムを開発する場合、パフォーマンスは重要な考慮事項です。コードのパフォーマンスを最適化すると、プログラムの速度と効率が向上します。ただし、コードを最適化するには、まずパフォーマンスのボトルネックがどこにあるのかを理解する必要があります。パフォーマンスのボトルネックを見つけるには、まずコードのパフォーマンス分析を実行する必要があります。この記事では、開発者がコード内のパフォーマンスのボトルネックを見つけて最適化するのに役立つ、一般的に使用される C++ コードのパフォーマンス分析ツールとテクニックをいくつか紹介します。プロファイリング ツール プロファイリング ツールを使用する

Laravel 開発: LaravelTelescope をパフォーマンス分析とモニタリングに使用する方法? Laravel は、そのシンプルさ、使いやすさ、柔軟性により開発者に愛されている優れた PHP フレームワークです。 Laravel アプリケーションのパフォーマンスをより適切に監視および分析するために、Laravel チームは Telescope と呼ばれる強力なツールを開発しました。この記事では、Telescopeの基本的な使い方と機能を紹介します。望遠鏡を設置する

C++ 開発者として、パフォーマンスの最適化は避けられないタスクの 1 つです。コードの実行効率と応答速度を向上させるには、コードのデバッグと最適化をより適切に行うために、C++ コードのパフォーマンス分析方法を理解する必要があります。この記事では、一般的に使用される C++ コードのパフォーマンス分析ツールとテクニックをいくつか紹介します。コンパイル オプション C++ コンパイラには、コードの実行効率を最適化するために使用できるいくつかのコンパイル オプションが用意されています。その中で、最も一般的に使用されるオプションは -O で、これはコンパイラーにコードを最適化するように指示します。通常は、

Java パフォーマンス分析ツールを使用して、Java 関数のパフォーマンスを分析および最適化できます。パフォーマンス分析ツールを選択します: JVisualVM、VisualVM、JavaFlightRecorder (JFR) など。パフォーマンス分析ツールを構成します。サンプリング レートを設定し、イベントを有効にします。関数を実行してデータを収集する: プロファイリング ツールを有効にした後、関数を実行します。パフォーマンス データを分析する: CPU 使用率、メモリ使用率、実行時間、ホット スポットなどのボトルネック指標を特定します。関数の最適化: 最適化アルゴリズムを使用し、コードをリファクタリングし、キャッシュやその他のテクノロジーを使用して効率を向上します。
