1. シャットダウン関数を登録する register_shutdown_function() という関数を使用すると、スクリプト全体がシャットダウンされる前にコードを実行できます。次の例を見てみましょう:
// capture the start time$start_time = microtime(true);<br /><br />// do some stuff<br />// ...<br /><br />// display how long the script took<br />echo "execution took: ". (microtime(true) - $start_time)." seconds.";
上記の例は、特定の関数の実行時間を計算するためにのみ使用されます。
その後、関数の途中で exit() 関数を呼び出した場合、最終的なコードは実行されません。また、ブラウザでスクリプトが終了した場合 (ユーザーが停止ボタンを押した場合)、スクリプトは実行できません。 register_shutdown_function() を使用すると、スクリプトが停止した後でもプログラムが実行されます。
2. Glob() を使用してファイルを検索します。多くの PHP 関数には比較的長い関数名が付いていますが、glob() を見ただけでは、この関数が何なのかわからないかもしれません。すでによく知っている場合を除き、使用されます。
この関数は、ファイルの検索に使用できる scandir() と考えることができます。
<p>// 取当前目录下的所有的PHP文件和TXT文件</p>$files = glob('*.{php,txt}', GLOB_BRACE);<br />print_r($files);<br />/* 输出:<br />Array<br />( <br />[0] => phptest.php <br />[1] => pi.php <br />[2] => post_output.php <br />[3] => test.php <br />[4] => log.txt <br />[5] => test.txt<br />)<br /><p>*/
3. メモリ使用量情報 プログラムのメモリ使用量を観察すると、コードをより適切に最適化できます。
PHP には、ガベージ コレクション メカニズムと非常に複雑なメモリ管理メカニズムがあります。スクリプトが使用しているメモリの量を確認できます。現在のメモリ使用量を知るには、memory_get_usage() 関数を使用できます。ピークのメモリ使用量を知りたい場合は、memory_get_peak_usage() 関数を呼び出すことができます。
<p>echo "Initial: ".memory_get_usage()." bytes n";</p>/* 输出<br />Initial: 361400 bytes<br />*/<br /><br />// 使用内存<br />for ($i = 0; $i < 100000; $i++) { <br /> $array []= md5($i);<br />}<br /><br />// 删除一半的内存<br />for ($i = 0; $i < 100000; $i++) { <br /> unset($array[$i]);<br />}<br /> <br />echo "Final: ".memory_get_usage()." bytes n";<br />/* prints<br />Final: 885912 bytes<br />*/<br /><br />echo "Peak: ".memory_get_peak_usage()." bytes n";<br />/* 输出峰值<br />Peak: 13687072 bytes<br /><p>*/
4.getrusage() 関数を使用した CPU 使用率情報により、CPU 使用率を知ることができます。
この機能は Windows では利用できないことに注意してください。
ru_oublock: ブロック出力操作
ru_inblock: ブロック入力操作ru_stime.tv_sec: システム カーネル時間? (秒) 5. システム定数 PHP は、現在の行番号 (__LINE__)、ファイル (__FILE__)、ディレクトリ (__DIR__)、関数名 (__FUNCTION__) を取得できる非常に便利なシステム定数を提供します。 , クラス名(__CLASS__)、メソッド名(__METHOD__)、名前空間(__NAMESPACE__)はC言語とよく似ています。
これらは主にデバッグに使用されると考えられますが、必ずしもそうではありません。たとえば、他のファイルをインクルードする場合は ?__FILE__ を使用できます (もちろん、PHP 5.3 以降では __DIR__ を使用することもできます)
6. 一意の ID を生成する。実際、PHP には、これを行うために特別に使用される md5() という関数があります。 🎜>
生成された ID の最初の数桁が同じであることに気づくかもしれません。これは、ジェネレータがシステム時間に依存しているためです。これは、簡単に実行できるためです。 IDを並べ替えます。 MD5 ではこれができません。<p>echo uniqid();</p>/* 输出<br />4bd67c947233e<br />*/<br />echo uniqid();<br />/* 输出<br />4bd67c9472340<br /><p>*/7. シリアル化 より複雑なデータ構造をデータベースまたはファイルに保存しますか?独自のアルゴリズムを作成する必要はありません。 PHP はすでにそれを行っています:も圧縮されます。 PHP は gzcompress() および gzuncompress() 関数を提供します: ほぼ 50% の圧縮率。
<p>$string =</p>"Lorem ipsum dolor sit amet, consectetur<br />adipiscing elit. Nunc ut elit id mi ultricies<br />adipiscing. Nulla facilisi. Praesent pulvinar,<br />sapien vel feugiat vestibulum, nulla dui pretium orci,<br />non ultricies elit lacus quis ante. Lorem ipsum dolor<br />sit amet, consectetur adipiscing elit. Aliquam<br />pretium ullamcorper urna quis iaculis. Etiam ac massa<br />sed turpis tempor luctus. Curabitur sed nibh eu elit<br />mollis congue. Praesent ipsum diam, consectetur vitae<br />ornare a, aliquam a nunc. In id magna pellentesque<br />tellus posuere adipiscing. Sed non mi metus, at lacinia<br />augue. Sed magna nisi, ornare in mollis in, mollis<br />sed nunc. Etiam at justo in leo congue mollis.<br />Nullam in neque eget metus hendrerit scelerisque<br />eu non enim. Ut malesuada lacus eu nulla bibendum<br />id euismod urna sodales. ";<br /><br />$compressed = gzcompress($string);<br /><br />echo "Original size: ". strlen($string)."n";<br />/* 输出原始大小<br />Original size: 800<br />*/<br /><br />echo "Compressed size: ". strlen($compressed)."n";<br />/* 输出压缩后的大小<br />Compressed size: 418<br />*/<br /><br />// 解压缩<br /><p>$original = gzuncompress($compressed);同時に、?gzencode() 関数と gzdecode() 関数を使用して圧縮することもできますが、使用する圧縮アルゴリズムは異なります。