SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Zend Optimizer Plus(Opcache)
- laruence

13年11⽉月11⽇日 星期⼀一
What it is
• Not Only Opcodes Cache
• But Also Opcodes Optimizer
• Shiped with PHP since 5.5
• http://pecl.php.net/zendopcache
13年11⽉月11⽇日 星期⼀一
Opcodes Cache
• PHP->Compiler->Opcodes->Zend VM
• Same As APC, Eacc
• PHP->Opcodes Cache->Zend VM

13年11⽉月11⽇日 星期⼀一
Opcodes Optimizer

13年11⽉月11⽇日 星期⼀一
Optimizations
• Pass 1
•

Substitute persistent constants

•

•

Perform compile-time evaluation of constant binary and unary
operations

•

•

13年11⽉月11⽇日 星期⼀一

$a = 3 + 2 => $a = 5

Optimize series of ADD_STRING and/or ADD_CHAR

•

•

const A = 1; $a = A; => $a = 1;

$a = “a” . “b”; => $a = “ab”;

Convert IS_VAR to IS_CV when it is possible
Optimizations
• Pass 2
•

Convert non-numeric constants to numeric constants in numeric
operators

•

•

Optimize constant conditional JMPs

•

•

JMPZ(X, L1), JMP(L2) => JMPZNZ(X, L1, L2)

Optimize static BRKs and CONTs

•

13年11⽉月11⽇日 星期⼀一

$a = $b + “2”; => $a = $b + 2;

break to opcodes + offset => break to opcode
Optimizations
• Pass 3
•
•
•

13年11⽉月11⽇日 星期⼀一

Optimize $i = $i+expr to $i+=expr
Optimize series of JMPs
Change $i++ to ++$i where it is possible
Optimizations

• Pass 4
•

13年11⽉月11⽇日 星期⼀一

INIT_FCALL_BY_NAME -> DO_FCALL
Optimizations
• Pass 5
•

CFG optimization

•
•

13年11⽉月11⽇日 星期⼀一

codes optimization
remove dead blocks
Optimizations

• Pass 9
•

13年11⽉月11⽇日 星期⼀一

Optimize temp variables usage
Optimizations

• Pass 10
•

13年11⽉月11⽇日 星期⼀一

Remove NOPs
Optimizations

• Pass 11
•

13年11⽉月11⽇日 星期⼀一

Compact literals table
VS APC
• 7% - 10% faster than APC
• And More:
•
13年11⽉月11⽇日 星期⼀一
Q&A

13年11⽉月11⽇日 星期⼀一

Weitere ähnliche Inhalte

Andere mochten auch

The secret of PHP7's Performance
The secret of PHP7's Performance The secret of PHP7's Performance
The secret of PHP7's Performance Xinchen Hui
 
PHP7 - For Its Best Performance
PHP7 - For Its Best PerformancePHP7 - For Its Best Performance
PHP7 - For Its Best PerformanceXinchen Hui
 
PHP7.1 New Features & Performance
PHP7.1 New Features & PerformancePHP7.1 New Features & Performance
PHP7.1 New Features & PerformanceXinchen Hui
 
The Php Life Cycle
The Php Life CycleThe Php Life Cycle
The Php Life CycleXinchen Hui
 
Bases de datos de libre acceso (open acces)
Bases de datos de libre acceso (open acces)Bases de datos de libre acceso (open acces)
Bases de datos de libre acceso (open acces)Josmel Pacheco-Mendoza
 
Recursos Web 2.0 con Moodle y Google Apps para optimar el proceso de enseñan...
Recursos Web 2.0 con Moodle y Google Apps para optimar el proceso de enseñan...Recursos Web 2.0 con Moodle y Google Apps para optimar el proceso de enseñan...
Recursos Web 2.0 con Moodle y Google Apps para optimar el proceso de enseñan...Franklin Calle Zapata
 

Andere mochten auch (7)

The secret of PHP7's Performance
The secret of PHP7's Performance The secret of PHP7's Performance
The secret of PHP7's Performance
 
PHP7 - For Its Best Performance
PHP7 - For Its Best PerformancePHP7 - For Its Best Performance
PHP7 - For Its Best Performance
 
PHP7.1 New Features & Performance
PHP7.1 New Features & PerformancePHP7.1 New Features & Performance
PHP7.1 New Features & Performance
 
The Php Life Cycle
The Php Life CycleThe Php Life Cycle
The Php Life Cycle
 
Bases de datos de libre acceso (open acces)
Bases de datos de libre acceso (open acces)Bases de datos de libre acceso (open acces)
Bases de datos de libre acceso (open acces)
 
Bibliotecas Digitales
Bibliotecas DigitalesBibliotecas Digitales
Bibliotecas Digitales
 
Recursos Web 2.0 con Moodle y Google Apps para optimar el proceso de enseñan...
Recursos Web 2.0 con Moodle y Google Apps para optimar el proceso de enseñan...Recursos Web 2.0 con Moodle y Google Apps para optimar el proceso de enseñan...
Recursos Web 2.0 con Moodle y Google Apps para optimar el proceso de enseñan...
 

Zend Optimizer Plus(O+)