ホームページ > バックエンド開発 > PHPチュートリアル > PHP を作成する非常に効率的な方法

PHP を作成する非常に効率的な方法

WBOY
リリース: 2016-07-29 08:57:55
オリジナル
1052 人が閲覧しました

0. 文字列を含めるには二重引用符の代わりに一重引用符を使用すると高速になります。 PHP は二重引用符で囲まれた文字列内の変数を検索しますが、一重引用符は検索しません。 注: これを実行できるのは echo だけです。これは複数の文字列をパラメータとして受け取ることができる「関数」です (注釈: PHP マニュアル echo は実際の関数ではなく言語構造であるため、関数は二重引用符で囲まれています)。
1. クラスメソッドを静的に定義できる場合は、クラスメソッドを静的に定義してみると、速度が 4 倍近く向上します。
2.row['i] drow[id] 7 回 。 3. Echo は print より高速で、echo
str1 など、文字列連結の代わりに echo の複数のパラメータ (翻訳: ピリオドの代わりにカンマを使用することを指します) を使用します。 str2。 4. ループの実行には Foreach を使用することをお勧めします。for ループを実行するたびに最大値を計算しないでください。 5. 未使用の変数、特に大きな配列の登録を解除して、メモリを解放します。 6. get、__set、__autoload の使用は避けてください。冒頭の関数は、キッチンで特定の条件下で使用される関数です。一般に、次のような魔法の関数があります __construct()、__destruct()、__get()、__set()、__unset()、__call()、__callStatic()、__sleep()、__wakeup()、__toString()、__set_state()、__clone()、__autoload( ) 7. require_once() は高価です。 require/include を回避するために一般的に使用される方法 8. ファイルをインクルードする場合は、絶対パスを使用するようにしてください。これにより、include_path 内のファイルを検索する PHP の速度が低下し、オペレーティング システムのパスの解析に必要な時間が短縮されるためです。
9. スクリプトの実行が開始される瞬間 (注釈: サーバーがクライアント要求を受信する) を知りたい場合は、





SERを使用します。 VER['REQUEST] いいですねtime()10文字番号 代理代理 それではテーブル スタイル 終了と同じゴンCan 11trr eplac 🎘regr #速い 文字番号 /効果的 str replace カウント412などフルーツ oneone 単語 記号 文字列 交換交換 手紙 受け取る受け取る カウント グループ または 言葉お守り 高麗人参カウントのために作ります、そして 高麗人参カウント長い いや長い あれ できます検討してください えー 書く 段落 置換置き換える世代コードmake get 毎回 パスパス 高麗人参カウントですピース言葉 お守り 、そして ではありませんだけです書く OK 世代コード 受信 受信 数える グループを作るCheck お問い合わせそしての交換の交換 高麗人参 13作るを使う選択選択 ポイント支店言語 世代 交換用ストリップピース言語 , 選択選択ポイント 支店言語(それはwit chcas e)良い 作る 使う たくさんのそれぞれife lseif スラング14ではなくを使用してください @, @画面を使用してください間違っています間違っています のニュース Doメソッド よくある低い効果 非常に その低い効果的15ヒットオープン apach emoddef late モデルブロック とつながりましたネットページ を閲覧 表示速い16番号データ ピックアップいつ作る で終了いつオフにするべき ドロップ いいえからを使用してください を服用してください。 17間違っています間違っています ニュースを排除します世代価格アン 高い18広場配達増加 パート変更 数量速度 が一番です速いいくつか小屋 手紙 カウントチューン使用する 部門変更金額 速度 フェーズいつ19配達されました増加しました oneone 満員変更 金額宛先 パスよりも1つ それぞれ パート変更金額S卑劣な2 20配達増加 oneone そうですゾウに属しています セックス( のように: this->prop++)は、ローカル変数をインクリメントするよりも3倍遅くなります。 21. 未定義のローカル変数をインクリメントするのは、事前定義されたローカル変数をインクリメントするよりも 9 ~ 10 倍遅くなります。 22. 関数内で呼び出さずにローカル変数を定義するだけでも、(ローカル変数をインクリメントするのと同じ程度に) 速度が低下します。 PHP はおそらく、グローバル変数が存在するかどうかを確認します。 23. 10 個のメソッドを (メソッドのテスト前とテスト後の両方で) 追加しましたが、パフォーマンスに変化はなかったので、メソッド呼び出しはクラスで定義されたメソッドの数とは無関係であるように見えます。 24. 派生クラスのメソッドは、基本クラスで定義された同じメソッドよりも高速に実行されます。
25. 1 つのパラメーターを指定して空の関数を呼び出すには、7 ~ 8 回のローカル変数のインクリメント操作を実行するのと同じ時間がかかります。同様のメソッド呼び出しには、15 近くのローカル変数の増分が必要です。
26. Apache は、PHP スクリプトを解析するのに、静的な HTML ページを解析するよりも 2 ~ 10 倍遅くなります。使用する静的な HTML ページを増やし、スクリプトを減らすようにしてください。
27. スクリプトをキャッシュできない限り、呼び出されるたびに再コンパイルされます。 PHP キャッシュ メカニズムを導入すると、通常、コンパイルのオーバーヘッドが排除され、パフォーマンスが 25% ~ 100% 向上します。
28. できるだけキャッシュするようにしてください。memcached を使用できます。 Memcached は、動的 Web アプリケーションを高速化し、データベースの負荷を軽減するために使用できる高性能メモリ オブジェクト キャッシュ システムです。 OP コードのキャッシュは、リクエストごとにスクリプトを再コンパイルする必要がないように便利です。
29. 文字列を操作し、その長さが特定の要件を満たしているかどうかを確認する必要がある場合は、当然 strlen() 関数を使用します。この関数は計算を行わず、zval 構造体 (PHP 変数の格納に使用される C の組み込みデータ構造体) に格納されている既知の文字列長を返すだけなので、非常に高速に実行されます。ただし、strlen() は関数であるため、関数呼び出しは小文字などの多くの手順を経るため、多少遅くなります (注釈: 小文字の関数名を指します。PHP は関数名の大文字と小文字を区別しません)。 )、ハッシュ検索、呼び出された関数と一緒に実行されます。場合によっては、 isset() トリックを使用してコードの実行を高速化できます。
(下記例)
if (strlen(foo)<5)ec 」 Fooistooshort( ダウンヌードル」 sスキル Qiaodoよりより )if( !isset(foo{5})) { echo “Fooは短すぎます” } isset() の呼び出しは、strlen() よりも高速です。これは、後者とは異なり、言語構造としての isset() は、その実行に関数の検索や小文字が必要ないことを意味するためです。つまり、実際には、最上位コードで文字列の長さをチェックするオーバーヘッドはそれほどかかりません。
34. 実行変数

i が渡されたとき を増やす または 配達 マイナスいつ, i++は++よりも優れていますさらにこれのようなの違い 違う PHPスペシャルがあります いいえ適していますを使用してください その 言語言語 だから お願いします修理変更あなた CまたはJ ava世代コードand とはを指します希望 それ私たち できる それは 変更速いいいえを使用してくださいの。 ++i は 3 つの命令 (オペコード) しか必要としないため高速ですが、$i++ は 4 つの命令を必要とします。ポストインクリメントでは、実際には、後でインクリメントされる一時変数が作成されます。プレフィックスの増分は、元の値に直接増加します。これは、Zend の PHP オプティマイザーによって行われるような、最適化の一種です。すべてのコマンド オプティマイザーが同じ最適化を行うわけではなく、コマンド オプティマイザーを備えていないインターネット サービス プロバイダー (ISP) やサーバーが多数存在するため、この最適化を念頭に置くことをお勧めします。 35. すべてがオブジェクト指向 (OOP) である必要はありません。オブジェクト指向は多くの場合高価で、各メソッドとオブジェクトの呼び出しは大量のメモリを消費します。 36. すべてのデータ構造を実装するためにクラスを使用する必要はありません。配列も便利です。 37. メソッドを細分化しすぎないでください。実際にどのコードを再利用するかを慎重に考えてください。 38. 必要に応じていつでもコードをメソッドに分割できます。 39. 多数の PHP 組み込み関数を使用してみます。 40. コード内に時間のかかる関数が多数ある場合は、それらを C 拡張機能として実装することを検討できます。 41. コードのプロファイリングを行います。チェッカーは、コードのどの部分にどれくらいの時間がかかっているかを示します。 Xdebug デバッガーには、コードの全体的な整合性を評価し、コード内のボトルネックを明らかにする検査ルーチンが含まれています。 42. mod_zip を Apache モジュールとして使用すると、データを瞬時に圧縮し、データ転送量を 80% 削減できます。
43. file、fopen、feof、fgets などの一連のメソッドの代わりに file_get_contents を使用できる場合は、より効率的である file_get_contents を使用するようにしてください。ただし、URL ファイルを開くときは、file_get_contents の PHP バージョンの問題に注意してください。 44. PHP のファイル操作効率は低くありませんが、ファイル操作はできるだけ少なくしてください。 45. Select SQL ステートメントを最適化し、挿入操作と更新操作をできるだけ少なくします (更新について批判されました
)。 46. 可能な限り PHP 内部関数を使用します (ただし、PHP に存在しない関数を見つけるために、カスタム関数を作成できたはずの時間を無駄にしました。これは経験の問題です!); 47. ループ内で変数、特に大きな変数を宣言しないでください: オブジェクト (これは PHP だけの問題ではないようですよね?)。 48. 多次元配列にはループやネストされた代入を使用しないようにしてください。 49. PHP の内部文字列操作関数を使用できる場合は、正規表現を使用しないでください。 50. foreach の方が効率的です。while や for ループの代わりに foreach を使用してみてください。 51. 文字列を引用するには二重引用符の代わりに一重引用符を使用します。 52. 「i=i+1 の代わりに i+=1 を使用します。これは C/C++ の習慣に従っており、より効率的です。」; 53. グローバル変数は使用後に unset() する必要があります。

元のアドレス: http://blog.csdn.net/power721/article/details/7376926

').addClass('pre-numbering') .hide (); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i
').text(i)); }; $numbering.fadeIn(1700); }); });

以上、PHPの効率的な書き方を内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート