php-src/sapi
Dmitry Stogov 14e29f5146 Reduced size of zend_op on 64-bit systems.
the main idea - the smaller the zend_op structure, the lees memory traffic is required to load VM instructions during execution. The patch reduces the size of each opcode from 48 to 32 bytes (saves 16 bytes for each opcode, and applications use thousands of opoceds). This reduced the number of CPU cache misses by 12% and improved performance of real-life apps by 1-2%.

The patch affects how constants and jump targets are represented in VM during execution. Previously they were implemented as absolute 64-bit pointers. Now they are relative 32-bit offsets.

In run-time constant now should be accessed as:
  RT_CONSTANT(op_array, opine->op1) instead of opline->op1.zv
  EX_CONSTANT(opline->op1) instead of opline->op1.zv

Jump targets:
  OP_JMP_ADDR(opline, opline->op2) instead of opline->op2.jmp_addr

The patch doesn't change zend_op representation for 32-bit systems. They still use absolute addresses. The compile-time representation is also kept the same.
2014-12-12 10:19:41 +03:00
..
aolserver removed *.dsw and *.dsp files 2014-09-28 19:02:09 +02:00
apache removed *.dsw and *.dsp files 2014-09-28 19:02:09 +02:00
apache2filter Move smart_str implementation into Zend/ 2014-09-21 20:49:39 +02:00
apache2handler Fix zpp call in apache_getenv() 2014-12-06 12:38:56 +01:00
apache_hooks removed *.dsw and *.dsp files 2014-09-28 19:02:09 +02:00
caudium Removes accidentally added files. 2014-09-20 18:27:09 +02:00
cgi fix datatype mismatches and warnings 2014-12-02 11:24:21 +01:00
cli Fix php cli (-S option) inconsistent port parsing 2014-11-30 22:42:30 -08:00
continuity s/PHP 5/PHP 7/ 2014-09-19 18:33:14 +02:00
embed "extern" shouldn't be used for definitions 2014-11-18 13:19:47 +01:00
fpm Merge branch 'PHP-5.6' 2014-12-10 08:19:29 +01:00
isapi removed *.dsw and *.dsp files 2014-09-28 19:02:09 +02:00
litespeed typo fixes - https://github.com/vlajos/misspell_fixer 2014-11-23 14:52:47 -08:00
milter s/PHP 5/PHP 7/ 2014-09-19 18:33:14 +02:00
nsapi typo fixes - https://github.com/vlajos/misspell_fixer 2014-11-23 14:52:47 -08:00
phpdbg Reduced size of zend_op on 64-bit systems. 2014-12-12 10:19:41 +03:00
phttpd s/PHP 5/PHP 7/ 2014-09-19 18:33:14 +02:00
pi3web removed *.dsw and *.dsp files 2014-09-28 19:02:09 +02:00
roxen Merge branch 'master' into issue-67910 2014-09-20 10:09:21 +02:00
tests - Rewrite scanner to be based on re2c instead of flex 2008-03-16 21:06:55 +00:00
thttpd typo fixes - https://github.com/vlajos/misspell_fixer 2014-11-23 14:52:47 -08:00
tux Move smart_str implementation into Zend/ 2014-09-21 20:49:39 +02:00
webjames Merge branch 'master' into issue-67910 2014-09-20 10:09:21 +02:00