随着PHP7的诞生,兼顾了高性能和开发效率,鸟哥的演讲和对PHP内核的理解,自然是我们最关注的议题。Swoole也是近年来,使用PHP进行高性能Server后台开发的利器。随着PHP7和Swoole的广泛使用,给整个Web界带来强烈的技术红利。在国内包括BAT等各大互联网公司的推动下,经过不断海量考验,围绕PHP7的社区化,会更加稳定成熟。 PHP的应用场景从最初的Web场景,向更广泛的海量高并发的后台服务,向股票金融服务,向BaaS平台服务不断演化,我们欣喜的看到,PHP作为主力的开源社区,迸发出强大的生命力

注脚

展开查看详情

1.NEW FEATURES AND PERFORMANCE A BRIEF TO PHP 7.3 Laruence PHP DEVELOPER

2.SELF INTRODUCTION A PROGRAMER ・ 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

3.PHP HISTORY BORN FOR WEB ・ Created In 1994 By Rasmus Lerdorf 83.5% PHP ・ 20+ Years Programming Language 13.4% ASP.NET ・ Most Popular Web Service Program Language 2.3% Java ・ Php7 Is Released At 3 Dec 2015 1.9% Static files ・ Latest Version Is PHP7.2.5 0.6% ColdFusion Ruby 0.6% Perl 0.4% JavaScript 0.4% Python 0.2% Erlang 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) { function example($arr) { $out = ""; $out = ""; foreach($arr as $str) { foreach($arr as $str) { $out .= <<<DOC $out .= <<<DOC repeat {$str} repeat {$str} DOC; DOC; } } return $arr; 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 function func_call($num1, $num2, $num3, $num4) { func_call( return $num1 + $num2 + $num3 + $mum4; $argument1, } $argument2, $argument3, $argument4, );

6.REFERENCE IN LIST ・ Items In List Can Be Assigned By Reference $animal = ['dog', 'cat']; $animal = ['dog', 'cat']; list($a, &$b) = $animal; [$a, &$b] = $animal; $b = "monkey"; $b = "monkey"; var_dump($animal); var_dump($animal); //output: //output: //array(2) { //array(2) { // [0]=> // [0]=> // string(3) "dog" // string(3) "dog" // [1]=> // [1]=> // &string(5) "monkey" // &string(5) "monkey" //} //}

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 { typedef struct _gc_root_buffer { zend_refcounted *ref; zend_refcounted *ref; struct _gc_root_buffer *next; } gc_root_buffer; struct _gc_root_buffer *prev; uint32_t refcount; } 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, "s\n";

14.PERFORMANCE EVOLUTION 14 13.424 10.5 7 6.527 5.318 3.762 3.5 3.102 3.045 2.991 1.022 0.921 0.813 0.803 0 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 BENCH.PHP

15.PERFORMANCE EVOLUTION 400 338 330 317 321 300 200 107 110 112 100 82 75 0 0 0 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

16.PHP 7.3 ROADMAP ・ Jun 2018, Alpha1 ・ Jul 2018, Beta ・ Aug 2018, Rc ・ Nov 2018, Ga

17. THANKS PHP: KEEP GETTING FASTER

18.PHPCON www.phpconchina.com PPT https://github.com/ThinkDevelopers/PHPConChina QQ 34449228 135615537 ThinkInLAMP