SlideShare a Scribd company logo
PHP 7
What changed internally?
Nikita Popov
•Return type declarations
•Scalar type declarations
function startsWith(string $s1, string $s2) : bool {…}
211
254 256 273
627
666
0
100
200
300
400
500
600
700
PHP 5.3 PHP 5.4 PHP 5.5 PHP 5.6 PHP 7 HHVM 3.7
Req/Sec
Wordpress 4.1.1 (home, 20 c)
Stolen from Rasmus
•Smaller data structures
•Fewer allocations
•Less indirection
zval
zval
5
NULL
BOOL
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
5
NULL
BOOL
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
lval (long)
dval (double)
5
NULL
BOOL
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
lval (long)
dval (double)
5
64 bits / 8 bytes
NULL
BOOL
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
lval (long)
dval (double)
lval (long)
1 bit
5
NULL
BOOL
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
val (char *)
len (int)
A B C 0
5
value
ty
5
value
refcount ty
5
value = LONG(42)
refcount = 1$i
$i = 42;
5
value = LONG(42)
refcount = 2$i
$j
$i = 42;
$j = $i;
5
value = LONG(42)
refcount = 3$i
$j
$k
$i = 42;
$j = $i;
$k = $i;
5
value = LONG(42)
refcount = 1
$i = 42;
$j = $i;
$k = $i;
unset($i, $k);
5
$j
value = LONG(42)
refcount = 0
$i = 42;
$j = $i;
$k = $i;
unset($i, $k);
unset($j);
5
value = LONG(42)
refcount = 0
$i = 42;
$j = $i;
$k = $i;
unset($i, $k);
unset($j);
free( )
5
value = ARRAY
refcount = 1$a
$a = [];
5
[0]: (empty)
[1]: (empty)
[2]: (empty)
…
value = ARRAY
refcount = 2$a
$a = [];
$a[0] = $a;
5
[0]:
[1]: (empty)
[2]: (empty)
…
value = ARRAY
refcount = 1
$a = [];
$a[0] = $a;
unset($a);
5
[0]:
[1]: (empty)
[2]: (empty)
…
value = ARRAY
refcount = 1
$a = [];
$a[0] = $a;
unset($a);
5
[0]:
[1]: (empty)
[2]: (empty)
…
[0]: (empty)
[1]: (empty)
[2]: (empty)
…
GC root buffer
value = ARRAY
refcount = 1
$a = [];
$a[0] = $a;
unset($a);
5
[0]:
[1]: (empty)
[2]: (empty)
…
[0]:
[1]: (empty)
[2]: (empty)
…
GC root buffer
value = ARRAY
refcount = 1
gc_root
$a = [];
$a[0] = $a;
unset($a);
5
[0]:
[1]: (empty)
[2]: (empty)
…
[0]:
[1]: (empty)
[2]: (empty)
…
GC root buffer
value
refcount ty
gc_root
5
size
prev_size
value
refcount ty
gc_root
5
size
prev_size
value
refcount ty
gc_root
5
32 bytes
16 bytes
value
type_info (u2)
7
NULL
BOOL
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
5
NULL
BOOL
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
7
FALSE
TRUE
NULL
BOOL
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
REFERENCE 7
FALSE
TRUE
NULL
FALSE
TRUE
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
REFERENCE
val (char *)
len (int)
A B C 0
5
NULL
FALSE
TRUE
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
REFERENCE 7
zend_string *
refcount type_info
hash
len (size_t)
A B C 0
NULL
FALSE
TRUE
LONG
DOUBLE
STRING
ARRAY
OBJECT
RESOURCE
REFERENCE 7
zend_string *
refcount type_info
hash
len (size_t)
A B C 0
refcounted header
$i = 42;
7
$i value = 42
LONG
$i = 42;
$j = $i;
7
$i value = 42
LONG
$j value = 42
LONG
$i = 42;
$j = $i;
$k = $i;
7
$i value = 42
LONG
$j value = 42
LONG
$k value = 42
LONG
$s = “foobar”;
7
$s value
STRING
refcount = 1 type_info
hash = 0x80000652FDE460BE
len = 6
f o o b a r 0
$s = “foobar”;
$t = $s;
7
$s value
STRING
$t value
STRING refcount = 2 type_info
hash = 0x80000652FDE460BE
len = 6
f o o b a r 0
$s = “foobar”;
$t = $s;
$u = $s;
7
$s value
STRING
$t value
STRING
$u value
STRING
refcount = 3 type_info
hash = 0x80000652FDE460BE
len = 6
f o o b a r 0
7
refcount type_info
hash
len (size_t)
A B C 0
refcounted header
7
refcount type_info
hash
len (size_t)
A B C 0
refcounted header
type flags gc_info
7
refcount type_info
hash
len (size_t)
A B C 0
refcounted header
type flags gc_info
INTERNED
etc.
value
type_info (u2)
7
value
type_info (u2)
7
type type_flags const_flags
7
type type_flags const_flags
refcounted collectable copyable
simple types
string
interned string
array
object
resource
reference
7
type type_flags const_flags
refcounted collectable copyable
simple types
string 
interned string
array 
object 
resource 
reference 
7
type type_flags const_flags
refcounted collectable copyable
simple types
string 
interned string
array  
object  
resource 
reference 
7
type type_flags const_flags
refcounted collectable copyable
simple types
string  
interned string
array   
object  
resource 
reference 
5
array == HashTable
5
key = “foo”
idx = hash(“foo”)
5
key = “foo”
idx = hash(“foo”) % tableSize
5
[0]: (empty)
[1]: (empty)
[2]: (empty)
[3]: (empty)
“foo”
5
[0]: (empty)
[1]:
[2]: (empty)
[3]: (empty)
“foo”
data
key “foo”
zval
5
[0]: (empty)
[1]:
[2]: (empty)
[3]: (empty)
“foo”
data
key “foo”
“bar”
5
[0]: (empty)
[1]:
[2]: (empty)
[3]: (empty)
“foo”
data
key “foo”
next
“bar”
data
key “bar”
next = NULL
5
[0]: (empty)
[1]:
[2]: (empty)
[3]: (empty)
“foo”
data
key “foo”
next
prev = NULL
“bar”
data
key “bar”
next = NULL
prev
5
data
prev
next
key “foo”
zval
5
data
listNext
listPrev
prev
next
key “foo”
zval
$a1 = [“foo” => 1,
“bar” => 2];
$a2 = [“bar” => 2,
“foo” => 1];
5
dataPtr
data
listNext
listPrev
prev
next
key “foo”
zval
5
hash
keyLen
dataPtr
data
listNext
listPrev
prev
next
key “foo”
zval
7
hash
key
value
type_info next
zval
7
hash
key
value
type_info next
refcount type_info
hash
len
f o o 0
zend_string
7
hash
key
value
type_info next
hash
key
value
type_info next
hash
key
value
type_info next
7
hash
key
value
type_info next
hash
key
value
type_info next
hash
key
value
type_info next
[0]
[1]
[2]
[3]
7
hash
key
value
type_info next
hash
key
value
type_info next
hash
key
value
type_info next
[0] = -1
[1] = -1
[2] = -1
[3] = -1
$a = [];
numUsed = 0
7
hash
key
value = 42
LONG next = -1
hash
key
value
type_info next
hash
key
value
type_info next
[0] = -1
[1] = 0
[2] = -1
[3] = -1
“foo”
$a = [];
$a[“foo”] = 42;
“foo”
numUsed = 1
7
hash
key
value = 42
LONG next = -1
hash
key
value = 24
LONG next = -1
hash
key
value
type_info next
[0] = -1
[1] = 0
[2] = -1
[3] = 1
“foo”
$a = [];
$a[“foo”] = 42;
$a[“bar”] = 24; “foo”
“bar”
“bar”
numUsed = 2
7
hash
key
value = 42
LONG next = 2
hash
key
value = 24
LONG next = -1
hash
key
value = 3.141
DOUBLE next = -1
[0] = -1
[1] = 0
[2] = -1
[3] = 1
“foo”
$a = [];
$a[“foo”] = 42;
$a[“bar”] = 24;
$a[“xyz”] = 3.141;
“foo”
“bar”
“bar”
“xyz”
“xyz”
7
hash
key
value
UNDEF next = -1
hash
key
value = 24
LONG next = -1
hash
key
value = 3.141
DOUBLE next = -1
[0] = -1
[1] = 2
[2] = -1
[3] = 1
$a = [];
$a[“foo”] = 42;
$a[“bar”] = 24;
$a[“xyz”] = 3.141;
unset($a[“foo”]);
“bar”
“bar”
“xyz”
“xyz”
7
hash
key
value
type_info next
hash
key
value
type_info next
[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
7
hash
key
value
type_info next
hash
key
value
type_info next
[0] [1]
[2] [3]
[4] [5]
[6] [7]
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
hash
data
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
hash
data
refcount type_info
data / hash pointer
numUsed
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
hash
data
refcount type_info
tableMask
data / hash pointer
numUsed
tableSize
tableMask = -tableSize
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
hash
data
refcount type_info
tableMask
data / hash pointer
numUsed
tableSize
1010111010110110
tableMask = -tableSize
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
hash
data
refcount type_info
tableMask
data / hash pointer
numUsed
tableSize
1010111010110110
| 1111111111100000
tableMask = -tableSize
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
hash
data
refcount type_info
tableMask
data / hash pointer
numUsed
tableSize
1010111010110110
| 1111111111100000
= 1111111111110110 = -10
tableMask = -tableSize
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
hash
data
refcount type_info
tableMask
data / hash pointer
numUsed numElems
tableSize
nextFreeElement
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
hash
data
refcount type_info
tableMask
data / hash pointer
numUsed numElems
tableSize internalPtr
nextFreeElement
destructor
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
hash
data
refcount type_info
flags tableMask
data / hash pointer
numUsed numElems
tableSize internalPtr
nextFreeElement
destructor
flags applyCnt iterCnt
7
hash
key
value
type_info next
hash
key
value
type_info next
[-8] [-7]
[-6] [-5]
[-4] [-3]
[-2] [-1]
hash
data
refcount type_info
flags tableMask
data / hash pointer
numUsed numElems
tableSize internalPtr
nextFreeElement
destructor
flags applyCnt iterCnt
PACKED
etc.
7
hash
key
value
type_info next
hash
key
value
type_info next
data
refcount type_info
flags tableMask
data pointer
numUsed numElems
tableSize internalPtr
nextFreeElement
destructor
flags applyCnt iterCnt
PACKED
etc.
5
objects
5
handle (ID)
handlers
zval value
5
handle (ID)
handlers
zval value
handler table
object store bucket
5
handle (ID)
handlers
zval value
…
read_prop()
write_prop()
…
object store bucket
5
handle (ID)
handlers
zval value
…
read_prop()
write_prop()
…
object
object store bucket
actual object
5
handle (ID)
handlers
zval value
…
read_prop()
write_prop()
…
object
refcount
object store bucket
actual object
5
handle (ID)
handlers
zval value
…
read_prop()
write_prop()
…
object
dtor()
free_storage()
clone()
refcount
object store bucket
actual object
5
handle (ID)
handlers
zval value
…
read_prop()
write_prop()
…
object
dtor()
free_storage()
clone()
handlers
refcount
gc_root
object store bucket
actual object
5
handle (ID)
handlers
zval value
…
read_prop()
write_prop()
…
D V ac
object
dtor()
free_storage()
clone()
handlers
refcount
gc_root
object store bucket
actual object
5
object store bucket
standard object
5
object store bucket
ce
standard object
zend_class_entry
5
object store bucket
ce
properties
standard object
zend_class_entry
HashTable for
dynamic properties
5
object store bucket
ce
properties
properties_table
standard object
zend_class_entry
HashTable for
dynamic properties
[0] (stores $prop1)
[1] (stores $prop2)
[2] (stores $prop3)
zval
zval
zval
5
object store bucket
ce
properties
properties_table
guards
standard object
zend_class_entry
HashTable for
dynamic properties
[0] (stores $prop1)
[1] (stores $prop2)
[2] (stores $prop3)
zval
zval
zval
HashTable for
__get etc. guards
5
object store bucket
ce
properties
properties_table
guards
custom extension
for internal object
standard object
zend_class_entry
HashTable for
dynamic properties
[0] (stores $prop1)
[1] (stores $prop2)
[2] (stores $prop3)
zval
zval
zval
HashTable for
__get etc. guards
7
zend_object *
refcount type_info
ce
properties
zend_class_entry
HashTable for
dynamic properties
7
zend_object *
refcount type_info
handle
ce
handlers
properties
zend_class_entry
HashTable for
dynamic properties
handler table
7
zend_object *
refcount type_info
handle
ce
handlers
properties
zend_class_entry
HashTable for
dynamic properties
handler table
object store
7
zend_object *
refcount type_info
handle
ce
handlers
properties
value
type_info
value
type_info
value
type_info
zend_class_entry
HashTable for
dynamic properties$prop1 zval
$prop2 zval
$prop3 zval
handler table
object store
7
zend_object *
refcount type_info
handle
ce
handlers
properties
value
type_info
value
type_info
value
type_info
zend_class_entry
HashTable for
dynamic properties
HashTable for
__get etc. guards
guards zval
$prop1 zval
$prop2 zval
handler table
object store
7
zend_object *
refcount type_info
handle
ce
handlers
properties
value
type_info
value
type_info
value
type_info
zend_class_entry
HashTable for
dynamic properties
HashTable for
__get etc. guards
guards zval
$prop1 zval
$prop2 zval
handler table
object store
ext. for internal objects
7
zend_object *
refcount type_info
handle
ce
handlers
properties
value
type_info
value
type_info
value
type_info
zend_class_entry
HashTable for
dynamic properties
HashTable for
__get etc. guards
guards zval
$prop1 zval
$prop2 zval
handler table
object store
ext. for internal objects offset
7
zend_object *
refcount type_info
handle
ce
handlers
properties
value
type_info
value
type_info
value
type_info
guards zval
$prop1 zval
$prop2 zval
object store
ext. for internal objects
offset
…
handlers table
offset
7
zend_object *
refcount type_info
handle
ce
handlers
properties
value
type_info
value
type_info
value
type_info
guards zval
$prop1 zval
$prop2 zval
object store
ext. for internal objects
offset
free()
dtor()
clone()
…
handlers table
offset
5
references
value = LONG(42)
refcount = 3$i
$j
$k
$i = 42;
$j = $i;
$k = $i;
5
value = LONG(42)
refcount = 2$i
$k
$i = 42;
$j = $i;
$k = $i;
$k++;
5
value = LONG(43)
refcount = 1
$j
value = LONG(42)
refcount = 2$i
$k
$i = 42;
$j = $i;
$k = $i;
$k++;
5
value = LONG(43)
refcount = 1
$j
copy-on-write (COW)
value = LONG(42)
refcount = 3 is_ref = 1$i
$j
$k
$i = 42;
$j =& $i;
$k =& $i;
5
value = LONG(43)
refcount = 3 is_ref = 1$i
$j
$k
$i = 42;
$j =& $i;
$k =& $i;
$k++;
5
$i = 42;
$j =& $i;
$k =& $i;
7
$i value
REFERENCE
$j value
REFERENCE
$k value
REFERENCE
refcount = 3 type_info
value = 42
LONG
zend_reference
$a = range(
0,1000000);
$r =& $a;
7
$a value
REFERENCE
$r value
REFERENCE refcount = 2 type_info
value
ARRAY
zend_reference
refcount = 1 type_info
…
zend_array
$a = range(
0,1000000);
$r =& $a;
$v = $a;
7
$a value
REFERENCE
$r value
REFERENCE
$v value
ARRAY
refcount = 2 type_info
value
ARRAY
zend_reference
refcount = 2 type_info
…
zend_array
PHP 5 PHP 7
zval 32 bytes 16 bytes
HashTable element 80 bytes 36 bytes (incl. zval)
HashTable 72 bytes 56 bytes
object 96 bytes 40 bytes
PHP 5 PHP 7
zval 32 bytes 16 bytes
HashTable element 80 bytes 36 bytes (incl. zval)
HashTable 72 bytes 56 bytes
object 96 bytes 40 bytes
fewer allocations
less indirection
PHP 7 Alpha 1
June 11th
@nikita_ppv
nikic@php.net

More Related Content

What's hot

Rust: Unlocking Systems Programming
Rust: Unlocking Systems ProgrammingRust: Unlocking Systems Programming
Rust: Unlocking Systems Programming
C4Media
 
LatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode FundamentalsLatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode Fundamentals
denis Udod
 
OAuth2 and Spring Security
OAuth2 and Spring SecurityOAuth2 and Spring Security
OAuth2 and Spring Security
Orest Ivasiv
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
Giovanni Scerra ☃
 
Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8
Nikita Popov
 
우린 같은 곳을 바라 보고 있나요?
우린 같은 곳을 바라 보고 있나요?우린 같은 곳을 바라 보고 있나요?
우린 같은 곳을 바라 보고 있나요?
Arawn Park
 
Kotlin Coroutines. Flow is coming
Kotlin Coroutines. Flow is comingKotlin Coroutines. Flow is coming
Kotlin Coroutines. Flow is coming
Kirill Rozov
 
Rust-lang
Rust-langRust-lang
PHP Unit 3 functions_in_php_2
PHP Unit 3 functions_in_php_2PHP Unit 3 functions_in_php_2
PHP Unit 3 functions_in_php_2Kumar
 
Rust system programming language
Rust system programming languageRust system programming language
Rust system programming language
robin_sy
 
Java 8 Workshop
Java 8 WorkshopJava 8 Workshop
Java 8 Workshop
Mario Fusco
 
The Log4Shell Vulnerability – explained: how to stay secure
The Log4Shell Vulnerability – explained: how to stay secureThe Log4Shell Vulnerability – explained: how to stay secure
The Log4Shell Vulnerability – explained: how to stay secure
Kaspersky
 
C++: inheritance, composition, polymorphism
C++: inheritance, composition, polymorphismC++: inheritance, composition, polymorphism
C++: inheritance, composition, polymorphismJussi Pohjolainen
 
The Rust Programming Language: an Overview
The Rust Programming Language: an OverviewThe Rust Programming Language: an Overview
The Rust Programming Language: an Overview
Roberto Casadei
 
Spring Security
Spring SecuritySpring Security
Spring Security
Knoldus Inc.
 
Applications secure by default
Applications secure by defaultApplications secure by default
Applications secure by default
SecuRing
 
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
Christopher Frohoff
 
Effective testing with pytest
Effective testing with pytestEffective testing with pytest
Effective testing with pytest
Hector Canto
 
Angular Pipes Workshop
Angular Pipes WorkshopAngular Pipes Workshop
Angular Pipes Workshop
Nir Kaufman
 
PHP, Under The Hood - DPC
PHP, Under The Hood - DPCPHP, Under The Hood - DPC
PHP, Under The Hood - DPC
Anthony Ferrara
 

What's hot (20)

Rust: Unlocking Systems Programming
Rust: Unlocking Systems ProgrammingRust: Unlocking Systems Programming
Rust: Unlocking Systems Programming
 
LatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode FundamentalsLatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode Fundamentals
 
OAuth2 and Spring Security
OAuth2 and Spring SecurityOAuth2 and Spring Security
OAuth2 and Spring Security
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
 
Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8
 
우린 같은 곳을 바라 보고 있나요?
우린 같은 곳을 바라 보고 있나요?우린 같은 곳을 바라 보고 있나요?
우린 같은 곳을 바라 보고 있나요?
 
Kotlin Coroutines. Flow is coming
Kotlin Coroutines. Flow is comingKotlin Coroutines. Flow is coming
Kotlin Coroutines. Flow is coming
 
Rust-lang
Rust-langRust-lang
Rust-lang
 
PHP Unit 3 functions_in_php_2
PHP Unit 3 functions_in_php_2PHP Unit 3 functions_in_php_2
PHP Unit 3 functions_in_php_2
 
Rust system programming language
Rust system programming languageRust system programming language
Rust system programming language
 
Java 8 Workshop
Java 8 WorkshopJava 8 Workshop
Java 8 Workshop
 
The Log4Shell Vulnerability – explained: how to stay secure
The Log4Shell Vulnerability – explained: how to stay secureThe Log4Shell Vulnerability – explained: how to stay secure
The Log4Shell Vulnerability – explained: how to stay secure
 
C++: inheritance, composition, polymorphism
C++: inheritance, composition, polymorphismC++: inheritance, composition, polymorphism
C++: inheritance, composition, polymorphism
 
The Rust Programming Language: an Overview
The Rust Programming Language: an OverviewThe Rust Programming Language: an Overview
The Rust Programming Language: an Overview
 
Spring Security
Spring SecuritySpring Security
Spring Security
 
Applications secure by default
Applications secure by defaultApplications secure by default
Applications secure by default
 
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
OWASP SD: Deserialize My Shorts: Or How I Learned To Start Worrying and Hate ...
 
Effective testing with pytest
Effective testing with pytestEffective testing with pytest
Effective testing with pytest
 
Angular Pipes Workshop
Angular Pipes WorkshopAngular Pipes Workshop
Angular Pipes Workshop
 
PHP, Under The Hood - DPC
PHP, Under The Hood - DPCPHP, Under The Hood - DPC
PHP, Under The Hood - DPC
 

Viewers also liked

The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6
The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6
The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6
Andrei Zmievski
 
PHP 7 – What changed internally? (PHP Barcelona 2015)
PHP 7 – What changed internally? (PHP Barcelona 2015)PHP 7 – What changed internally? (PHP Barcelona 2015)
PHP 7 – What changed internally? (PHP Barcelona 2015)
Nikita Popov
 
Last train to php 7
Last train to php 7Last train to php 7
Last train to php 7
Damien Seguy
 
PHP 7 - A look at the future
PHP 7 - A look at the futurePHP 7 - A look at the future
PHP 7 - A look at the future
Radu Murzea
 
Php Tutorial
Php TutorialPhp Tutorial
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshop
julien pauli
 
PHP tutorial | ptutorial
PHP tutorial | ptutorialPHP tutorial | ptutorial
PHP tutorial | ptutorial
PTutorial Web
 
PHP 5.3 And PHP 6 A Look Ahead
PHP 5.3 And PHP 6 A Look AheadPHP 5.3 And PHP 6 A Look Ahead
PHP 5.3 And PHP 6 A Look Aheadthinkphp
 
Introduction to php 6
Introduction to php   6Introduction to php   6
Introduction to php 6
pctechnology
 
PHP7 - For Its Best Performance
PHP7 - For Its Best PerformancePHP7 - For Its Best Performance
PHP7 - For Its Best Performance
Xinchen Hui
 
PHP7.1 New Features & Performance
PHP7.1 New Features & PerformancePHP7.1 New Features & Performance
PHP7.1 New Features & Performance
Xinchen Hui
 
PHP7 - The New Engine for old good train
PHP7 - The New Engine for old good trainPHP7 - The New Engine for old good train
PHP7 - The New Engine for old good train
Xinchen Hui
 
De perdidos a Titanium - Codemotion Madrid 2013
De perdidos a Titanium - Codemotion Madrid 2013De perdidos a Titanium - Codemotion Madrid 2013
De perdidos a Titanium - Codemotion Madrid 2013
aferrandini
 
High Performance Solution for PHP7
High Performance Solution for PHP7High Performance Solution for PHP7
High Performance Solution for PHP7
Xinchen Hui
 
Knowing Laravel 5 : The most popular PHP framework
Knowing Laravel 5 : The most popular PHP frameworkKnowing Laravel 5 : The most popular PHP framework
Knowing Laravel 5 : The most popular PHP framework
Bukhori Aqid
 
The secret of PHP7's Performance
The secret of PHP7's Performance The secret of PHP7's Performance
The secret of PHP7's Performance
Xinchen Hui
 
PHP 7
PHP 7PHP 7
PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015
Colin O'Dell
 
PHP data structures (and the impact of php 7 on them), phpDay Verona 2015, Italy
PHP data structures (and the impact of php 7 on them), phpDay Verona 2015, ItalyPHP data structures (and the impact of php 7 on them), phpDay Verona 2015, Italy
PHP data structures (and the impact of php 7 on them), phpDay Verona 2015, Italy
Patrick Allaert
 

Viewers also liked (20)

The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6
The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6
The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6
 
PHP 7 – What changed internally? (PHP Barcelona 2015)
PHP 7 – What changed internally? (PHP Barcelona 2015)PHP 7 – What changed internally? (PHP Barcelona 2015)
PHP 7 – What changed internally? (PHP Barcelona 2015)
 
Last train to php 7
Last train to php 7Last train to php 7
Last train to php 7
 
PHP 7 - A look at the future
PHP 7 - A look at the futurePHP 7 - A look at the future
PHP 7 - A look at the future
 
Php Tutorial
Php TutorialPhp Tutorial
Php Tutorial
 
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshop
 
PHP tutorial | ptutorial
PHP tutorial | ptutorialPHP tutorial | ptutorial
PHP tutorial | ptutorial
 
PHP 5.3 And PHP 6 A Look Ahead
PHP 5.3 And PHP 6 A Look AheadPHP 5.3 And PHP 6 A Look Ahead
PHP 5.3 And PHP 6 A Look Ahead
 
Introduction to php 6
Introduction to php   6Introduction to php   6
Introduction to php 6
 
PHP7 - For Its Best Performance
PHP7 - For Its Best PerformancePHP7 - For Its Best Performance
PHP7 - For Its Best Performance
 
PHP7.1 New Features & Performance
PHP7.1 New Features & PerformancePHP7.1 New Features & Performance
PHP7.1 New Features & Performance
 
PHP7 - The New Engine for old good train
PHP7 - The New Engine for old good trainPHP7 - The New Engine for old good train
PHP7 - The New Engine for old good train
 
De perdidos a Titanium - Codemotion Madrid 2013
De perdidos a Titanium - Codemotion Madrid 2013De perdidos a Titanium - Codemotion Madrid 2013
De perdidos a Titanium - Codemotion Madrid 2013
 
Php Unicode I18n
Php Unicode I18nPhp Unicode I18n
Php Unicode I18n
 
High Performance Solution for PHP7
High Performance Solution for PHP7High Performance Solution for PHP7
High Performance Solution for PHP7
 
Knowing Laravel 5 : The most popular PHP framework
Knowing Laravel 5 : The most popular PHP frameworkKnowing Laravel 5 : The most popular PHP framework
Knowing Laravel 5 : The most popular PHP framework
 
The secret of PHP7's Performance
The secret of PHP7's Performance The secret of PHP7's Performance
The secret of PHP7's Performance
 
PHP 7
PHP 7PHP 7
PHP 7
 
PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015
 
PHP data structures (and the impact of php 7 on them), phpDay Verona 2015, Italy
PHP data structures (and the impact of php 7 on them), phpDay Verona 2015, ItalyPHP data structures (and the impact of php 7 on them), phpDay Verona 2015, Italy
PHP data structures (and the impact of php 7 on them), phpDay Verona 2015, Italy
 

Similar to PHP 7 – What changed internally?

PHP 7 – What changed internally? (Forum PHP 2015)
PHP 7 – What changed internally? (Forum PHP 2015)PHP 7 – What changed internally? (Forum PHP 2015)
PHP 7 – What changed internally? (Forum PHP 2015)
Nikita Popov
 
PHP Functions & Arrays
PHP Functions & ArraysPHP Functions & Arrays
PHP Functions & Arrays
Henry Osborne
 
Modern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter BootstrapModern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter Bootstrap
Howard Lewis Ship
 
An Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackAn Elephant of a Different Colour: Hack
An Elephant of a Different Colour: Hack
Vic Metcalfe
 
Introdução ao Perl 6
Introdução ao Perl 6Introdução ao Perl 6
Introdução ao Perl 6
garux
 
PHP 5.4
PHP 5.4PHP 5.4
The History of PHPersistence
The History of PHPersistenceThe History of PHPersistence
The History of PHPersistence
Hugo Hamon
 
循環参照のはなし
循環参照のはなし循環参照のはなし
循環参照のはなし
Masahiro Honma
 
Python Fundamentals - Basic
Python Fundamentals - BasicPython Fundamentals - Basic
Python Fundamentals - Basic
Wei-Yuan Chang
 
Ruby nooks & crannies
Ruby nooks & cranniesRuby nooks & crannies
Ruby nooks & crannies
Kerry Buckley
 
GE8151 Problem Solving and Python Programming
GE8151 Problem Solving and Python ProgrammingGE8151 Problem Solving and Python Programming
GE8151 Problem Solving and Python Programming
Muthu Vinayagam
 
Casting for not so strange actors
Casting for not so strange actorsCasting for not so strange actors
Casting for not so strange actors
zucaritask
 
Taking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order FunctionsTaking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order Functions
David Golden
 
Invertible-syntax 入門
Invertible-syntax 入門Invertible-syntax 入門
Invertible-syntax 入門
Hiromi Ishii
 
NodeUkraine - Postgresql для хипстеров или почему ваш следующий проект должен...
NodeUkraine - Postgresql для хипстеров или почему ваш следующий проект должен...NodeUkraine - Postgresql для хипстеров или почему ваш следующий проект должен...
NodeUkraine - Postgresql для хипстеров или почему ваш следующий проект должен...
DmitryChirkin1
 
Basic perl programming
Basic perl programmingBasic perl programming
Basic perl programming
Thang Nguyen
 
Perl 6 in Context
Perl 6 in ContextPerl 6 in Context
Perl 6 in Context
lichtkind
 
Refactor like a boss
Refactor like a bossRefactor like a boss
Refactor like a boss
gsterndale
 
Php functions
Php functionsPhp functions
Php functions
JIGAR MAKHIJA
 
CS442 - Rogue: A Scala DSL for MongoDB
CS442 - Rogue: A Scala DSL for MongoDBCS442 - Rogue: A Scala DSL for MongoDB
CS442 - Rogue: A Scala DSL for MongoDB
jorgeortiz85
 

Similar to PHP 7 – What changed internally? (20)

PHP 7 – What changed internally? (Forum PHP 2015)
PHP 7 – What changed internally? (Forum PHP 2015)PHP 7 – What changed internally? (Forum PHP 2015)
PHP 7 – What changed internally? (Forum PHP 2015)
 
PHP Functions & Arrays
PHP Functions & ArraysPHP Functions & Arrays
PHP Functions & Arrays
 
Modern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter BootstrapModern Application Foundations: Underscore and Twitter Bootstrap
Modern Application Foundations: Underscore and Twitter Bootstrap
 
An Elephant of a Different Colour: Hack
An Elephant of a Different Colour: HackAn Elephant of a Different Colour: Hack
An Elephant of a Different Colour: Hack
 
Introdução ao Perl 6
Introdução ao Perl 6Introdução ao Perl 6
Introdução ao Perl 6
 
PHP 5.4
PHP 5.4PHP 5.4
PHP 5.4
 
The History of PHPersistence
The History of PHPersistenceThe History of PHPersistence
The History of PHPersistence
 
循環参照のはなし
循環参照のはなし循環参照のはなし
循環参照のはなし
 
Python Fundamentals - Basic
Python Fundamentals - BasicPython Fundamentals - Basic
Python Fundamentals - Basic
 
Ruby nooks & crannies
Ruby nooks & cranniesRuby nooks & crannies
Ruby nooks & crannies
 
GE8151 Problem Solving and Python Programming
GE8151 Problem Solving and Python ProgrammingGE8151 Problem Solving and Python Programming
GE8151 Problem Solving and Python Programming
 
Casting for not so strange actors
Casting for not so strange actorsCasting for not so strange actors
Casting for not so strange actors
 
Taking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order FunctionsTaking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order Functions
 
Invertible-syntax 入門
Invertible-syntax 入門Invertible-syntax 入門
Invertible-syntax 入門
 
NodeUkraine - Postgresql для хипстеров или почему ваш следующий проект должен...
NodeUkraine - Postgresql для хипстеров или почему ваш следующий проект должен...NodeUkraine - Postgresql для хипстеров или почему ваш следующий проект должен...
NodeUkraine - Postgresql для хипстеров или почему ваш следующий проект должен...
 
Basic perl programming
Basic perl programmingBasic perl programming
Basic perl programming
 
Perl 6 in Context
Perl 6 in ContextPerl 6 in Context
Perl 6 in Context
 
Refactor like a boss
Refactor like a bossRefactor like a boss
Refactor like a boss
 
Php functions
Php functionsPhp functions
Php functions
 
CS442 - Rogue: A Scala DSL for MongoDB
CS442 - Rogue: A Scala DSL for MongoDBCS442 - Rogue: A Scala DSL for MongoDB
CS442 - Rogue: A Scala DSL for MongoDB
 

More from Nikita Popov

A whirlwind tour of the LLVM optimizer
A whirlwind tour of the LLVM optimizerA whirlwind tour of the LLVM optimizer
A whirlwind tour of the LLVM optimizer
Nikita Popov
 
Opaque Pointers Are Coming
Opaque Pointers Are ComingOpaque Pointers Are Coming
Opaque Pointers Are Coming
Nikita Popov
 
What's new in PHP 8.0?
What's new in PHP 8.0?What's new in PHP 8.0?
What's new in PHP 8.0?
Nikita Popov
 
What's new in PHP 8.0?
What's new in PHP 8.0?What's new in PHP 8.0?
What's new in PHP 8.0?
Nikita Popov
 
PHP Performance Trivia
PHP Performance TriviaPHP Performance Trivia
PHP Performance Trivia
Nikita Popov
 
Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)
Nikita Popov
 
PHP Language Trivia
PHP Language TriviaPHP Language Trivia
PHP Language Trivia
Nikita Popov
 

More from Nikita Popov (7)

A whirlwind tour of the LLVM optimizer
A whirlwind tour of the LLVM optimizerA whirlwind tour of the LLVM optimizer
A whirlwind tour of the LLVM optimizer
 
Opaque Pointers Are Coming
Opaque Pointers Are ComingOpaque Pointers Are Coming
Opaque Pointers Are Coming
 
What's new in PHP 8.0?
What's new in PHP 8.0?What's new in PHP 8.0?
What's new in PHP 8.0?
 
What's new in PHP 8.0?
What's new in PHP 8.0?What's new in PHP 8.0?
What's new in PHP 8.0?
 
PHP Performance Trivia
PHP Performance TriviaPHP Performance Trivia
PHP Performance Trivia
 
Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)Static Optimization of PHP bytecode (PHPSC 2017)
Static Optimization of PHP bytecode (PHPSC 2017)
 
PHP Language Trivia
PHP Language TriviaPHP Language Trivia
PHP Language Trivia
 

Recently uploaded

Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 

Recently uploaded (20)

Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 

PHP 7 – What changed internally?