SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Laruence
A BRIEF TO PHP 7.3
NEW FEATURES AND PERFORMANCE
PHP DEVELOPER
SELF INTRODUCTION
• Author of Yaf, Yar, Yac, Yaconf, Taint Projects
• Maintainer of Opcache, Msgpack Projects
• PHP core developer since 2011
• Zend consultant since 2013
• PHP7 core developer
• Chief software architect at Lianjia since 2015
A PROGRAMER
PHP HISTORY
• Created in 1994 by Rasmus Lerdorf
• 20+ years programming language
• Most popular web service program language
• PHP7 is released at 3 Dec 2015
• Latest version is PHP7.2.5
BORN FOR WEB
PHP
ASP.NET
Java
Static files
ColdFusion
Ruby
Perl
JavaScript
Python
Erlang
83.5%
13.4%
2.3%
1.9%
0.6%
0.6%
0.4%
0.4%
0.2%
0.1%
W3Techs.com,1 April 2018
HEREDOC AND NEWDOC
• The Ending token no loner needs to be the first strings of line
• The ending Token can be indented
• the Exact number of spaces/tabs used in the ending token will be striped
function example($arr) {
$out = "";
foreach($arr as $str) {
$out .= <<<DOC
repeat {$str}
DOC;
}
return $arr;
}
function example($arr) {
$out = "";
foreach($arr as $str) {
$out .= <<<DOC
repeat {$str}
DOC;
}
return $arr;
}
TRAILING COMMA IN FUNC CALLS
• Allow trailing comma in function and method calls
• Only one extra comma are allowed
• you can not use this in function/method declarations
func_call(
$argument1,
$argument2,
$argument3,
$argument4,
);
function func_call($num1, $num2, $num3, $num4) {
return $num1 + $num2 + $num3 + $mum4;
}
REFERENCE IN LIST
• Items in list can be assigned by reference
$animal = ['dog', 'cat'];
list($a, &$b) = $animal;
$b = "mokey";
var_dump($animal);
//output:
//array(2) {
// [0]=>
// string(3) "dog"
// [1]=>
// &string(5) "mokey"
//}
$animal = ['dog', 'cat'];
[$a, &$b] = $animal;
$b = "mokey";
var_dump($animal);
//output:
//array(2) {
// [0]=>
// string(3) "dog"
// [1]=>
// &string(5) "mokey"
//}
HRTIME
• Hrtime is a high-resolution monotonic timer
• it doesn’t depends on the system clock
$start = hrtime(true);
//...........
$end = hrtime(true);
$elapsed = $end - $start;
HRTIME
• Hrtime is a high-resolution monotonic timer
• it doesn’t depends on the system clock
$start = hrtime(true);
//...........
$end = hrtime(true);
$elapsed = $end - $start;
MULTIPLY NEW FEATURES & BUGFIX
• Add net_get_interfaces()
• instanceof now allows literals as the first operand
• NEW flag JSON_THROW_ON_ERROR, json_encode/decode could throw exception instead warning now
• Added is_countable() function, to check whether a value may be passed tocount()
• Multiply new methods added in GMP
• https://github.com/php/php-src/blob/master/UPGRADING
FASTER NEW GC
• Composer GC performance problem REsolved
• Multiple bugs fixed in the mean time
FASTER NEW GC
• Removed double link list, plain array instead
• Dynamically resize-able root buffers
• Dynamically GC threshold adjustment
• Reduced gc_buffer_root size from 32 to 8 (x86_64)
• 5x boost performance in tests
typedef struct _gc_root_buffer {
zend_refcounted *ref;
struct _gc_root_buffer *next;
struct _gc_root_buffer *prev;
uint32_t refcount;
} gc_root_buffer;
typedef struct _gc_root_buffer {
zend_refcounted *ref;
} gc_root_buffer;
SIMD OPTIMIZATION FRAMEWORK
• runtime cpu feature detection(sse, avx)
• zend_cpu_support_sse42
• CPU specific version runtime selection (ifunc/function pointer)
• addslashes
• 2x+ performance improved in test
BASE64 SIMD OPTIMIZATION
• base64_encode/decode optimized
• 3X performance improved in test (sse42)
• http://www.alfredklomp.com/programming/sse-base64/
$retry = 100;
$start = microtime(true);
while (--$retry) {
$length = (int)(1000/$retry);
$str = file_get_contents("/dev/urandom", false, NULL, 0, $length);
//echo "String lenght: ", $length, "n";
$time = microtime(true);
for ($i = 0; $i < 1000000; $i++) {
base64_encode($str);
}
$time = microtime(true) - $time;
//echo "Used time: ", $time , "s", "n";
}
echo "Total used time: ", microtime(true) - $start, "sn";
PERFORMANCE EVOLUTION
BENCH.PHP
13
7
5
4
3 3 3
1 1 1 1
0
3.5
7
10.5
14
17.5
PHP-5.0 PHP-5.1 PHP-5.2 PHP-5.3 PHP-5.4 PHP-5.5 PHP-5.6 PHP-7.0 PHP-7.1 PHP-7.2 PHP-7.3
WORDPRESS HOMEPAGE QPS
0 0
75 82
107 110 112
317 321
330
338
0
100
200
300
400
PHP-5.0 PHP-5.1 PHP-5.2 PHP-5.3 PHP-5.4 PHP-5.5 PHP-5.6 PHP-7.0 PHP-7.1 PHP-7.2 PHP-7.3
PERFORMANCE EVOLUTION
PHP 7.3 ROADMAP
• Jun 2018, Alpha1
• Jul 2018, Beta
• Aug 2018, RC
• Nov 2018, GA
P H P : K E E P G E T T I N G F A S T E R
THANKS

