Soumettre la recherche
Mettre en ligne
PHP Performance SfLive 2010
•
Télécharger en tant que ODP, PDF
•
11 j'aime
•
8,286 vues
De Cock Xavier
Suivre
Php performance presentation on symfony live
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 21
Télécharger maintenant
Recommandé
I, For One, Welcome Our New Perl6 Overlords
I, For One, Welcome Our New Perl6 Overlords
heumann
Yapcasia2011 - Hello Embed Perl
Yapcasia2011 - Hello Embed Perl
Hideaki Ohno
Nigel hamilton-megameet-2013
Nigel hamilton-megameet-2013
trexy
2016年のPerl (Long version)
2016年のPerl (Long version)
charsbar
Mona cheatsheet
Mona cheatsheet
Ce.Se.N.A. Security
Exploit techniques - a quick review
Exploit techniques - a quick review
Ce.Se.N.A. Security
Hachiojipm11
Hachiojipm11
Hideaki Ohno
OSDC.TW - Gutscript for PHP haters
OSDC.TW - Gutscript for PHP haters
Lin Yo-An
Recommandé
I, For One, Welcome Our New Perl6 Overlords
I, For One, Welcome Our New Perl6 Overlords
heumann
Yapcasia2011 - Hello Embed Perl
Yapcasia2011 - Hello Embed Perl
Hideaki Ohno
Nigel hamilton-megameet-2013
Nigel hamilton-megameet-2013
trexy
2016年のPerl (Long version)
2016年のPerl (Long version)
charsbar
Mona cheatsheet
Mona cheatsheet
Ce.Se.N.A. Security
Exploit techniques - a quick review
Exploit techniques - a quick review
Ce.Se.N.A. Security
Hachiojipm11
Hachiojipm11
Hideaki Ohno
OSDC.TW - Gutscript for PHP haters
OSDC.TW - Gutscript for PHP haters
Lin Yo-An
PHP Tips for certification - OdW13
PHP Tips for certification - OdW13
julien pauli
Working with databases in Perl
Working with databases in Perl
Laurent Dami
Perl.Hacks.On.Vim
Perl.Hacks.On.Vim
Lin Yo-An
Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8
Nikita Popov
Anatomy of a PHP Request ( UTOSC 2010 )
Anatomy of a PHP Request ( UTOSC 2010 )
Joseph Scott
SPL, not a bridge too far
SPL, not a bridge too far
Michelangelo van Dam
What's new in PHP 8.0?
What's new in PHP 8.0?
Nikita Popov
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 code
charsbar
Good Evils In Perl
Good Evils In Perl
Kang-min Liu
Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015
Lin Yo-An
Zend Certification Preparation Tutorial
Zend Certification Preparation Tutorial
Lorna Mitchell
Preparing for the next PHP version (5.6)
Preparing for the next PHP version (5.6)
Damien Seguy
Damien seguy php 5.6
Damien seguy php 5.6
Damien Seguy
Looping the Loop with SPL Iterators
Looping the Loop with SPL Iterators
Mark Baker
Findbin libs
Findbin libs
Workhorse Computing
Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)
Nikita Popov
Metadata-driven Testing
Metadata-driven Testing
Workhorse Computing
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
julien pauli
PHP5.5 is Here
PHP5.5 is Here
julien pauli
PHP Internals and Virtual Machine
PHP Internals and Virtual Machine
julien pauli
2010 Smith Scripting101
2010 Smith Scripting101
bokonen
Contenu connexe
Tendances
PHP Tips for certification - OdW13
PHP Tips for certification - OdW13
julien pauli
Working with databases in Perl
Working with databases in Perl
Laurent Dami
Perl.Hacks.On.Vim
Perl.Hacks.On.Vim
Lin Yo-An
Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8
Nikita Popov
Anatomy of a PHP Request ( UTOSC 2010 )
Anatomy of a PHP Request ( UTOSC 2010 )
Joseph Scott
SPL, not a bridge too far
SPL, not a bridge too far
Michelangelo van Dam
What's new in PHP 8.0?
What's new in PHP 8.0?
Nikita Popov
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 code
charsbar
Good Evils In Perl
Good Evils In Perl
Kang-min Liu
Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015
Lin Yo-An
Zend Certification Preparation Tutorial
Zend Certification Preparation Tutorial
Lorna Mitchell
Preparing for the next PHP version (5.6)
Preparing for the next PHP version (5.6)
Damien Seguy
Damien seguy php 5.6
Damien seguy php 5.6
Damien Seguy
Looping the Loop with SPL Iterators
Looping the Loop with SPL Iterators
Mark Baker
Findbin libs
Findbin libs
Workhorse Computing
Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)
Nikita Popov
Metadata-driven Testing
Metadata-driven Testing
Workhorse Computing
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
julien pauli
PHP5.5 is Here
PHP5.5 is Here
julien pauli
Tendances
(20)
PHP Tips for certification - OdW13
PHP Tips for certification - OdW13
Working with databases in Perl
Working with databases in Perl
Perl.Hacks.On.Vim
Perl.Hacks.On.Vim
Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8
Anatomy of a PHP Request ( UTOSC 2010 )
Anatomy of a PHP Request ( UTOSC 2010 )
SPL, not a bridge too far
SPL, not a bridge too far
What's new in PHP 8.0?
What's new in PHP 8.0?
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 code
Good Evils In Perl
Good Evils In Perl
Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015
Zend Certification Preparation Tutorial
Zend Certification Preparation Tutorial
Preparing for the next PHP version (5.6)
Preparing for the next PHP version (5.6)
Damien seguy php 5.6
Damien seguy php 5.6
Looping the Loop with SPL Iterators
Looping the Loop with SPL Iterators
Findbin libs
Findbin libs
Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)
Metadata-driven Testing
Metadata-driven Testing
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
PHP5.5 is Here
PHP5.5 is Here
Similaire à PHP Performance SfLive 2010
PHP Internals and Virtual Machine
PHP Internals and Virtual Machine
julien pauli
2010 Smith Scripting101
2010 Smith Scripting101
bokonen
Quick tour of PHP from inside
Quick tour of PHP from inside
julien pauli
PHP in 2018 - Q4 - AFUP Limoges
PHP in 2018 - Q4 - AFUP Limoges
✅ William Pinaud
Being functional in PHP (PHPDay Italy 2016)
Being functional in PHP (PHPDay Italy 2016)
David de Boer
Perl Moderno
Perl Moderno
Tiago Peczenyj
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)
Kang-min Liu
Php 7 evolution
Php 7 evolution
Félix Gómez López
Why async and functional programming in PHP7 suck and how to get overr it?
Why async and functional programming in PHP7 suck and how to get overr it?
Lucas Witold Adamus
Whatsnew in-perl
Whatsnew in-perl
daoswald
OPL best practices - Doing more with less easier
OPL best practices - Doing more with less easier
Alex Fleischer
Debugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 Version
Ian Barber
ES6 Simplified
ES6 Simplified
Carlos Ble
Writing Maintainable Perl
Writing Maintainable Perl
tinypigdotcom
More than syntax
More than syntax
Wooga
DevOps in PHP environment
DevOps in PHP environment
Evaldo Felipe
JavaScript for PHP developers
JavaScript for PHP developers
Stoyan Stefanov
Introduction to Assembly Language
Introduction to Assembly Language
Motaz Saad
Modern Perl
Modern Perl
Marcos Rebelo
Being functional in PHP
Being functional in PHP
David de Boer
Similaire à PHP Performance SfLive 2010
(20)
PHP Internals and Virtual Machine
PHP Internals and Virtual Machine
2010 Smith Scripting101
2010 Smith Scripting101
Quick tour of PHP from inside
Quick tour of PHP from inside
PHP in 2018 - Q4 - AFUP Limoges
PHP in 2018 - Q4 - AFUP Limoges
Being functional in PHP (PHPDay Italy 2016)
Being functional in PHP (PHPDay Italy 2016)
Perl Moderno
Perl Moderno
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)
Php 7 evolution
Php 7 evolution
Why async and functional programming in PHP7 suck and how to get overr it?
Why async and functional programming in PHP7 suck and how to get overr it?
Whatsnew in-perl
Whatsnew in-perl
OPL best practices - Doing more with less easier
OPL best practices - Doing more with less easier
Debugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 Version
ES6 Simplified
ES6 Simplified
Writing Maintainable Perl
Writing Maintainable Perl
More than syntax
More than syntax
DevOps in PHP environment
DevOps in PHP environment
JavaScript for PHP developers
JavaScript for PHP developers
Introduction to Assembly Language
Introduction to Assembly Language
Modern Perl
Modern Perl
Being functional in PHP
Being functional in PHP
Dernier
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
UXDXConf
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
Stefano
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
panagenda
ECS 2024 Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
Femke de Vroome
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
GDSC PJATK
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
FIDO Alliance
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
CzechDreamin
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
marcuskenyatta275
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
FIDO Alliance
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
Srushith Repakula
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
FIDO Alliance
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FIDO Alliance
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
中 央社
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
confluent
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
UXDXConf
Overview of Hyperledger Foundation
Overview of Hyperledger Foundation
Hyperleger Tokyo Meetup
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Julian Hyde
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
FIDO Alliance
Dernier
(20)
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
ECS 2024 Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
Overview of Hyperledger Foundation
Overview of Hyperledger Foundation
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
PHP Performance SfLive 2010
1.
PHP Performances De
Cock Xavier
2.
3.
4.
5.
6.
Extensions providing functionalities
7.
8.
Source code compilation
to Opcode
9.
Opcode Handling
10.
Memory management
11.
12.
13.
Automatic type conversion
14.
Automatic garbage collection
when ref_count is 0
15.
As of PHP
5.3 Cyclic garbage collector
16.
Zval Examples <?php
$a = 41 ; /* Context ("a" => Zval_1); * Zval_1 {ref_count:1, value:41, type:LONG}; */ $b = $a ; /* Context ("a" => Zval_1, "b" => Zval_1); * Zval_1 {ref_count:2, value:41, type:LONG}; */ $b ++ ; /* Context ("a"=> Zval_1, "b" => Zval_2); * Zval_1 {ref_count:1, value:41, type:LONG}; * Zval_2 {ref_count:1, value:42, type:LONG}; */ $b .= ", The answer ..." ; /* Context ("a"=> Zval_1, "b" => Zval_3); * Zval_1 {ref_count:1, value:41, type:LONG}; * Zval_2 {ref_count:0, value:42, type:LONG}; // Freed * Zval_3 {ref_count:1, value:"42, The answer ...", type:STRING}; */
17.
18.
19.
20.
Op1
21.
Op2
22.
Metas (line n°,
handler, result, ...)
23.
Opcode examples <?php
echo "Hello", " ", "World"; filename: /home/xavier/- function name: (null) number of ops: 5 compiled vars: none line # op operands --------------------------------------------- 2 0 ECHO OP1[ 'Hello' ] 1 ECHO OP1[ ' ' ] 2 ECHO OP1[ 'World' ] 4 3 RETURN OP1[ 1 ] 4* ZEND_HANDLE_EXCEPTION
24.
Opcode examples <?php
echo "Hello"." "."World"; filename: /home/xavier/- function name: (null) number of ops: 5 compiled vars: none line # op return operands --------------------------------------- 2 0 CONCAT RES[ ~0 ] OP1[ 'Hello' ] OP2[ '+' ] 1 CONCAT RES[ ~1 ] OP1[ ~0 ] OP2[ 'World' ] 2 ECHO OP1[ ~1 ] 3 3 RETURN OP1[ 1 ] 4* ZEND_HANDLE_EXCEPTION
25.
26.
Arrays
27.
Object Properties
28.
Ini Directives, included
Files
29.
Classes, Functions, Constants
30.
31.
32.
33.
34.
Break them before
unset
35.
36.
SwiftMailer Examples Implementation
1 foreach ( unpack ('C*' , $bytes ) as $byte ) // Convert String to int array { $this -> _array [] = pack ('C' , $byte ); // Function Call in tight loop } filename: /home/xavier/Bureau/php-5.3.1/ext/- function name: (null) number of ops: 17 compiled vars: !0 = $bytes, !1 = $byte line # op return operands ----------------------------------------------- 2 0 SEND_VAL OP1[ 'C*' ] 1 SEND_VAR OP1[ !0 ] 2 DO_FCALL OP1[ 'unpack' ] 3 FE_RESET RES[ $1 ] OP1[ $0 ] OP2[ ->14 ] 4 FE_FETCH RES[ $2 ] OP1[ $1 ] OP2[ ->14 ] 5 ZEND_OP_DATA RES[ UNUSED ] OP1[ UNUSED ] OP2[ UNUSED ] 6 ASSIGN OP1[ !1 ] OP2[ $2 ] 4 7 SEND_VAL OP1[ 'C' ] 8 SEND_VAR OP1[ !1 ] 9 DO_FCALL OP1[ 'pack' ] 10 FETCH_OBJ_W RES[ $4 ] OP1[ UNUSED ] OP2[ '_array' ] 11 ZEND_ASSIGN_DIM OP1[ $4 ] OP2[ UNUSED ] 12 ZEND_OP_DATA RES[ UNUSED ] OP1[ $6 ] OP2[ $7 ] 5 13 JMP OP1[ ->4 ] 14 SWITCH_FREE RES[ UNUSED ] OP1[ $1 ] 6 15 RETURN OP1[ 1 ] 16* ZEND_HANDLE_EXCEPTION
37.
SwiftMailer Examples Implementation
2 $to_add = str_split ( $bytes ); // Convert string to char array /* add the array as first arg of the function */ array_unshift ( $to_add , & $this -> _array ); // Will trigger E_STRICT /* Push all elements in one function call and get the count */ $this -> _arraySize = call_user_func_array ('array_push' , $to_add ); compiled vars: !0 = $to_add, !1 = $bytes line # op return operands -------------------------------------------------------------------------- 2 0 SEND_VAR OP1[ !1 ] 1 DO_FCALL OP1[ 'str_split' ] 2 ASSIGN OP1[ !0 ] OP2[ $0 ] 4 3 SEND_REF RES[ UNUSED ] OP1[ !0 ] OP2[ UNUSED ] 4 FETCH_OBJ_W RES[ $2 ] OP1[ UNUSED ] OP2[ '_array' ] 5 SEND_REF RES[ UNUSED ] OP1[ $2 ] OP2[ UNUSED ] 6 DO_FCALL OP1[ 'array_unshift' ] 6 7 SEND_VAL OP1[ 'array_push' ] 8 SEND_VAR OP1[ !0 ] 9 DO_FCALL OP1[ 'call_user_func_array' ] 10 ZEND_ASSIGN_OBJ OP1[ UNUSED ] OP2[ '_arraySize' ] 11 ZEND_OP_DATA RES[ UNUSED ] OP1[ $5 ] OP2[ UNUSED ] 7 12 RETURN OP1[ 1 ] 13* ZEND_HANDLE_EXCEPTION
38.
SwiftMailer Examples Implementation
3 $to_add = str_split ( $bytes ); // Convert string to char array /* Calls array Merge */ /* Array merge works by copying the first array element By element, then the second, third, … The speed decreases with the number of items in each array */ $this -> _array = array_merge ( $this -> _array , $to_add ); $this -> _arraySize = count ( $this -> _array ); compiled vars: !0 = $to_add, !1 = $bytes line # op return operands ------------------------------------------------------------------------------- 2 0 SEND_VAR OP1[ !1 ] 1 DO_FCALL OP1[ 'str_split' ] 2 ASSIGN OP1[ !0 ] OP2[ $0 ] 7 3 FETCH_OBJ_R RES[ $3 ] OP1[ UNUSED ] OP2[ '_array' ] 4 SEND_VAR OP1[ $3 ] 5 SEND_VAR OP1[ !0 ] 6 DO_FCALL OP1[ 'array_merge' ] 7 ZEND_ASSIGN_OBJ OP1[ UNUSED ] OP2[ '_array' ] 8 ZEND_OP_DATA RES[ UNUSED ] OP1[ $4 ] OP2[ UNUSED ] 8 9 FETCH_OBJ_R RES[ $6 ] OP1[ UNUSED ] OP2[ '_array' ] 10 SEND_VAR OP1[ $6 ] 11 DO_FCALL OP1[ 'count' ] 12 ZEND_ASSIGN_OBJ OP1[ UNUSED ] OP2[ '_arraySize' ] 13 ZEND_OP_DATA RES[ UNUSED ] OP1[ $7 ] OP2[ UNUSED ] 10 14 RETURN OP1[ 1 ] 15* ZEND_HANDLE_EXCEPTION
39.
SwiftMailer Examples Implementation
4 $to_add = str_split ( $bytes ); foreach ( $to_add as $value ) { $this -> _array [] = $value ; } $this -> _arraySize = count ( $this -> _array ); compiled vars: !0 = $to_add, !1 = $bytes, !2 = $value line # op return operands -------------------------------------------------------------------------- 1 0 SEND_VAR OP1[ !1 ] 1 DO_FCALL OP1[ 'str_split' ] 2 ASSIGN OP1[ !0 ] OP2[ $0 ] 2 3 FE_RESET RES[ $2 ] OP1[ !0 ] OP2[ ->11 ] 4 FE_FETCH RES[ $3 ] OP1[ $2 ] OP2[ ->11 ] 5 ZEND_OP_DATA RES[ UNUSED ] OP1[ UNUSED ] OP2[ UNUSED ] 6 ASSIGN OP1[ !2 ] OP2[ $3 ] 3 7 FETCH_OBJ_W RES[ $5 ] OP1[ UNUSED ] OP2[ '_array' ] 8 ZEND_ASSIGN_DIM OP1[ $5 ] OP2[ UNUSED ] 9 ZEND_OP_DATA RES[ UNUSED ] OP1[ !2 ] OP2[ $7 ] 4 10 JMP OP1[ ->4 ] 11 SWITCH_FREE RES[ UNUSED ] OP1[ $2 ] 5 12 FETCH_OBJ_R RES[ $9 ] OP1[ UNUSED ] OP2[ '_array' ] 13 SEND_VAR OP1[ $9 ] 14 DO_FCALL OP1[ 'count' ] 15 ZEND_ASSIGN_OBJ OP1[ UNUSED ] OP2[ '_arraySize' ] 16 ZEND_OP_DATA RES[ UNUSED ] OP1[ $10 ] OP2[ UNUSED ] 6 17 RETURN OP1[ 1 ] 18* ZEND_HANDLE_EXCEPTION
40.
41.
42.
Xdebug / Zend
Debug – Profilers
43.
44.
Use Opcode Caching
: APC, eAccelerator, XCache, Zend Server, …
45.
Use data Caching
: Memcached, …
46.
Optimize your SQL
47.
Access your data
by batches
48.
Create PHP Extension
49.
Use other implementations
: Facebook's HipHop, phc, Quercus, RoadSend PHP
50.
Questions? Thanks for
listening
Télécharger maintenant