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
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php