Weitere ähnliche Inhalte

Was ist angesagt?

Preparing code for Php 7 workshop
Preparing code for Php 7 workshopPreparing code for Php 7 workshop
Preparing code for Php 7 workshopDamien Seguy
 
The Php Life Cycle
The Php Life CycleThe Php Life Cycle
The Php Life CycleXinchen Hui
 
Reviewing CPAN modules
Reviewing CPAN modulesReviewing CPAN modules
Reviewing CPAN modulesneilbowers
 
PHP 5.6 New and Deprecated Features
PHP 5.6  New and Deprecated FeaturesPHP 5.6  New and Deprecated Features
PHP 5.6 New and Deprecated FeaturesMark Niebergall
 
Laravel Webcon 2015
Laravel Webcon 2015Laravel Webcon 2015
Laravel Webcon 2015Tim Bracken
 
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)daylerees
 
Php7 hhvm and co
Php7 hhvm and coPhp7 hhvm and co
Php7 hhvm and coPierre Joye
 
Php hypertext pre-processor
Php   hypertext pre-processorPhp   hypertext pre-processor
Php hypertext pre-processorSiddique Ibrahim
 
Creating Perl modules with Dist::Zilla
Creating Perl modules with Dist::ZillaCreating Perl modules with Dist::Zilla
Creating Perl modules with Dist::ZillaMark Gardner
 
How PHP Works ?
How PHP Works ?How PHP Works ?
How PHP Works ?Ravi Raj
 
Speed geeking-lotusscript
Speed geeking-lotusscriptSpeed geeking-lotusscript
Speed geeking-lotusscriptBill Buchan
 
What's New in Laravel 5 (Laravel Meetup - 23th Apr 15, Yogyakarta, ID)
What's New in Laravel 5 (Laravel Meetup - 23th Apr 15, Yogyakarta, ID)What's New in Laravel 5 (Laravel Meetup - 23th Apr 15, Yogyakarta, ID)
What's New in Laravel 5 (Laravel Meetup - 23th Apr 15, Yogyakarta, ID)Roes Wibowo
 
Shootout! template engines on the jvm
Shootout! template engines on the jvmShootout! template engines on the jvm
Shootout! template engines on the jvmNLJUG
 

Was ist angesagt? (20)

Preparing code for Php 7 workshop
Preparing code for Php 7 workshopPreparing code for Php 7 workshop
Preparing code for Php 7 workshop
 
CPAN Curation
CPAN CurationCPAN Curation
CPAN Curation
 
The Php Life Cycle
The Php Life CycleThe Php Life Cycle
The Php Life Cycle
 
Reviewing CPAN modules
Reviewing CPAN modulesReviewing CPAN modules
Reviewing CPAN modules
 
PHP 5.6 New and Deprecated Features
PHP 5.6  New and Deprecated FeaturesPHP 5.6  New and Deprecated Features
PHP 5.6 New and Deprecated Features
 
Laravel
LaravelLaravel
Laravel
 
Laravel Webcon 2015
Laravel Webcon 2015Laravel Webcon 2015
Laravel Webcon 2015
 
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
 
