PHP に効率性を求める - コードの実行速度を高速化します
PHP に効率性を求める - コードの実行を高速化します
スクリプト言語はすべて非効率的であり、PHP も例外ではありません。実際には、コードの各行で効率が節約されるか、無駄になります。したがって、ここではコードの実行速度を速くするための基本的な効率の常識を説明します。
(注: PHP コードを最適化するための提案の多くのバージョンを見てきましたが、体系的でも包括的でもないと感じました。ここでは、注意を払う必要があるもののほんの一部を紹介します。)
1. 文字列の問題
1. 文字の結合は配列の内部分解よりも大きく、sprintf よりも高速です
次のコードを実行できます:
<?php /** * Simple function to replicate PHP 5 behaviour */ function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $start=microtime_float(); // standard string append $str = ''; for ($i = 300000; $i > 0; $i--) { $str .= 'String concatenation. '; } $end = microtime_float(); echo("<br/> t i m e :" . round( $end - $start ,2) ."<br/>"); $start=microtime_float(); // array join $str = ''; $sArr = array(); for ($i = 300000; $i > 0; $i--) { $sArr[] = 'String concatenation. '; } $str = implode('',$sArr); $end = microtime_float(); echo("<br/> t i m e :" . round( $end - $start ,2) ."<br/>"); ?>
?
私のマシンの出力は次のとおりです:
時間:0.14
時間:0.25
2. 文字列の交換
同時に、接続できない場合にのみ交換を検討してください。置き換え方法については、以下の優先順位に従ってコードを記述することを検討してください。
sprintf は str_replace より高速です preg_replace は strstr より高速です
3. 文字列検索、文字列比較:
誰かのオンラインテストの結果は次のとおりです:
結果
ereg .956
preg_match .050
strstr .222
strpos .033
可視:
strpos は preg_match よりも速く、strstr よりも速く ereg よりも速い
誰かstrstrが速いと言われていますが、forループではstrstrよりもpreg_match_allの方が確実に速いです
3. 文字列出力:
echo は print よりも高速です。これは言うまでもありません。 しかし、できるだけ高速に echo を使用するとどうなるでしょうか?
$foo = 'John SMITH';?
echo "こんにちは、$foo 。私のブログにようこそ。";? 🎜>echo 'こんにちは ' . $foo ' ようこそ私のブログへ。';?
エコー 'こんにちは ' ' ' ようこそ私のブログへ ';
わかると思いますが、最後のものが一番早いです。
2. 配列の問題:
foreach は for より高速であることは誰もが知っています。 それだけではありません。本当にforを使うならこう書くのがベストです
}
前に述べたように、文字列のスプライシングに使用される配列は 2 つのサイクルを実行する必要があるため遅くなります。ただし、多くの操作は配列を使用して完了できれば高速になります。
例: array_mar('trim',$array) は、for や foreach を記述するよりも明らかに高速です。
in_array 関数の効率の問題。 in_array が頻繁に使用され、配列が大きい場合は、配列をソートしてから fast_in_array
を使用することをお勧めします。
この関数は、バイナリ検索を使用するため、直接の置換として使用できるはずです。
?
<?php function fast_in_array($elem, $array) { $top = count($array) -1; $bot = 0; while($top >= $bot) { $p = floor(($top + $bot) / 2); if ($array[$p] < $elem) $bot = $p + 1; elseif ($array[$p] > $elem) $top = $p - 1; else return TRUE; } return FALSE; } ?>
の代わりに
?? $class = $class == '奇数' : '偶数'私たちは
を持っています
?? $flip = array('even' => 'odd', 'odd' => 'even');?? $class = $flip[$class];
? ?3. 機能の問題
正しい名前の関数を使用し、関数のエイリアスを使用しないでください。 PHP のエイリアスは、PHP のプロモーション (たとえば、split と join は VB の関数、implode とexplode は名前修正関数)、または古いバージョンとの互換性のために使用されます。一般に、名前の修正ほど速度は速くありません。
??
is_integer は is_int より高速です
floatval は doubleval より高速です
implode は join より高速です
ini_set は ini_alter より高速です
もちろん、例外はほとんどありません。たとえば、fputs は fwrite よりも高速ですが、無視してもいいと思います。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
