PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Aktueller Stand von PHP 7: Deutlich geringerer Arbeitsspeicherverbrauch

with 15 comments

Ich möchte mir den aktuellen Stand von PHP 7 anschauen (Stand 20. Januar 2015), und habe dazu im letzten Blogartikel gezeigt wie man PHP 7 direkt aus dem Git-Repository selbst kompiliert. Ich habe nun also PHP 7 zur Verfügung:

$ sapi/cli/php -v
PHP 7.0.0-dev (cli) (built: Jan 20 2015 23:13:58)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies

Vergleichen werde ich mit der aktuell unter Ubuntu 14.04 LTS verfügbaren Version PHP 5.5.9:

$ php -v
PHP 5.5.9-1ubuntu4.5 (cli) (built: Oct 29 2014 11:59:10)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

Da die eine Version selbst kompiliert ist und die andere von Ubuntu stammt sind sie in diesem Fall nicht ideal für einen Vergleich nutzbar, aber auf ein paar Bytes oder Prozente soll es mir nicht ankommen.

PHP 7 hat in diesem Fall keinen OPcache aktiviert, aber den benötige ich für meine Tests auf der Kommandozeile (CLI) nicht. Möchte man PHP via Webserver (PHP-FPM usw.) nutzen sollte man darauf achten den OPcache per php.ini zu aktivieren, um vergleichbare Ergebnisse zu bekommen.

Folgendes kleines Testscript werde ich mit beiden Versionen laufen lassen:

<?php

$a = array();
for ($i=1; $i<2000000; $i++) {
    $a[] = rand(100000000, 999999999);
}

echo "not real: ".(memory_get_peak_usage(false)/1024/1024)." MiB\n";
echo "real: ".(memory_get_peak_usage(true)/1024/1024)." MiB\n";

Und hier sind die jeweiligen Ergebnisse:

$ time php arraytest.php
not real: 275.61262512207 MiB
real: 276 MiB

real    0m1.119s
user    0m0.763s
sys     0m0.190s
$ $ time sapi/cli/php arraytest.php
not real: 96.334381103516 MiB
real: 98 MiB

real    0m0.414s
user    0m0.290s
sys     0m0.068s

Ui ui ui! Mit PHP 7 reduziert sich der Arbeitsspeicherverbrauch bei diesem Testarray (2.000.000 Zahlen als Values) um satte 65%!

Weniger Arbeitsspeicherverbrauch heißt nicht nur dass „mehr PHP“ auf einem Server laufen kann, weniger Arbeitsspeicher heißt auch dass weniger Daten im Arbeitsspeicher abgelegt werden müssen, und weniger daraus gelesen werden muss, es impliziert also automatisch auch einen Performance-Boost. Wie man an den Laufzeiten erkennen kann ist PHP 7 auch ungefähr 3 Mal so schnell!

In richtigen Applikationen wie WordPress oder Typo3 usw. ist der Unterschied nicht ganz so groß, da spricht man von ungefähr 50% bis 110% mehr Laufzeit-Performance. Denn bei größeren Applikationen wird auch viel Zeit beim Warten auf die Datenbank verbraucht, und Warten ist genauso langsam in PHP 5.5 wie in PHP 7 😉

All diese Verbesserungen sind darauf zurückzuführen wie PHP intern Variablen und Arrays organisiert, den sogenannten ZVALs und Hashtables. Die detaillierten Informationen über die Änderungen an der Hashtable-Implementation von PHP 7 sollte man sich mal zu Gemüte führen.

Edit: Auf Wunsch habe ich auch noch PHP 5.6 getestet, hier die Ergebnisse:

wget http://de2.php.net/get/php-5.6.5.tar.gz/from/this/mirror
mv mirror php-5.6.5.tar.gz
tar -xzvf php-5.6.5.tar.gz
cd php-5.6.5/
./configure --prefix=/usr/local/php-5.6.5 --with-zlib --with-config-file-path=/usr/local/php-5.6.5/etc --enable-mbstring --with-mysql --with-mysqli --with-pdo-mysql --enable-zip --with-imap --with-kerberos --with-imap-ssl --with-openssl --with-jpeg-dir --with-gd --with-gettext --with-freetype-dir --enable-ftp --with-pspell --with-curl
make
$ sapi/cli/php -v
PHP 5.6.5 (cli) (built: Jan 23 2015 00:46:40)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
$ time sapi/cli/php -d memory_limit=512M arraytest.php
not real: 275.61260223389 MiB
real: 276 MiB