Php7 hhvm and co
Php7 hhvm and coPhp7 hhvm and co
Php7 hhvm and co
 
Php hypertext pre-processor
Php   hypertext pre-processorPhp   hypertext pre-processor
Php hypertext pre-processor
 
Creating Perl modules with Dist::Zilla
Creating Perl modules with Dist::ZillaCreating Perl modules with Dist::Zilla
Creating Perl modules with Dist::Zilla
 
How PHP Works ?
How PHP Works ?How PHP Works ?
How PHP Works ?
 
Hacking with hhvm
Hacking with hhvmHacking with hhvm
Hacking with hhvm
 
Speed geeking-lotusscript
Speed geeking-lotusscriptSpeed geeking-lotusscript
Speed geeking-lotusscript
 
Laravel Level 1 (The Basic)
Laravel Level 1 (The Basic)Laravel Level 1 (The Basic)
Laravel Level 1 (The Basic)
 
Intro to Laravel
Intro to LaravelIntro to Laravel
Intro to Laravel
 
What's New in Laravel 5 (Laravel Meetup - 23th Apr 15, Yogyakarta, ID)
What's New in Laravel 5 (Laravel Meetup - 23th Apr 15, Yogyakarta, ID)What's New in Laravel 5 (Laravel Meetup - 23th Apr 15, Yogyakarta, ID)
What's New in Laravel 5 (Laravel Meetup - 23th Apr 15, Yogyakarta, ID)
 
Shootout! template engines on the jvm
Shootout! template engines on the jvmShootout! template engines on the jvm
Shootout! template engines on the jvm
 
Laravel ppt
Laravel pptLaravel ppt
Laravel ppt
 
Laravel level 0 (introduction)
Laravel level 0 (introduction)Laravel level 0 (introduction)
Laravel level 0 (introduction)
 

Ähnlich wie A brief to PHP 7.3

これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)goccy
 
Everything new with PHP 7.3
Everything new with PHP 7.3Everything new with PHP 7.3
Everything new with PHP 7.3Damien Seguy
 
What to expect from Java 9
What to expect from Java 9What to expect from Java 9
What to expect from Java 9Ivan Krylov
 
Tech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore RoadmapTech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore RoadmapAdaCore
 
What is new in PHP 5.5 - HuyenNT
What is new in PHP 5.5 - HuyenNTWhat is new in PHP 5.5 - HuyenNT
What is new in PHP 5.5 - HuyenNTFramgia Vietnam
 
Php 5.6 vs Php 7 performance comparison
Php 5.6 vs Php 7 performance comparisonPhp 5.6 vs Php 7 performance comparison
Php 5.6 vs Php 7 performance comparisonTu Pham
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release reviewGiang Nguyễn
 
PHP 7X New Features
PHP 7X New FeaturesPHP 7X New Features
PHP 7X New FeaturesThanh Tai
 
Php 5.6 From the Inside Out
Php 5.6 From the Inside OutPhp 5.6 From the Inside Out
Php 5.6 From the Inside OutFerenc Kovács
 
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPInria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPStéphanie Roger
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworksKirk Madera
 
44CON 2014 - Pentesting NoSQL DB's Using NoSQL Exploitation Framework, Franci...
44CON 2014 - Pentesting NoSQL DB's Using NoSQL Exploitation Framework, Franci...44CON 2014 - Pentesting NoSQL DB's Using NoSQL Exploitation Framework, Franci...
44CON 2014 - Pentesting NoSQL DB's Using NoSQL Exploitation Framework, Franci...44CON
 
DevOps in PHP environment
DevOps in PHP environmentDevOps in PHP environment
DevOps in PHP environmentEvaldo Felipe
 
Building Your First Apache Apex Application
Building Your First Apache Apex ApplicationBuilding Your First Apache Apex Application
Building Your First Apache Apex ApplicationApache Apex
 

Ähnlich wie A brief to PHP 7.3 (20)

これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
 
Everything new with PHP 7.3
Everything new with PHP 7.3Everything new with PHP 7.3
Everything new with PHP 7.3
 
What to expect from Java 9
What to expect from Java 9What to expect from Java 9
What to expect from Java 9
 
Intro to CakePHP
Intro to CakePHPIntro to CakePHP
Intro to CakePHP
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Tech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore RoadmapTech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore Roadmap
 
What is new in PHP 5.5 - HuyenNT
What is new in PHP 5.5 - HuyenNTWhat is new in PHP 5.5 - HuyenNT
What is new in PHP 5.5 - HuyenNT
 
