Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:99053 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 71968 invoked from network); 15 May 2017 18:01:46 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 May 2017 18:01:46 -0000 Authentication-Results: pb1.pair.com header.from=lists@rhsoft.net; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=lists@rhsoft.net; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain rhsoft.net designates 91.118.73.15 as permitted sender) X-PHP-List-Original-Sender: lists@rhsoft.net X-Host-Fingerprint: 91.118.73.15 mail.thelounge.net Received: from [91.118.73.15] ([91.118.73.15:30639] helo=mail.thelounge.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 4F/BE-15531-90DE9195 for ; Mon, 15 May 2017 14:01:45 -0400 Received: from srv-rhsoft.rhsoft.net (Authenticated sender: h.reindl@thelounge.net) by mail.thelounge.net (THELOUNGE MTA) with ESMTPSA id 3wRT11144FzXLR; Mon, 15 May 2017 20:01:41 +0200 (CEST) To: internals@lists.php.net References: Message-ID: <71e36a9a-b336-7277-0dfe-70e33c6b9176@rhsoft.net> Date: Mon, 15 May 2017 20:01:40 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Language: de-CH Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] HYBRID VM From: lists@rhsoft.net ("lists@rhsoft.net") Am 15.05.2017 um 16:43 schrieb Dmitry Stogov: > Hi, > > > Recently, I committed HYBRID VM into master, but didn't enable it by default yet. > > It provides significant performance improvement on small benchmarks (1.5 times faster on bench.php) and slight improvement on real-life apps (1-2% on wordpress). Currently it improves PHP only on x86, x86_64 and PPC compiled with GCC. > > Anyone may regenerate and test it. > > > php zend_vm_gen.php --with-vm-kind=HYBRID > > make benchmarks for our inhouse CMS on my home-machine * Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz * PGO-Build -mtune=sandybridge for our application there is real difference, just look at the two different runs with the hybrid-vm - which is at least not bad at the end "corecms" = a completly stripped own instance of our inhouse cms "contentlounge" = a expensive "generic formmailer" and other modules on the page the machine runs in a room with a high temperature and i faced larger differences even with the same build and nothing changed, maybe other applications will see more speed improvement, the codebase is highly optimized down to OPCODEs looking at xdebug-profiles and probably the most tiny codebase depending on the configured modules out there given a total LOC around 250000 lines in theory (but that includes also admin baclaneds for all sort of servers....) _______________________________________________________________ /usr/bin/php Zend/zend_vm_gen.php --with-vm-kind=CALL Server Hostname: corecms Concurrency Level: 50 Time taken for tests: 30.158 seconds Complete requests: 100000 Failed requests: 0 Total transferred: 383563326 bytes HTML transferred: 346464592 bytes Requests per second: 3315.84 [#/sec] (mean) Time per request: 15.079 [ms] (mean) Time per request: 0.302 [ms] (mean, across all concurrent requests) Transfer rate: 12420.25 [Kbytes/sec] received Server Hostname: contentlounge Concurrency Level: 50 Time taken for tests: 109.291 seconds Complete requests: 100000 Failed requests: 0 Total transferred: 4806868605 bytes HTML transferred: 4758197006 bytes Requests per second: 914.99 [#/sec] (mean) Time per request: 54.645 [ms] (mean) Time per request: 1.093 [ms] (mean, across all concurrent requests) Transfer rate: 42951.58 [Kbytes/sec] received _______________________________________________________________ /usr/bin/php Zend/zend_vm_gen.php --with-vm-kind=HYBRID Server Hostname: corecms Concurrency Level: 50 Time taken for tests: 31.528 seconds Complete requests: 100000 Failed requests: 0 Total transferred: 383561944 bytes HTML transferred: 346463930 bytes Requests per second: 3171.77 [#/sec] (mean) Time per request: 15.764 [ms] (mean) Time per request: 0.315 [ms] (mean, across all concurrent requests) Transfer rate: 11880.57 [Kbytes/sec] received Server Hostname: corecms Concurrency Level: 50 Time taken for tests: 31.248 seconds Complete requests: 100000 Failed requests: 0 Total transferred: 383561400 bytes HTML transferred: 346462104 bytes Requests per second: 3200.20 [#/sec] (mean) Time per request: 15.624 [ms] (mean) Time per request: 0.312 [ms] (mean, across all concurrent requests) Transfer rate: 11987.03 [Kbytes/sec] received Server Hostname: contentlounge Concurrency Level: 50 Time taken for tests: 106.127 seconds Complete requests: 100000 Failed requests: 0 Total transferred: 4806870511 bytes HTML transferred: 4758196867 bytes Requests per second: 942.27 [#/sec] (mean) Time per request: 53.063 [ms] (mean) Time per request: 1.061 [ms] (mean, across all concurrent requests) Transfer rate: 44232.14 [Kbytes/sec] received Server Hostname: contentlounge Concurrency Level: 50 Time taken for tests: 107.479 seconds Complete requests: 100000 Failed requests: 0 Total transferred: 4806867967 bytes HTML transferred: 4758194770 bytes Requests per second: 930.41 [#/sec] (mean) Time per request: 53.739 [ms] (mean) Time per request: 1.075 [ms] (mean, across all concurrent requests) Transfer rate: 43675.61 [Kbytes/sec] received _______________________________________________________________ for rpmbuilders: %prep export LANG=C %setup -q -n php-%{version} %patch1 -p1 -b .realpath %if "%{version}" >= "7.1.0" %patch3 -p1 -b .systzdata-71 %else %patch2 -p1 -b .systzdata-70 %endif # rebuild 'data_file.c' from current system libmagic starting with PHP 7.2 and when /usr/bin/php is installed %if "%{version}" >= "7.2.0" if [ -f /usr/bin/php ]; then /usr/bin/php ext/fileinfo/create_data_file.php /usr/share/misc/magic.mgc > ext/fileinfo/data_file.c fi %endif # generate zend-vm when /usr/bin/php is installed %if "%{version}" >= "7.2.0" if [ -f /usr/bin/php ]; then /usr/bin/php Zend/zend_vm_gen.php --with-vm-kind=HYBRID fi %else if [ -f /usr/bin/php ]; then /usr/bin/php Zend/zend_vm_gen.php --with-vm-kind=CALL fi %endif