Niao 兄弟は WeChat で PHP7 のダウンロード リンクをリリースしました: PHP: Get Download
たとえば、Zval の変更はキャッシュなどに適しています。
---------- -- -----------------------20151205-------------------------- -- -------
質問者として、私は混乱を表し、質問をしました。なぜこんなに雰囲気が変なのでしょうか?説明が必要な点がいくつかあります:
1. ニアオ兄弟は事前にダウンロード リンクを公開していましたが、これは質問された時点では公式 Web サイトに直接アクセスできず、git でしか利用できなかったためです。 、誰でもダウンロードして閲覧できるので便利です。
2. 私は現在 PHP プログラマーではありませんが、JIT と VM の実装に特に興味があります。特に PHP を嘲笑したい人は、別の場所を見つけて文句を言うことができます。
返信内容:
PHP7 の動作原理は、hhvm とは異なり、PHP5 と変わっていません。主に、一般的なパフォーマンスの最適化のためのパフォーマンス分析ツールに基づいています。
メモリ割り当ての数を減らす、より多くのスタック メモリを使用する、配列ハッシュ値をキャッシュする、マクロ展開の代わりに文字列をパラメータに解析する、小さなメモリの代わりに大きな連続メモリを使用するなど。詳細については、Niao 兄弟の PHP7 共有 PPT を参照してください。 zend エンジン プログラムのパフォーマンスが大幅に向上し、当然 PHP プログラムのパフォーマンスも向上しました。すべての最適化は非常に実用的であり、詳細から始めます。
20 年前のプログラムを最適化する方法を見つけるのは非常に困難であり、リファクタリングを推進するよりも困難です。世界中の Web サイトの 80% が PHP を使用しています。PHP7 を使用すると、これらの Web サイト プログラムは無料で大幅なコストをかけずにパフォーマンスを 1 倍向上させることができます。どのくらいの CPU が節約され、どのくらいの電力が節約され、どのくらい二酸化炭素排出量が削減されるか。さらに、PHP はオープンソース プロジェクトであり、背後に営利企業はなく、完全にコミュニティによって運営されています。 PHP 言語を使用する開発者や企業は、PHP 担当者に一銭も払ったことはありません。したがって、友人の皆さんには、たとえ PHP をどれほど軽蔑していても、他の人が世界のためにしてきたことを尊重してください。
2015 年の「PHP テクノロジー サミット」 (PHPCon、上海) で、私は Niao 兄弟の PHP7 共有について聞き、基本的にテクノロジー共有の中心的な内容をカバーした分析記事を書きました。興味のある学生は参照してください。
(PHP7 の技術分析が他の学生に誤解を与えないようにするため、ニアオ兄弟は特別に記事のレビューを依頼されました)
PHP7 の革新とパフォーマンスの最適化
php7 のパフォーマンスの最適化は主に細部の最適化であり、本質的には何も変わりません。
たとえば、swoole は単なる拡張ですが、これは 50 ポイントから 60 ポイントの改善に相当します。
80 点から 60 点への改善。90 点の改善。
php は弱い型であり、jit は強い型よりもはるかに困難です。
言語の成功にはさまざまな側面があります。パフォーマンスは指標の 1 つにすぎません。これは PHP の特性であり、上記を修正するものではありません。完全にリリースを要求し、一部の部分は永続的になります。PHP の起動時にこれを実行したことがあります。
最後に、php7 の敵がノード、Python、Ruby、Java であるとは一度も感じたことはありません。
php7 の最大の敵は php5 を最初に殺すことです。
- PHP の新しいハッシュテーブル実装
- PHP 7 の内部値表現 -1
- 内部値PHP 7 での表現 - 2
PHP 7 はどのようにして 2 倍速いのか : PHP
を参照してください。
世界には2つの言語しかありません。 一人は叱られる。 誰も気にしないもの。 それだけです。
性能は分かりませんが、使ってもらえるとすごく嬉しいし、私も気に入ってます~
PHPを批判する人たちよ、あなたは嫉妬しすぎだと心から言います。あなたが使用している言語について考えてください。デザイナーが、いわゆる言語の世界を飛び回るために、いわゆるルールやいわゆる文法を作成するように設計されていないものはどれですか? あなたの毎日の仕事の内容について考えてください。コンピューターがあなたにいたずらをしているのでしょうか? 言語を学ぶために一生懸命努力したことに気づいていないだけですが、すぐに習得してマスターできる言語があります。世界は前進し、新しいものを受け入れます。すでに持っている知識に囚われないでください。
確かに PHP7 のパフォーマンスは大幅に向上しましたが、動作メカニズムに本質的な変更がない限り、個人的には優れているとは言えないと思います。そうでない場合は、@Hantianfeng がネチズンのコメントで述べたように、インタプリタを最適化する必要があります。 PHP のパフォーマンスは、Java などのセミコンパイル言語や C などのコンパイル言語よりも低くなります。これは、PHP コードの実行メカニズムによって決まります。 PHP をやっている人がこれさえ理解していない場合は、PHP を理解していないか、PHP しか知らないかのどちらかです。しかし、これは PHP が Java や C よりも劣っているという結論にはつながりません。一般的に言えば、プロジェクトはオープン性コストとランニングコストに基づいて言語とアーキテクチャを決定する必要があります。それは、正しいことを行うために適切なツールを使用することだけです。言語でできること、できないこと、パフォーマンス 1 票で拒否権を発動することはできません。開発言語ランキングにおける PHP の順位は、PHP の成果を証明するのに十分です。PHP を使用する多くの人は、通常、PHP についてあまり知らないか、他の言語についての理解が不足しているため、この点に直面することができません。プログラムではデータ構造 + アルゴリズムが最も重要です。PHP7 の最適化により、これら 2 つの側面から PHP のパフォーマンスが向上します。また、これは、私たち PHP プログラマーが十分な仕事をすれば、作成したコードが同じロジックで処理されることを示しています。ゴミ C や Java プログラマが書いたコードよりも高いパフォーマンスを発揮します。もちろん、優秀な C や Java プログラマーもいますが、彼らはデータ構造 + アルゴリズム = プログラムの原則をよりよく理解しているため、他の言語を笑うことはありません。
私たちは最近、あるプロジェクトで Symfony を使用し、別のプロジェクトで Laravel を使用しました。どちらも優れた PHP フレームワークです。PHP は実際には高い実行パフォーマンスを追求するプログラミング言語ではないと今でも強く信じています。ただし、PHP の弱い型機能を賢く使用すると、Java や C# よりもはるかに便利になる場合があります。これら 2 つの言語のリフレクション テクノロジは、PHP リフレクションとダイナミクスほど便利ではありません。
ほとんどのスクリプト言語で利用可能な最適化ソリューションを使用して最適化されています。
言語には適用環境があり、異なる環境での比較はできません。
使いやすく、幅広い対応範囲を持つ言語であるため、以前のバージョンと比較した PHP7 の変更点は顕著であり、オープンソースで民主的なコミュニティでこの困難なタスクを推進するのは特に簡単ではありません。
HHVM は企業プロジェクトに基づいた製品であり、外部のユーザーがどのように使用するかをあまり考慮していませんが、そのためには多くの作業を行う必要があります。それを使用してください。ある意味では (アプリケーションに追加のコストがかかる)、HHVM を使用する場合と Java を使用する場合に違いはありません。これは、Java を再度作成するか、hhvm を使用して元の PHP プログラムを保持するものの、多くの操作を追加するだけです。 。