Golang
GolangGolang
Golang
 
Golang
GolangGolang
Golang
 
Php 5.6 vs Php 7 performance comparison
Php 5.6 vs Php 7 performance comparisonPhp 5.6 vs Php 7 performance comparison
Php 5.6 vs Php 7 performance comparison
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release review
 
PHP 7X New Features
PHP 7X New FeaturesPHP 7X New Features
PHP 7X New Features
 
Wc13
Wc13Wc13
Wc13
 
Php 5.6 From the Inside Out
Php 5.6 From the Inside OutPhp 5.6 From the Inside Out
Php 5.6 From the Inside Out
 
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPInria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworks
 
44CON 2014 - Pentesting NoSQL DB's Using NoSQL Exploitation Framework, Franci...
44CON 2014 - Pentesting NoSQL DB's Using NoSQL Exploitation Framework, Franci...44CON 2014 - Pentesting NoSQL DB's Using NoSQL Exploitation Framework, Franci...
44CON 2014 - Pentesting NoSQL DB's Using NoSQL Exploitation Framework, Franci...
 
DevOps in PHP environment
DevOps in PHP environmentDevOps in PHP environment
DevOps in PHP environment
 
Nginx pres
Nginx presNginx pres
Nginx pres
 
Building Your First Apache Apex Application
Building Your First Apache Apex ApplicationBuilding Your First Apache Apex Application
Building Your First Apache Apex Application
 

Mehr von Xinchen Hui

PHP7 - For Its Best Performance
PHP7 - For Its Best PerformancePHP7 - For Its Best Performance
PHP7 - For Its Best PerformanceXinchen Hui
 
A History of PHP
A History of PHPA History of PHP
A History of PHPXinchen Hui
 
微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)Xinchen Hui
 
Weibo lamp improvements
Weibo lamp improvementsWeibo lamp improvements
Weibo lamp improvementsXinchen Hui
 
Php 5.4 performance
Php 5.4 performancePhp 5.4 performance
Php 5.4 performanceXinchen Hui
 
China PHP Technology Summit 2011 ppt
China PHP Technology Summit 2011 pptChina PHP Technology Summit 2011 ppt
China PHP Technology Summit 2011 pptXinchen Hui
 

Mehr von Xinchen Hui (7)

PHP7 - For Its Best Performance
PHP7 - For Its Best PerformancePHP7 - For Its Best Performance
PHP7 - For Its Best Performance
 
A History of PHP
A History of PHPA History of PHP
A History of PHP
 
微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)微博Lamp性能优化之路(2014)
微博Lamp性能优化之路(2014)
 
Weibo lamp improvements
Weibo lamp improvementsWeibo lamp improvements
Weibo lamp improvements
 
Php 5.4 performance
Php 5.4 performancePhp 5.4 performance
Php 5.4 performance
 
China PHP Technology Summit 2011 ppt
China PHP Technology Summit 2011 pptChina PHP Technology Summit 2011 ppt
China PHP Technology Summit 2011 ppt
 
Php performance
Php performancePhp performance
Php performance
 

