Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Zend Optimizer Plus(O+)

10,341 views

Published on

Published in: Technology, Art & Photos
  • Be the first to comment

Zend Optimizer Plus(O+)

  1. 1. Zend Optimizer Plus(Opcache) - laruence 13年11⽉月11⽇日 星期⼀一
  2. 2. 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⽇日 星期⼀一
  3. 3. Opcodes Cache • PHP->Compiler->Opcodes->Zend VM • Same As APC, Eacc • PHP->Opcodes Cache->Zend VM 13年11⽉月11⽇日 星期⼀一
  4. 4. Opcodes Optimizer 13年11⽉月11⽇日 星期⼀一
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. Optimizations • Pass 4 • 13年11⽉月11⽇日 星期⼀一 INIT_FCALL_BY_NAME -> DO_FCALL
  9. 9. Optimizations • Pass 5 • CFG optimization • • 13年11⽉月11⽇日 星期⼀一 codes optimization remove dead blocks
  10. 10. Optimizations • Pass 9 • 13年11⽉月11⽇日 星期⼀一 Optimize temp variables usage
  11. 11. Optimizations • Pass 10 • 13年11⽉月11⽇日 星期⼀一 Remove NOPs
  12. 12. Optimizations • Pass 11 • 13年11⽉月11⽇日 星期⼀一 Compact literals table
  13. 13. VS APC • 7% - 10% faster than APC • And More: • 13年11⽉月11⽇日 星期⼀一
  14. 14. Q&A 13年11⽉月11⽇日 星期⼀一

×