Serban Nicolae [email_address] Netbridge Development SRL APC - Alternative PHP Cache opcode cache
APC - Alternative PHP Cache Anatomia unui request php
APC Instalare
Facilitati oferite
Configurare
Teste
APC - Alternative PHP Cache Anatomia unui request php <?php $a = 1; $b = 2; $c = $a + $b; echo $c; ?> Exemplu: play.php
APC - Alternative PHP Cache Read Output Parse Compile Execute play.php Anatomia unui request php
APC - Alternative PHP Cache Output Parse Compile Execute play.php Anatomia unui request php Read Server API ( SAPI) - mod_php ( Apache 2) - FastCGI ( Lighttpd, Nginx ) - php-fpm ( Lighttpd, Nginx )
APC - Alternative PHP Cache Output Compile Execute Anatomia unui request php Read Parsarea - Se parcurge codul sursa si se genereaza o serie de token-uri pentru fiecare cuvant din codul sursa. - Se analizeaza token-urile si se determina structura lor gramaticala. - Se compara structura gramaticala cu cea definita in regulile de sintaxa ale limbajului. Parse Exemplu greseala de sintaxa: PHP Parse error:  syntax error, unexpected  T_VARIABLE  in play.php on line 3
APC - Alternative PHP Cache Anatomia unui request php <?php $a = 1; $b = 2; $c = $a + $b; echo $c; ?> T_OPEN_TAG  :: <?php T_WHITESPACE  ::  T_VARIABLE  :: $a = T_LNUMBER  :: 1 T_WHITESPACE  ::  T_VARIABLE  :: $b = T_LNUMBER  :: 2 ; T_WHITESPACE  ::  T_VARIABLE  :: $c = T_VARIABLE  :: $a + T_VARIABLE  :: $b ; T_WHITESPACE  ::  T_ECHO  :: echo T_WHITESPACE  ::  T_VARIABLE  :: $c ; T_WHITESPACE  ::  T_CLOSE_TAG  :: ?> Parsare * Cu ajutorul functiilor PHP token_get_all(<STRING>) si token_name(<INT>)
APC - Alternative PHP Cache Output Execute Anatomia unui request php Read Compilarea - Se face doar in cazul in care nu exista greseli de sintaxa. - Generarea de bytecode ( numit opcode ) pe baza codului sursa. - Codul opcode este generat de catre Zend Engine - Rularea lui se face tot de catre Zend Engine Exemple de instructiuni opcode intelese de Zend Engine: NOP, ADD, DIV, IS_EQUAL, ASSIGN_ADD, CAST .... Lista completa: http://www.php.net/manual/en/internals2.opcodes.list.php Parse Compile
APC - Alternative PHP Cache Output Execute Anatomia unui request php Read Parse Compile Finding entry points Branch analysis from position: 0 Return found filename:  /media/projects/play/public/play.php function name:  (null) number of ops:  6 compiled vars:  !0 = $a, !1 = $b, !2 = $c line  # *  op  fetch  ext  return  operands --------------------------------------------------------------------------------- 2  0  >  ASSIGN   !0, 1 3  1  ASSIGN   !1, 2 4  2  ADD   ~2  !0, !1 3  ASSIGN   !2, ~2 5  4  ECHO   !2 7  5  >  RETURN   1 branch: #  0; line:  2-  7; sop:  0; eop:  5 OPCODE play.php * Cu ajutorul extensiei PHP Vulcan Logic Disassembler (VLD)
APC - Alternative PHP Cache Output Execute Anatomia unui request php Read Parse Compile Pentru fiecare fisier cod sursa php dintr-un proiect web  se efectueaza  parsarea  si  compilarea  lui la fiecare cerere catre serverul web. Pe masinile de  productie  codul sursa al fisierelor se modifica foarte  rar . Cum se poate imbunatatii timpul de executie ...
APC - Alternative PHP Cache Read Output Parse Compile Execute play.php Cache opcode PHP
APC - Alternative PHP Cache A lternative  P HP  C ache ( APC ) Este o extensie pentru php care  realizeaza cache pentru codul  intern al lui Zend Engine si anume  opcode . Cachul este tinut in RAM. Instalarea se face cu ajutorul PECL pecl install apc Se configureaza cu ajutorul fisierului php.ini Se doreste introducerea extensiei in Core incepand cu PHP 6. Extensia ofera un set de functii pentru manevrarea cache-ului. Este dezvoltata de comunitatea php.net