Kürzlich hochgeladen

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Kürzlich hochgeladen (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

A brief to PHP 7.3

  • 1. Laruence A BRIEF TO PHP 7.3 NEW FEATURES AND PERFORMANCE PHP DEVELOPER
  • 2. SELF INTRODUCTION • Author of Yaf, Yar, Yac, Yaconf, Taint Projects • Maintainer of Opcache, Msgpack Projects • PHP core developer since 2011 • Zend consultant since 2013 • PHP7 core developer • Chief software architect at Lianjia since 2015 A PROGRAMER
  • 3. PHP HISTORY • Created in 1994 by Rasmus Lerdorf • 20+ years programming language • Most popular web service program language • PHP7 is released at 3 Dec 2015 • Latest version is PHP7.2.5 BORN FOR WEB PHP ASP.NET Java Static files ColdFusion Ruby Perl JavaScript Python Erlang 83.5% 13.4% 2.3% 1.9% 0.6% 0.6% 0.4% 0.4% 0.2% 0.1% W3Techs.com,1 April 2018
  • 4. HEREDOC AND NEWDOC • The Ending token no loner needs to be the first strings of line • The ending Token can be indented • the Exact number of spaces/tabs used in the ending token will be striped function example($arr) { $out = ""; foreach($arr as $str) { $out .= <<<DOC repeat {$str} DOC; } return $arr; } function example($arr) { $out = ""; foreach($arr as $str) { $out .= <<<DOC repeat {$str} DOC; } return $arr; }
  • 5. TRAILING COMMA IN FUNC CALLS • Allow trailing comma in function and method calls • Only one extra comma are allowed • you can not use this in function/method declarations func_call( $argument1, $argument2, $argument3, $argument4, ); function func_call($num1, $num2, $num3, $num4) { return $num1 + $num2 + $num3 + $mum4; }
  • 6. REFERENCE IN LIST • Items in list can be assigned by reference $animal = ['dog', 'cat']; list($a, &$b) = $animal; $b = "mokey"; var_dump($animal); //output: //array(2) { // [0]=> // string(3) "dog" // [1]=> // &string(5) "mokey" //} $animal = ['dog', 'cat']; [$a, &$b] = $animal; $b = "mokey"; var_dump($animal); //output: //array(2) { // [0]=> // string(3) "dog" // [1]=> // &string(5) "mokey" //}
  • 7. HRTIME • Hrtime is a high-resolution monotonic timer • it doesn’t depends on the system clock $start = hrtime(true); //........... $end = hrtime(true); $elapsed = $end - $start;
  • 8. HRTIME • Hrtime is a high-resolution monotonic timer • it doesn’t depends on the system clock $start = hrtime(true); //........... $end = hrtime(true); $elapsed = $end - $start;
  • 9. MULTIPLY NEW FEATURES & BUGFIX • Add net_get_interfaces() • instanceof now allows literals as the first operand • NEW flag JSON_THROW_ON_ERROR, json_encode/decode could throw exception instead warning now • Added is_countable() function, to check whether a value may be passed tocount() • Multiply new methods added in GMP • https://github.com/php/php-src/blob/master/UPGRADING
  • 10. FASTER NEW GC • Composer GC performance problem REsolved • Multiple bugs fixed in the mean time
  • 11. FASTER NEW GC • Removed double link list, plain array instead • Dynamically resize-able root buffers • Dynamically GC threshold adjustment • Reduced gc_buffer_root size from 32 to 8 (x86_64) • 5x boost performance in tests typedef struct _gc_root_buffer { zend_refcounted *ref; struct _gc_root_buffer *next; struct _gc_root_buffer *prev; uint32_t refcount; } gc_root_buffer; typedef struct _gc_root_buffer { zend_refcounted *ref; } gc_root_buffer;
  • 12. SIMD OPTIMIZATION FRAMEWORK • runtime cpu feature detection(sse, avx) • zend_cpu_support_sse42 • CPU specific version runtime selection (ifunc/function pointer) • addslashes • 2x+ performance improved in test
  • 13. BASE64 SIMD OPTIMIZATION • base64_encode/decode optimized • 3X performance improved in test (sse42) • http://www.alfredklomp.com/programming/sse-base64/ $retry = 100; $start = microtime(true); while (--$retry) { $length = (int)(1000/$retry); $str = file_get_contents("/dev/urandom", false, NULL, 0, $length); //echo "String lenght: ", $length, "n"; $time = microtime(true); for ($i = 0; $i < 1000000; $i++) { base64_encode($str); } $time = microtime(true) - $time; //echo "Used time: ", $time , "s", "n"; } echo "Total used time: ", microtime(true) - $start, "sn";
  • 14. PERFORMANCE EVOLUTION BENCH.PHP 13 7 5 4 3 3 3 1 1 1 1 0 3.5 7 10.5 14 17.5 PHP-5.0 PHP-5.1 PHP-5.2 PHP-5.3 PHP-5.4 PHP-5.5 PHP-5.6 PHP-7.0 PHP-7.1 PHP-7.2 PHP-7.3
  • 15. WORDPRESS HOMEPAGE QPS 0 0 75 82 107 110 112 317 321 330 338 0 100 200 300 400 PHP-5.0 PHP-5.1 PHP-5.2 PHP-5.3 PHP-5.4 PHP-5.5 PHP-5.6 PHP-7.0 PHP-7.1 PHP-7.2 PHP-7.3 PERFORMANCE EVOLUTION
  • 16. PHP 7.3 ROADMAP • Jun 2018, Alpha1 • Jul 2018, Beta • Aug 2018, RC • Nov 2018, GA
  • 17. P H P : K E E P G E T T I N G F A S T E R THANKS