ホームページ >バックエンド開発 >PHPチュートリアル >Github の楽しい PHP コードが苦情を引き起こす

Github の楽しい PHP コードが苦情を引き起こす

WBOY
WBOYオリジナル
2016-08-08 09:32:34952ブラウズ

一昨日、github の PHP セクションに業務効率を 70% 向上させるコードが突然出現し、世界中の多くのネチズンから「すごい!」「よくやった!」などの苦情や嘲笑の声が上がりました。 「PHP は世界初の言語です!」 普段は真面目で勤勉なプログラマーがユーモアあふれる一面を発揮し、GitHub は喜びの海になりました。

まず、この神レベルのコードを見てみましょう:

このコードが行うことは 1 つです。PHP のガベージ コレクターを無効にすることです。次に、ネチズンは、PHP を無効にしてガベージ コレクターを使用する効果をテストしました。

変更前: メモリ使用量: 163.66MB (ピーク: 403.82MB)、時間: 246.25秒
変更後: メモリ使用量: 163.34MB (ピーク: 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 上のプログラマーは大喜びしました:

1 位の Homm さんは、この処理方法に驚き、なぜそのような処理をするのか理解できなかったと述べ、この処理方法は見栄えがよくないと客観的にコメントしました:

その後、smileytechguy がやって来て、からかい始めました。「コメントはありません。PHP カーネルを無効にしましょう。なぜこれを行うのかは説明しません

」。

その後、制御不能になり始めました:

醤油をお使いの方:

不平や嘲笑をする人:

PHP が世界一の言語であると言うだけで、いくつかの国でバージョンが存在します。PHP は、いくつかのコードを使用するだけで効率を 70% 向上させることができると言われており、世界一の言語であるのは当然です。

かわいいものもあります:

PHP のガベージ コレクション メカニズムはみんなのジョークになっていますが、PHP のガベージ コレクションを単に無効にするだけではメモリ オーバーフローなどの問題を解決できないこともわかっています。メモリ管理と動作効率の間の矛盾を PHP がどのように処理するかは、長い道のりになります。持ち帰り。

以上、苦情を引き起こしたGithub Joyful PHPの神レベルコードを内容も含めて紹介しましたので、PHPチュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。