SlideShare a Scribd company logo
PHP 7, HHVM & CO
#PHPKonf
Istanbul
Pierre Joye
PHP7, hhvm & co
Pierre Joye
@pierrejoye
pierre@php.net
http://www.slideshare.net/pierrej
PHP Core developer
Contributors to numerous OSS projects
Portability fan
PHP7, hhvm & co
Stats
PHP7, hhvm & co
Awesome new extension installer
https://github.com/FriendsOfPHP/pickle
PHP7, hhvm & co
What‘s going in the php world?
https://wiki.php.net/rfc/isset_ternary
PHP7, hhvm & co
PHP 5.3
2009 - 2014
PHP7, hhvm & co
PHP 5.4 and 5.5
Security fixes only
PHP7, hhvm & co
PHP 5.4
2012 - 2015
PHP7, hhvm & co
PHP 5.5
2013 - 2016
PHP7, hhvm & co
PHP 5.6.11 is out!
PHP7, hhvm & co
5 + 1 = 7
PHP7, hhvm & co
6.6.6
PHP7, hhvm & co
PHP 7.0.0beta2 yesterday!
PHP7, hhvm & co
PHP 7.0 – Future is now
PHP7, hhvm & co
PHP 7.0 – speed++
PHP7, hhvm & co
LIES, DAMN LIES AND BENCHMARKS
PHP7, hhvm & co
PHP7, hhvm & co
PHP7, hhvm & co
Features
• Rewamped Engine
• True 64bit support
• Large string and LFS (Large file support)
• Consistent variables syntax
• Error exception instead of fatal error
• Scalar type declarations
• Zero cost asserts
PHP7, hhvm & co
Features
• Secure RNG
• PHP4 constructors deprecated
• JIT enabled PCRE
• Removed ext/mysql, ext/ereg and more
• New ?? Operator
• New JSON parser
• Many other features, a lot already target 7.1
PHP7, hhvm & co
Error exception instead of fatal error
PHP7, hhvm & co
Error exception
https://wiki.php.net/rfc/catchable-call-to-member-of-non-object
<?php
try {
$x = null;
var_dump($x->method());
// The exception class name is EngineException
// in alpha1
} catch (Error $e) {
// pass
}
echo "Aliven";
PHP7, hhvm & co
Scalar Type Declarations
PHP7, hhvm & co
Scalar Type Declarations
<?php
declare(strict_types = 1);
function add(int $a, int $b) : int {
return $a + $b;
}
$x = add(1, 2);
// The exception class name TypeException
// in alpha1
$y = add(0.1, 0.2); // TypeError exception
https://wiki.php.net/rfc/scalar_type_hints_v5
PHP7, hhvm & co
Null Coalesce Operator (??)
PHP7, hhvm & co
Null Coalesce Operator (??)
<?php
$username = $_GET['user'] ?? 'nobody';
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
// Method/function call
$model = Model::get($id) ?? $default_model;
if (($model = Model::get($id)) === NULL) { $model =
$default_model; }
// Chained
$x = NULL; $y = NULL; $z = 3; var_dump($x ?? $y ?? $z);
https://wiki.php.net/rfc/isset_ternary
PHP7, hhvm & co
PHP Language Specification
https://github.com/php/php-langspec
PHP7, hhvm & co
Open & Public Specifications
Competions++
PHP7, hhvm & co
PHP7, hhvm & co
PHP7, hhvm & co
(Most) Focus on Speed
PHP7, hhvm & co
PHP7, hhvm & co
SPEED is NOT SCALE
PHP7, hhvm & co
SPEED is UX
PHP7, hhvm & co
Scale is Server Side
Architecture (Apps, Ops, Net, …)
PHP7, hhvm & co
My code sucks.
PHP7, hhvm & co
Yours too.
PHP7, hhvm & co
Steroids++
PHP7, hhvm & co
So?
PHP7, hhvm & co
PHP7, hhvm & co
PHP7, hhvm & co
QB
<?php
class OilPaintFilter {
/** @var int32 */ public $levels = 25;
/** @var int32 */ public $filterSize = 5;
/** * @engine qb
*
* @param image $dst
* @param image $src
*
* @local float32[*][r,g,b,a] $bin
* @local float32 $max_intensity
* @local int32 $(current_index|max_index)
* @local int32 $(filter_x|filter_y|filter_offset)
* @local int32 $(x|y|x_limit|y_limit)
* @local int32 $(width|height)
* @local float32[r,g,b,a] $pixel
* @local float32 $multiplier */
public function filter(&$dst, $src) {…
PHP7, hhvm & co
QB
<?php
function calc($n, &$a) {
$b = 18;
while($n) {
$a = $b * $b * $b * $b;
$n--;
}
}
$n = 5000000;
$a = 0;
calc($n, $a); $end = microtime(true);
PHP7, hhvm & co
QB
Source: http://php-qb.net/index.php/2-uncategorised/27-comparing-performance-in-qb-with-hhvm
See http://benchmarksgame.alioth.debian.org/u32/performance.php?test=spectralnorm or other
PHP7, hhvm & co
Zephir
PHP7, hhvm & co
Zephir
Optimization & code generation
Compilation + optimization
Native execution
PHP7, hhvm & co
Zephir
namespace MyLibrary;
class Filter {
public function alpha(string str) {
char ch;
string filtered = "";
for ch in str {
if (ch >= 'a' && ch <= 'z') || (ch >=
'A' && ch <= 'Z') {
let filtered .= ch;
}
}
return filtered;
}
}
PHP7, hhvm & co
Zephir
<?php
$filter = new MyLibraryFilter();
echo $filter>alpha("01he#l.lo?/1");
PHP7, hhvm & co
PHP Alternative Implementations
PHP7, hhvm & co
PHP Alternative Implementations
• HHVM (native code)
• Recki-ct (native code)
• Phalanger (.net engine)
PHP7, hhvm & co
PHP7, hhvm & co
HHVM
PHP Cache
Parser (AST in 7+)
HHVM Opcodes
Native Code
JIT ~
Cache
PHP7, hhvm & co
PHP7, hhvm & co
PHP
PHP Cache
Parser (AST in 7+)
OpCodes
PHP7, hhvm & co
Recki-ct
PHP7, hhvm & co
Recki-CT
PHP Cache
Parser (AST in 7+)
Recki IR
JIT~
Native Code
PHP7, hhvm & co
Recki-ct
php 5.5 Recki-CT hhvm 3.2 hippy-c qb
simple() 139.63357 1.00000 8.30447 7.65693 8.35018
simplecall() 38.99476 FAIL 1.32552 1.00000 FAIL
simpleucall() 54.02041 1.00000 3.52439 1.51072 47.91090
simpleudcall
()
52.14534 1.00000 3.75936 1.41614 47.55259
mandel() 21.26249 1.00000 2.03372 2.11208 FAIL
mandel_typ
ed()
23.16553 1.00000 2.11128 2.09212 3.00061
mandel2() 24.43275 1.00000 2.57704 1.87802 FAIL
mandel2_ty
ped()
23.79989 1.00000 2.90105 1.57193 7.11054
PHP7, hhvm & co
Recki-ct
php 5.5 Recki-CT hhvm 3.2 hippy-c qb
ary(50000) 1.39338 FAIL 1.00000 4.47888 FAIL
ary2(50000) 1.26952 FAIL 1.00000 2.28231 FAIL
ary3(2000) 5.96015 FAIL 1.70997 1.00000 FAIL
fibo(30) 39.48440 1.00000 1.60647 16.40883 FAIL
hash1(50000) 1.70014 FAIL 1.00000 3.27314 FAIL
hash2(500) 2.23648 FAIL 1.00000 1.30044 FAIL
heapsort(2000
0)
3.67800 FAIL 1.00000 4.96699 FAIL
PHP7, hhvm & co
Resources
• http://wiki.php.net/rfc/
• http://zephir-lang.com/
• http://www.slideshare.net/ircmaxell/high-
performance-php-phpnw
• http://talks.php.net/fluent15#/
• https://github.com/google/recki-ct
• http://blog.ircmaxell.com/2014/08/introducing-
recki-ct.html
• https://github.com/chung-
leong/qb/wiki/Introduction
PHP7, hhvm & co
Resources
• https://edit.php.net/
• https://wiki.php.net/rfc/phpng
• https://wiki.php.net/rfc/abstract_syntax_tree
• http://hhvm.com/blog/6323/the-journey-of-a-
thousand-bytecodes
• https://github.com/php/php-
src/blob/master/UPGRADING
• https://github.com/php/php-
src/blob/master/UPGRADING.INTERNALS
PHP7, hhvm & co
Resources
• http://phpdbg.com/
• http://windows.php.net/qa/
• http://qa.php.net/
• http://ongr.io
• http://aka.ms/AzureCodeManiac2015

More Related Content

PPTX
Php 7 hhvm and co
PDF
Debugging PHP with Xdebug - PHPUK 2018
PPT
rtwerewr
PDF
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
PPTX
Php’s guts
ODP
The why and how of moving to php 5.4
PDF
A History of PHP
PPTX
PHP 5.6 New and Deprecated Features
Php 7 hhvm and co
Debugging PHP with Xdebug - PHPUK 2018
rtwerewr
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Php’s guts
The why and how of moving to php 5.4
A History of PHP
PHP 5.6 New and Deprecated Features

What's hot (20)

PDF
Key features PHP 5.3 - 5.6
ODP
The why and how of moving to PHP 5.4/5.5
ODP
Php in 2013 (Web-5 2013 conference)
PPTX
Php internal architecture
PDF
How to inspect a RUNNING perl process
PPTX
Php7 HHVM and co
PPTX
Modern Perl for the Unfrozen Paleolithic Perl Programmer
ODP
The why and how of moving to PHP 5.5/5.6
PDF
How to deploy node to production
PPT
Hacking with hhvm
ODP
Caching and tuning fun for high scalability @ FrOSCon 2011
PPTX
PSGI and Plack from first principles
PDF
Zend con 2016 - Asynchronous Prorgamming in PHP
PDF
Preparing code for Php 7 workshop
PPTX
Socket programming with php
KEY
Kansai.pm 10周年記念 Plack/PSGI 入門
PDF
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)
ODP
The why and how of moving to php 5.4/5.5
PPTX
Zephir - A Wind of Change for writing PHP extensions
PDF
Pycon - Python for ethical hackers
Key features PHP 5.3 - 5.6
The why and how of moving to PHP 5.4/5.5
Php in 2013 (Web-5 2013 conference)
Php internal architecture
How to inspect a RUNNING perl process
Php7 HHVM and co
Modern Perl for the Unfrozen Paleolithic Perl Programmer
The why and how of moving to PHP 5.5/5.6
How to deploy node to production
Hacking with hhvm
Caching and tuning fun for high scalability @ FrOSCon 2011
PSGI and Plack from first principles
Zend con 2016 - Asynchronous Prorgamming in PHP
Preparing code for Php 7 workshop
Socket programming with php
Kansai.pm 10周年記念 Plack/PSGI 入門
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)
The why and how of moving to php 5.4/5.5
Zephir - A Wind of Change for writing PHP extensions
Pycon - Python for ethical hackers
Ad