real    0m1.023s
user    0m0.663s
sys     0m0.170s

PHP 5.6 ist also leicht schneller als PHP 5.5, aber zu PHP 7 ist es immer noch ein richtig großer Unterschied.

Written by Michael Kliewe

Januar 21st, 2015 at 12:56 pm

Posted in PHP

Tagged with , , ,

15 Responses to 'Aktueller Stand von PHP 7: Deutlich geringerer Arbeitsspeicherverbrauch'

Subscribe to comments with RSS or TrackBack to 'Aktueller Stand von PHP 7: Deutlich geringerer Arbeitsspeicherverbrauch'.

  1. […] Im nächsten Blogartikel geht es um meinen kleinen Vergleich des Memory-Verbrauchs. […]

  2. Könntest du noch einen Vergleich mit der neusten stabilen PHP-Version machen?

    php -v
    PHP 5.6.4 (cli) (built: Dec 17 2014 21:45:04)

    Tom

    21 Jan 15 at 16:18

  3. Könntest du bitte, rein aus Interesse, auch die Ausführungszeit mit protokollieren?

    Danke für Test!

    Klaus

    22 Jan 15 at 12:04

  4. @Tom: Habe den Test für PHP 5.6.5 noch gemacht, siehe Artikel oben.

    @Klaus: Ich habe oben die Ausführungszeit hinzugefügt. Habe deshalb auch die Array-Größe erhöht, damit das Script etwas länger läuft und die Laufzeit-Variationen etwas geringer werden beim Testen. Eigentlich müsste man das Script 10 Mal laufen lassen und den Durchschnitt berechnen, habe ich aber gerade keine Lust zu. Kannst du aber natürlich selbst gern machen, wie man PHP selbst kompiliert steht ja oben bzw. hier im Blog 😉

    Michael Kliewe

    23 Jan 15 at 00:59

  5. Danke dir! Das reicht aber schon mal für eine ungefähre Einschätzung :)

    Damit wird wohl der Abstand von HHVM etwas geringer und die PHP Core-Entwickler machen sich Gedanken in die richtige Richtung.

    Klaus

    23 Jan 15 at 10:10

  6. 紹介によると、赫柏林このブランドはいま家族の第3世代の人が経営、赫柏林表も外観デザインや品質の上で、すべて持ってフランスロマンチックと繊細な性格。設計上のオリジナリティも比較的地味、線は優雅な。このブランドの品質について、肖晓もまた、「彼らの品質も守って家族の使命感、利益と家族の栄誉感の選択の中で彼らに後者より。」 http://www.gowatchs.com/brand-214.html

  7. iwcのシャフハウゼンはちょうど最近リリースされた彼らの第3の新しいモデルは、ポルトガルのラインアップで、エレガントなスタイルの旅行・クラシックで、冒険の愛を結合すること。スーパーコピーブランド最新モデルの2つの主要な機能だという手巻8日間としての当て推量を残します。 http://www.bagkakaku.com/vuitton_bag/2/N51261.html

  8. スイス梅表(Titoni)跨界とドイツ出身の中国芸術家张奇開協力発行アーティスト腕時計。今回のテーマは「アーティスト腕時計が大気圏に再突入するNo . 1」は、1、超現実し単身空間の中の可愛いパンダは、未来を地球へ伝達式、気候変化による生態の危機。梅表を表現する特別テーマ、環境及び地球の関心。ジェイコブ時計スーパーコピー梅表表示につき1本の腕時計は、透過時報文教基金会の植樹を育てる計画は、お客様の名の愛を育てる株苗にこたえて、緑生き、地球を愛する善尽企業の社会的責任。 http://www.newkakaku.com/gb1.htm

  9. 上記のリンクで、あなたはiwc iwcのポルトガル年間カレンダーsihh 2015年頃デビューしたとき、私たちの最初のレポートを読むことができます。その後まもなく、我々はポルトガル語の「家族は本当に唯一の新しいバージョンであったことを経験することができました。我々は、まだわからないことは、文字通りの名前」をそれぞれのポルトガル語ポルトガル語iwcの腕時計への良い考えであったと確信します。バレンシアガバッグスーパーコピー」という名前かもしれない後者より歴史的に正確な」ブランドの歴史が我々のポルトガルの「ちょうど欠けないクラスと多くのロールを正確に舌」と言っているのは、英語を話す人に。なぜ、あなたはそのように何かのブランドの旗艦のドレスウォッチコレクションを増したい(ないとは思いませんが、私たちは、ポルトフィーノの彼らの旗艦のドレスウォッチですか? http://www.ooobrand.com/bags/hermes/638.html

  10. döギャラリー腕時計ワインダーが安全であることを意図ttlingのスタイリッシュな家具や装飾と機能的な芸術は、ほとんどの製品として開発ttlingö。会社からの他の項目に比べて、その多くが仰々しいいくぶんです、そして、いくつかの私たちがここに書かれている、öttlingギャラリーが相対的に予約されています。のdöttlingギャラリーのデザインブランドのベルエアーラインに関連すると騒々しい20年代から海外旅行の場合」に触発され、「高光沢ニッケル金具とカーフスキンの側面を持つ。このすべてのドアガラスの表示とともに素敵です、しかし、döttlingギャラリーが少し立って余分なタッチを与える1つのトリックをする必要があります。 http://www.bagkakaku.com/vuitton_bag/2/N51211.html

  11. ガス針表「夜光一流、耐震抜群、幸運で正確で、長持ちして丈夫”の品質の特徴になる原因スイスの有名な専門军表旧家。1892年にガス針表から製造専門軍用腕時計、军表製造史百年を超える。ドイツ、イギリス、インドなど多くの国の軍隊は大量に使用したガス針表。戦の間に、イギリスのラクダ特殊兵、イギリス空軍とインド軍は使い捨て http://www.msnbrand.com/goods-copy-4782.html

  12. 2015年のために、カルティエは、両方の男性と女性のための真新しいcléカルティエ腕時計のコレクションを発表しました。我々は、cléカルティエは、我々のトップ10の新しい腕時計sihh 2015年の間の1つとして、正当な理由のためにそれをスポーツだけでなく、完全に新しいケースデザインが、また新しい運動。2015年のclé腕時計は排他的に18金で提供されるへ行っている間(いろいろな色)、我々は予想しますがカルティエ肉付けcléカルティエコレクションより多くの次の数年にわたってとありそうな鋼のモデルとして提供する。だから、2015年のカルティエcléカルティエ時計の上に行きましょう、とカルティエの新しいドレスウォッチコレクションを面白くすることを見てください。 http://www.newkakaku.com/gq1.htm

  13. は、コンスタンチンchaykinコンプトゥスの復活祭の時計のケースを模倣するサンクトペテルブルク、ロシアの聖イサク大聖堂のように、全体的な形状は、ドーム、柱廊、鐘塔とすべてのこの記念碑の大聖堂にマッチする色を選んであった。トップの上のギョーシェとゴールドエナメルで飾られたドームは、キリスト教徒のための復活のシンボルと一致するように卵の形状に成形する。4つのミニチュアの鐘塔、24柱構造の側の上のモザイク装飾とすべての他の小さいデザイン要素を考えて、元の建物に合わせて作られている。 http://www.bagkakaku.com/vuitton_bag/2/N48181.html

  14. スーパーコピーロレックス,スーパーコピーロレックス時計通販スーパー コピー品その他の世界一流ロレックススーパーコピー時計品を扱っています。ヴィトン コピー、ヴィトン コピー 激安(N品)専門店“ http://www.ooobag.com/wallet/louisvuitton/index_11.html

  15. 針を創立しスイスガス表1886年、120年以上の歴史を持つ、称賛には一番人気時計ブランドの一つスイス。ガス針表スイス先進技術設備を採用して、腕時計を各性能はカリスマ抜群で、その高い品質の防水機能、耐震設計と独特な夜光機能、保証ごとにすべて持って針だけガス表恒久の価値は、消費者の好感を受けて尊重。 http://www.gginza.com/%E6%99%82%E8%A8%88/%E3%83%AD%E3%83%AC%E3%83%83%E3%82%AF%E3%82%B9/sky-dweller/11fb3142383abdfc.html

Leave a Reply

You can add images to your comment by clicking here.