Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ewolucja PHP: PHP 5.6, NG, PHP 7, HHVM
Search
Leszek Krupiński
November 29, 2014
Programming
2
270
Ewolucja PHP: PHP 5.6, NG, PHP 7, HHVM
meet.php, Poznań, 29.11.2014 r
Leszek Krupiński
November 29, 2014
Tweet
Share
More Decks by Leszek Krupiński
See All by Leszek Krupiński
So that the daemon won’t die
leafnode
2
390
Practical PHP7
leafnode
2
410
Dobrze posól swoje hasło
leafnode
0
77
Dobrze posól swoje hasło (z notatkami)
leafnode
0
63
PHPNG kontra HHVM
leafnode
0
77
PHPNG kontra HHVM (z notatkami)
leafnode
0
39
Sculpin - Generowanie statycznych stron w PHP
leafnode
2
49
Skalowanie aplikacji PHP
leafnode
1
390
Varnish to the Rescue
leafnode
0
110
Other Decks in Programming
See All in Programming
Clean Architecture by TypeScript & NestJS
ryounasso
0
150
Temporalを取り巻く仕様を整理する
sajikix
0
110
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
SDCon2024: Enabling DevOps and Team Topologies thru architecture: architecting for fast flow
cer
PRO
0
780
Modern Angular: Renovation for Your Applications
manfredsteyer
PRO
0
140
The rollercoaster of releasing an Android, iOS, and macOS app with Kotlin Multiplatform | droidcon Berlin
prof18
0
110
Terraformテスト入門
msato
0
540
ピグパーティにおけるMongoDB CommunityバージョンからAtlasへの移行事例
10969hotaka
0
130
コード生成を伴うLLMエージェント - 2024.07.18 Tokyo AI
smiyawaki0820
11
4.1k
Composing an API the *right* way (Droidcon Berlin 2024)
zsmb
1
450
CSC307 Lecture 07
javiergs
PRO
0
220
CSC307 Lecture 14
javiergs
PRO
0
220
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
29
2.5k
How to name files
jennybc
67
96k
Stop Working from a Prison Cell
hatefulcrawdad
266
20k
Pencils Down: Stop Designing & Start Developing
hursman
118
11k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
The Invisible Customer
myddelton
117
13k
[RailsConf 2023] Rails as a piece of cake
palkan
35
4.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
39
47k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.3k
Docker and Python
trallard
37
2.9k
Gamification - CAS2011
davidbonilla
78
4.9k
Learning to Love Humans: Emotional Interface Design
aarron
269
39k
Transcript
EWOLUCJA PHP PHP 5.6, NG, PHP 7, HHVM Leszek Krupiński
meet.php 29.11.2014
LEAFNODE
TERAZ
PHP 5.6
DROBNE ZMIANY SKŁADNIOWE
CONSTANT SCALAR EXPRESSIONS
None
VARIADICS
None
ARGUMENT UNPACKING
None
EKSPONENTA
None
USE CONST USE FUNC
None
PRZEŁADOWANIE OPERATORÓW GMP
None
HASH_EQUALS()
None
__DEBUGINFO()
None
PHPDBG
None
• domyślne kodowanie • ponowne użycie php://input • upload dużych
plików • przeciążenie operatorów GMP • gost-crypto • poprawki do SSL/TLS • pgsql async
PHP 7
PHP NG
GŁĘBOKA REFAKTORYZACJA
OPTYMALIZACJA STRUKTUR WEWNĘTRZNYCH
OPERACJE NA STOSIE
ZARZĄDZANIE PAMIĘCIĄ
IMMUTABLE ARRAY
EFEKTY
30% LEPSZE WYNIKI W TESTACH SYNTETYCZNYCH
20-70% SZYBSZE DZIAŁANIE PRAWDZIWYCH APLIKACJI
None
LIES, DAMNED LIES, BENCHMARKS
Autor: Dmitry Stogov
Autor: Dmitry Stogov
http://devplant.net/2014/08/11/optimizing-php-code/
ABSTRACT SYNTAX TREE
LEKSER PARSER KOMPILATOR URUCHOMIENIE LEKSEMY WĘZŁY OPCODE
None
URUCHOMIENIE
NIEKOMPATYBILNOŚĆ
ROZSZERZENIA • interbase • oci8 • mssql • pdo_oci •
pdo_dblib • sybase_ct
DROBNE ZMIANY W SKŁADNI
None
HHVM
HIPHOP FOR PHP
KOD PHP KOD C KOMPILACJA URUCHOMIENIE
HHVM
KOD PHP BYTECODE JIT COMPILER URUCHOMIENIE
HACK
• Return type hinting • Member variable types • Type-safe
collections • Generics • Type aliasing • Nullable types • Tuples • Shapes
None
None
None
None
None
XHP
TRANSPILER
ZGODNOŚĆ HHVM Z PHP
• Open Source Tests: 95.18% • 27 Frameworks at 100%
http://hhvm.com/frameworks/
URUCHAMIANIE
UŻYWAĆ?
PRZYSZŁOŚĆ
RETURN TYPE HINTING
None
KOLEJNE INTERPRETERY
SPECYFIKACJA JĘZYKA
CZY POTRZEBNE JEST WIELE INTERPRETERÓW?
Linki • http://bit.ly/phpng-zendcon • http://bit.ly/php-ast • http://bit.ly/php7timeline • https://github.com/php/php-langspec •
http://bit.ly/hhvm-phpcon2014 • https://wiki.php.net/phpng • https://wiki.php.net/phpng-int • https://wiki.php.net/rfc
PYTANIA?
DZIĘKUJĘ @leafnode http://speakerdeck.com/leafnode/