Similar to Php7 hhvm and co (20)

PDF
What To Expect From PHP7
PDF
[4developers2016] PHP 7 (Michał Pipa)
PDF
What's new with PHP7
PDF
The new features of PHP 7 - Enrico Zimuel - Codemotion Milan 2016
PDF
The new features of PHP 7
KEY
GettingStartedWithPHP
PDF
Giới thiệu PHP 7
PDF
Introduction to PHP - Basics of PHP
PPT
Php mysql training-in-mumbai
PDF
Php 7 compliance workshop singapore
PDF
Wt unit 4 server side technology-2
PDF
Living With Legacy Code
PDF
CodePolitan Webinar: The Rise of PHP
PPTX
Unit 5-PHP Declaring variables, data types, array, string, operators, Expres...
ODP
PHP: The easiest language to learn.
PPTX
Peek at PHP 7
PDF
Introduction to PHP
PPTX
Php.ppt
PPT
Php i basic chapter 3 (syahir chaer's conflicted copy 2013-04-22)
PPT
Php i basic chapter 3 (afifah rosli's conflicted copy 2013-04-23)
What To Expect From PHP7
[4developers2016] PHP 7 (Michał Pipa)
What's new with PHP7
The new features of PHP 7 - Enrico Zimuel - Codemotion Milan 2016
The new features of PHP 7
GettingStartedWithPHP
Giới thiệu PHP 7
Introduction to PHP - Basics of PHP
Php mysql training-in-mumbai
Php 7 compliance workshop singapore
Wt unit 4 server side technology-2
Living With Legacy Code
CodePolitan Webinar: The Rise of PHP
Unit 5-PHP Declaring variables, data types, array, string, operators, Expres...
PHP: The easiest language to learn.
Peek at PHP 7
Introduction to PHP
Php.ppt
Php i basic chapter 3 (syahir chaer's conflicted copy 2013-04-22)
Php i basic chapter 3 (afifah rosli's conflicted copy 2013-04-23)
Ad

More from Pierre Joye (17)

PPTX
Php 7.x 8.0 and hhvm and
PPTX
Extending php (7), the basics
PPTX
Php core. get rid of bugs and contribute
PPTX
Webdevcon Keynote hh-2012-09-18
PPTX
Devcon hh-2012
PPTX
Short Intro talk to IPC/Berlin 2012
PPTX
Intro ipcberlin2012
PPTX
Webdevcon pierrejoye-php54-and-other
PPTX
Php symfony and software lifecycle
PPTX
Mongodb - drupal dev days
PPTX
Webplatform And Php
PPTX
Keynote, PHP World Kongress Munich
PPTX
Php On Windows
PPTX
Php On Windows Internals
PPTX
Test Fest 2009
PPT
PHP Worl Kongress Munich
PPT
Developing PHP internals on Windows
Php 7.x 8.0 and hhvm and
Extending php (7), the basics
Php core. get rid of bugs and contribute
Webdevcon Keynote hh-2012-09-18
Devcon hh-2012
Short Intro talk to IPC/Berlin 2012
Intro ipcberlin2012
Webdevcon pierrejoye-php54-and-other
Php symfony and software lifecycle
Mongodb - drupal dev days
Webplatform And Php
Keynote, PHP World Kongress Munich
Php On Windows
Php On Windows Internals
Test Fest 2009
PHP Worl Kongress Munich
Developing PHP internals on Windows

Recently uploaded (20)

PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Spectroscopy.pptx food analysis technology
PDF
Encapsulation theory and applications.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Programs and apps: productivity, graphics, security and other tools
Building Integrated photovoltaic BIPV_UPV.pdf
MIND Revenue Release Quarter 2 2025 Press Release
The AUB Centre for AI in Media Proposal.docx
20250228 LYD VKU AI Blended-Learning.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Empathic Computing: Creating Shared Understanding
Machine learning based COVID-19 study performance prediction
Spectroscopy.pptx food analysis technology
Encapsulation theory and applications.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Unlocking AI with Model Context Protocol (MCP)
Dropbox Q2 2025 Financial Results & Investor Presentation
Network Security Unit 5.pdf for BCA BBA.
Advanced methodologies resolving dimensionality complications for autism neur...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Php7 hhvm and co

  • 1. PHP 7, HHVM & CO #PHPKonf Istanbul Pierre Joye
  • 2. PHP7, hhvm & co Pierre Joye @pierrejoye pierre@php.net http://www.slideshare.net/pierrej PHP Core developer Contributors to numerous OSS projects Portability fan
  • 3. PHP7, hhvm & co Stats
  • 4. PHP7, hhvm & co Awesome new extension installer https://github.com/FriendsOfPHP/pickle
  • 5. PHP7, hhvm & co What‘s going in the php world? https://wiki.php.net/rfc/isset_ternary
  • 6. PHP7, hhvm & co PHP 5.3 2009 - 2014
  • 7. PHP7, hhvm & co PHP 5.4 and 5.5 Security fixes only
  • 8. PHP7, hhvm & co PHP 5.4 2012 - 2015
  • 9. PHP7, hhvm & co PHP 5.5 2013 - 2016
  • 10. PHP7, hhvm & co PHP 5.6.11 is out!
  • 11. PHP7, hhvm & co 5 + 1 = 7
  • 12. PHP7, hhvm & co 6.6.6
  • 13. PHP7, hhvm & co PHP 7.0.0beta2 yesterday!
  • 14. PHP7, hhvm & co PHP 7.0 – Future is now
  • 15. PHP7, hhvm & co PHP 7.0 – speed++
  • 16. PHP7, hhvm & co LIES, DAMN LIES AND BENCHMARKS
  • 19. PHP7, hhvm & co Features • Rewamped Engine • True 64bit support • Large string and LFS (Large file support) • Consistent variables syntax • Error exception instead of fatal error • Scalar type declarations • Zero cost asserts
  • 20. PHP7, hhvm & co Features • Secure RNG • PHP4 constructors deprecated • JIT enabled PCRE • Removed ext/mysql, ext/ereg and more • New ?? Operator • New JSON parser • Many other features, a lot already target 7.1
  • 21. PHP7, hhvm & co Error exception instead of fatal error
  • 22. PHP7, hhvm & co Error exception https://wiki.php.net/rfc/catchable-call-to-member-of-non-object <?php try { $x = null; var_dump($x->method()); // The exception class name is EngineException // in alpha1 } catch (Error $e) { // pass } echo "Aliven";
  • 23. PHP7, hhvm & co Scalar Type Declarations
  • 24. PHP7, hhvm & co Scalar Type Declarations <?php declare(strict_types = 1); function add(int $a, int $b) : int { return $a + $b; } $x = add(1, 2); // The exception class name TypeException // in alpha1 $y = add(0.1, 0.2); // TypeError exception https://wiki.php.net/rfc/scalar_type_hints_v5
  • 25. PHP7, hhvm & co Null Coalesce Operator (??)
  • 26. PHP7, hhvm & co Null Coalesce Operator (??) <?php $username = $_GET['user'] ?? 'nobody'; $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; // Method/function call $model = Model::get($id) ?? $default_model; if (($model = Model::get($id)) === NULL) { $model = $default_model; } // Chained $x = NULL; $y = NULL; $z = 3; var_dump($x ?? $y ?? $z); https://wiki.php.net/rfc/isset_ternary
  • 27. PHP7, hhvm & co PHP Language Specification https://github.com/php/php-langspec
  • 28. PHP7, hhvm & co Open & Public Specifications Competions++
  • 31. PHP7, hhvm & co (Most) Focus on Speed
  • 33. PHP7, hhvm & co SPEED is NOT SCALE
  • 34. PHP7, hhvm & co SPEED is UX
  • 35. PHP7, hhvm & co Scale is Server Side Architecture (Apps, Ops, Net, …)
  • 36. PHP7, hhvm & co My code sucks.
  • 37. PHP7, hhvm & co Yours too.
  • 38. PHP7, hhvm & co Steroids++
  • 39. PHP7, hhvm & co So?
  • 42. PHP7, hhvm & co QB <?php class OilPaintFilter { /** @var int32 */ public $levels = 25; /** @var int32 */ public $filterSize = 5; /** * @engine qb * * @param image $dst * @param image $src * * @local float32[*][r,g,b,a] $bin * @local float32 $max_intensity * @local int32 $(current_index|max_index) * @local int32 $(filter_x|filter_y|filter_offset) * @local int32 $(x|y|x_limit|y_limit) * @local int32 $(width|height) * @local float32[r,g,b,a] $pixel * @local float32 $multiplier */ public function filter(&$dst, $src) {…
  • 43. PHP7, hhvm & co QB <?php function calc($n, &$a) { $b = 18; while($n) { $a = $b * $b * $b * $b; $n--; } } $n = 5000000; $a = 0; calc($n, $a); $end = microtime(true);
  • 44. PHP7, hhvm & co QB Source: http://php-qb.net/index.php/2-uncategorised/27-comparing-performance-in-qb-with-hhvm See http://benchmarksgame.alioth.debian.org/u32/performance.php?test=spectralnorm or other
  • 45. PHP7, hhvm & co Zephir
  • 46. PHP7, hhvm & co Zephir Optimization & code generation Compilation + optimization Native execution
  • 47. PHP7, hhvm & co Zephir namespace MyLibrary; class Filter { public function alpha(string str) { char ch; string filtered = ""; for ch in str { if (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') { let filtered .= ch; } } return filtered; } }
  • 48. PHP7, hhvm & co Zephir <?php $filter = new MyLibraryFilter(); echo $filter>alpha("01he#l.lo?/1");
  • 49. PHP7, hhvm & co PHP Alternative Implementations
  • 50. PHP7, hhvm & co PHP Alternative Implementations • HHVM (native code) • Recki-ct (native code) • Phalanger (.net engine)
  • 52. PHP7, hhvm & co HHVM PHP Cache Parser (AST in 7+) HHVM Opcodes Native Code JIT ~ Cache
  • 54. PHP7, hhvm & co PHP PHP Cache Parser (AST in 7+) OpCodes
  • 55. PHP7, hhvm & co Recki-ct
  • 56. PHP7, hhvm & co Recki-CT PHP Cache Parser (AST in 7+) Recki IR JIT~ Native Code
  • 57. PHP7, hhvm & co Recki-ct php 5.5 Recki-CT hhvm 3.2 hippy-c qb simple() 139.63357 1.00000 8.30447 7.65693 8.35018 simplecall() 38.99476 FAIL 1.32552 1.00000 FAIL simpleucall() 54.02041 1.00000 3.52439 1.51072 47.91090 simpleudcall () 52.14534 1.00000 3.75936 1.41614 47.55259 mandel() 21.26249 1.00000 2.03372 2.11208 FAIL mandel_typ ed() 23.16553 1.00000 2.11128 2.09212 3.00061 mandel2() 24.43275 1.00000 2.57704 1.87802 FAIL mandel2_ty ped() 23.79989 1.00000 2.90105 1.57193 7.11054
  • 58. PHP7, hhvm & co Recki-ct php 5.5 Recki-CT hhvm 3.2 hippy-c qb ary(50000) 1.39338 FAIL 1.00000 4.47888 FAIL ary2(50000) 1.26952 FAIL 1.00000 2.28231 FAIL ary3(2000) 5.96015 FAIL 1.70997 1.00000 FAIL fibo(30) 39.48440 1.00000 1.60647 16.40883 FAIL hash1(50000) 1.70014 FAIL 1.00000 3.27314 FAIL hash2(500) 2.23648 FAIL 1.00000 1.30044 FAIL heapsort(2000 0) 3.67800 FAIL 1.00000 4.96699 FAIL
  • 59. PHP7, hhvm & co Resources • http://wiki.php.net/rfc/ • http://zephir-lang.com/ • http://www.slideshare.net/ircmaxell/high- performance-php-phpnw • http://talks.php.net/fluent15#/ • https://github.com/google/recki-ct • http://blog.ircmaxell.com/2014/08/introducing- recki-ct.html • https://github.com/chung- leong/qb/wiki/Introduction
  • 60. PHP7, hhvm & co Resources • https://edit.php.net/ • https://wiki.php.net/rfc/phpng • https://wiki.php.net/rfc/abstract_syntax_tree • http://hhvm.com/blog/6323/the-journey-of-a- thousand-bytecodes • https://github.com/php/php- src/blob/master/UPGRADING • https://github.com/php/php- src/blob/master/UPGRADING.INTERNALS
  • 61. PHP7, hhvm & co Resources • http://phpdbg.com/ • http://windows.php.net/qa/ • http://qa.php.net/ • http://ongr.io • http://aka.ms/AzureCodeManiac2015

Editor's Notes

  • #8: Optimum value engineering
  • #9: September 2015
  • #11: Pomato pap, tomato mom and a small tomato are crossing the road. The tomato pap tells the small tomato – hurry up, catchup. – secret files, not by word citation 
  • #15: Fall 2015 Stabilization RFCs in discussions More optimizatons coming
  • #16: Fall 2015 Stabilization RFCs in discussions More optimizatons coming
  • #20: Scalar types – Andrea Faulds, Anthony Ferrara … CSPRNG – Sammy Kaye Powers
  • #22: Fall 2015 Stabilization RFCs in discussions More optimizatons coming
  • #24: Fall 2015 Stabilization RFCs in discussions More optimizatons coming
  • #26: Fall 2015 Stabilization RFCs in discussions More optimizatons coming
  • #33: Yes but…. Speed is not scale Most of you have no scaling problem Your code simply sucks (mines too) Changing languages, servers, platforms do not fix scale issues Fix your code, design and architecture Fast PHP is about scale, not speed.
  • #38: Except Lars‘
  • #40: Except Lars‘
  • #45: Function calls poorly implemented
  • #50: Delivery Man: Morning, Sir, I've got a parrot for Mr "Poy-rot". Hercule Poirot: No no no! Poirot. It is pronounced "Pwa-roe". Delivery Man: I beg your pardon, Governor. I've got a "pwa-roe" for Mr "Poy-rot".