ホームページ >バックエンド開発 >PHPチュートリアル >Github の満足のいくマルチ PHP 神レベルのコードが苦情を引き起こす
Github の多数の PHP 神レベル コードが苦情を引き起こしている
一昨日、作業効率を 70% 向上させることができるコードが github の PHP セクションに突然出現し、周囲の多くのネチズンから苦情と嘲笑を引き起こしました。世界は「すごい!」「よくやった!」「PHPは世界一の言語だ!」普段は真面目で勤勉なプログラマがユーモアたっぷりに活躍し、Githubは歓喜の海となった。
まず、この神聖なコードを見てみましょう:
このコードが行うことは 1 つで、PHP のガベージ コレクターを無効にします。次にネチズンは、PHP を無効にしてガベージ コレクターを使用する効果をテストしました:
前: メモリ使用量: 163.66 MB (ピーク: 403.82 MB)、時間: 246.25 秒
後: メモリ使用量: 163.34 MB (ピーク: 350.36MB)、時間: 99.55 秒
特定の PHP プログラムの実行に必要な時間が 246.25 秒から 99.55 秒に短縮されました。変更前: メモリ使用量: 152.71MB (ピーク: 335.9MB)、時間: 195.99 秒
変更後: メモリ使用量: 164MB (ピーク: 308.02MB)、時間: 104.06 秒
一部の PHPプログラムの実行に必要な時間は 195.99 秒から 104.06 秒に短縮されました。……
一般に、ガベージ コレクターを無効にすると、PHP の動作効率が 70% 向上します。
PHP のガベージ コレクションは非常に信頼性が低いため、以前の設計の本来の目的は何だったのでしょうか?
C/C ではメモリの使用と解放は非常に面倒な作業であり、何かを省略するとリソースの無駄やメモリ リークが発生する可能性があります。 。したがって、PHP 設計時にこの問題を回避するために、不要なオブジェクトのメモリを自動的に解放するガベージ コレクターが導入されました。
PHP はリサイクル アルゴリズムを実行するときに余分な時間を消費することに注意してください。小規模なプロジェクトでは、この追加の消費は最小限ですが、大規模なプロジェクトを実行する場合、複数のリサイクル スレッドが同時に開始されるため、この消費はプログラムの実行時間が長くなることにより大きな影響を及ぼします。
PHP のガベージ コレクションを無効にすることは、プログラムの実行効率を向上させる最も単純かつ大雑把な方法です。これは、脚や足を怪我した場合、最も簡単な方法は切断することと同じです。
神レベルのコードが発表されるとすぐに、github 上のプログラマは大喜びしました。
最初に登場した Homm は、この処理方法に驚きを表しましたが、なぜそうなるのか理解できませんでした。私はこの方法で実行し、この処理方法は良くないと客観的にコメントしました:
すると、到着した笑顔の技術者がからかい始めました。コメント、PHP を入れましょう。カーネルは無効になっています。なぜこれを行ったのかは説明しません。:
PHP が世界初だと言っているだけですいくつかの国でバージョンがあり、いくつかのコードを使用するだけで効率が 70% 向上すると言われています。PHP は世界初の言語として十分に評価されています。
かわいいものもあります:PHP のガベージ コレクション メカニズムはみんなのものになりましたまた、PHP のガベージ コレクションを単に無効にするだけではメモリ オーバーフローなどの問題を解決できないこともわかっています。この競合は将来、どのように処理されるのでしょうか?
1階リウ・ウェイウェイ