ホームページ  >  記事  >  バックエンド開発  >  Github は喜びに満ち、PHP の神レベルのコードは苦情を引き起こす

Github は喜びに満ち、PHP の神レベルのコードは苦情を引き起こす

WBOY
WBOYオリジナル
2016-08-08 09:33:04830ブラウズ
概要: 一昨日、業務効率を 70% 向上させるコードが github の PHP セクションに突然出現し、世界中の多くのネチズンからの苦情と嘲笑を引き起こしました。 「やった!」、「PHP は世界の第一言語です!」 普段は真面目で勤勉なプログラマーたちがユーモアあふれる一面を発揮し、GitHub は歓喜の海と化しました。

一昨日、githubのPHPセクションに業務効率を70%向上させるコードが突如出現し、世界中の多くのネチズンから「すごい!」「まあ」などの苦情や嘲笑の声が上がった。 「できました!」「PHP は世界 No.1 One 言語です!」 普段は言葉を濁して一生懸命働くプログラマーたちが、ユーモアあふれる一面を存分に発揮し、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上のプログラマたちは大喜びしました。

先に到着したHommさんは、この処理方法に驚き、なぜそうなるのか理解できなかったと述べ、この処理を客観的に評価しましたこの方法は良くありませんでした:

その後、スマイリングテックガイがやって来てからかい始めました: 「まあ、コメントはありません。PHP カーネルを無効にしましょう。なぜこれを行うのかは説明しません。」

それから手に負えなくなり始めました:

あなたをからかう人もいました:

ただ話している人もいますPHPについてPHP は世界一の言語であり、いくつかの国でバージョンが存在します。PHP は間違いなく世界一の言語です。

かわいいものもあります:
PHP のガベージ コレクション メカニズムは、単に PHP のガベージ コレクションを無効にするだけではメモリ オーバーフローなどの問題を解決できないこともわかっています。将来的には効率性が問われます。

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

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