Apc presentation

  • 1.
    Serban Nicolae [email_address]Netbridge Development SRL APC - Alternative PHP Cache opcode cache
  • 2.
    APC - AlternativePHP Cache Anatomia unui request php
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
    APC - AlternativePHP Cache Anatomia unui request php <?php $a = 1; $b = 2; $c = $a + $b; echo $c; ?> Exemplu: play.php
  • 8.
    APC - AlternativePHP Cache Read Output Parse Compile Execute play.php Anatomia unui request php
  • 9.
    APC - AlternativePHP Cache Output Parse Compile Execute play.php Anatomia unui request php Read Server API ( SAPI) - mod_php ( Apache 2) - FastCGI ( Lighttpd, Nginx ) - php-fpm ( Lighttpd, Nginx )
  • 10.
    APC - AlternativePHP Cache Output Compile Execute Anatomia unui request php Read Parsarea - Se parcurge codul sursa si se genereaza o serie de token-uri pentru fiecare cuvant din codul sursa. - Se analizeaza token-urile si se determina structura lor gramaticala. - Se compara structura gramaticala cu cea definita in regulile de sintaxa ale limbajului. Parse Exemplu greseala de sintaxa: PHP Parse error: syntax error, unexpected T_VARIABLE in play.php on line 3
  • 11.
    APC - AlternativePHP Cache Anatomia unui request php <?php $a = 1; $b = 2; $c = $a + $b; echo $c; ?> T_OPEN_TAG :: <?php T_WHITESPACE :: T_VARIABLE :: $a = T_LNUMBER :: 1 T_WHITESPACE :: T_VARIABLE :: $b = T_LNUMBER :: 2 ; T_WHITESPACE :: T_VARIABLE :: $c = T_VARIABLE :: $a + T_VARIABLE :: $b ; T_WHITESPACE :: T_ECHO :: echo T_WHITESPACE :: T_VARIABLE :: $c ; T_WHITESPACE :: T_CLOSE_TAG :: ?> Parsare * Cu ajutorul functiilor PHP token_get_all(<STRING>) si token_name(<INT>)
  • 12.
    APC - AlternativePHP Cache Output Execute Anatomia unui request php Read Compilarea - Se face doar in cazul in care nu exista greseli de sintaxa. - Generarea de bytecode ( numit opcode ) pe baza codului sursa. - Codul opcode este generat de catre Zend Engine - Rularea lui se face tot de catre Zend Engine Exemple de instructiuni opcode intelese de Zend Engine: NOP, ADD, DIV, IS_EQUAL, ASSIGN_ADD, CAST .... Lista completa: http://www.php.net/manual/en/internals2.opcodes.list.php Parse Compile
  • 13.
    APC - AlternativePHP Cache Output Execute Anatomia unui request php Read Parse Compile Finding entry points Branch analysis from position: 0 Return found filename: /media/projects/play/public/play.php function name: (null) number of ops: 6 compiled vars: !0 = $a, !1 = $b, !2 = $c line # * op fetch ext return operands --------------------------------------------------------------------------------- 2 0 > ASSIGN !0, 1 3 1 ASSIGN !1, 2 4 2 ADD ~2 !0, !1 3 ASSIGN !2, ~2 5 4 ECHO !2 7 5 > RETURN 1 branch: # 0; line: 2- 7; sop: 0; eop: 5 OPCODE play.php * Cu ajutorul extensiei PHP Vulcan Logic Disassembler (VLD)
  • 14.
    APC - AlternativePHP Cache Output Execute Anatomia unui request php Read Parse Compile Pentru fiecare fisier cod sursa php dintr-un proiect web se efectueaza parsarea si compilarea lui la fiecare cerere catre serverul web. Pe masinile de productie codul sursa al fisierelor se modifica foarte rar . Cum se poate imbunatatii timpul de executie ...
  • 15.
    APC - AlternativePHP Cache Read Output Parse Compile Execute play.php Cache opcode PHP
  • 16.
    APC - AlternativePHP Cache A lternative P HP C ache ( APC ) Este o extensie pentru php care realizeaza cache pentru codul intern al lui Zend Engine si anume opcode . Cachul este tinut in RAM. Instalarea se face cu ajutorul PECL pecl install apc Se configureaza cu ajutorul fisierului php.ini Se doreste introducerea extensiei in Core incepand cu PHP 6. Extensia ofera un set de functii pentru manevrarea cache-ului. Este dezvoltata de comunitatea php.net