SlideShare une entreprise Scribd logo
1  sur  122
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Implementation and Comparison of Softcore Multiplier Architectures for FPGAs
Implementation and Comparison of Softcore Multiplier Architectures for FPGAsImplementation and Comparison of Softcore Multiplier Architectures for FPGAs
Implementation and Comparison of Softcore Multiplier Architectures for FPGAsShahid Abbas
 
Lock-free algorithms for Kotlin Coroutines
Lock-free algorithms for Kotlin CoroutinesLock-free algorithms for Kotlin Coroutines
Lock-free algorithms for Kotlin CoroutinesRoman Elizarov
 
nl80211 and libnl
nl80211 and libnlnl80211 and libnl
nl80211 and libnlawkman
 
Trip down the GPU lane with Machine Learning
Trip down the GPU lane with Machine LearningTrip down the GPU lane with Machine Learning
Trip down the GPU lane with Machine LearningRenaldas Zioma
 
The Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car ArchitecturesThe Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car ArchitecturesReal-Time Innovations (RTI)
 
Cilium - BPF & XDP for containers
 Cilium - BPF & XDP for containers Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containersDocker, Inc.
 
Sheppard Toronto
Sheppard TorontoSheppard Toronto
Sheppard TorontoChris Fyvie
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveTechnopark
 
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요? (2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요? 내훈 정
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThomas Graf
 
Image style transfer & AI on App
Image style transfer & AI on AppImage style transfer & AI on App
Image style transfer & AI on AppChihyang Li
 
Browsing Linux Kernel Source
Browsing Linux Kernel SourceBrowsing Linux Kernel Source
Browsing Linux Kernel SourceMotaz Saad
 
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel" You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel" Peter Hlavaty
 
Making a Headless Android Device
Making a Headless Android DeviceMaking a Headless Android Device
Making a Headless Android DevicePatricia Aas
 
Handling inline assembly in Clang and LLVM
Handling inline assembly in Clang and LLVMHandling inline assembly in Clang and LLVM
Handling inline assembly in Clang and LLVMMin-Yih Hsu
 
IPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, CapabilitiesIPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, CapabilitiesMartin Děcký
 

Tendances (20)

Jquery ui
Jquery uiJquery ui
Jquery ui
 
Implementation and Comparison of Softcore Multiplier Architectures for FPGAs
Implementation and Comparison of Softcore Multiplier Architectures for FPGAsImplementation and Comparison of Softcore Multiplier Architectures for FPGAs
Implementation and Comparison of Softcore Multiplier Architectures for FPGAs
 
Lock-free algorithms for Kotlin Coroutines
Lock-free algorithms for Kotlin CoroutinesLock-free algorithms for Kotlin Coroutines
Lock-free algorithms for Kotlin Coroutines
 
nl80211 and libnl
nl80211 and libnlnl80211 and libnl
nl80211 and libnl
 
CMake best practices
CMake best practicesCMake best practices
CMake best practices
 
MySQLi
MySQLiMySQLi
MySQLi
 
Trip down the GPU lane with Machine Learning
Trip down the GPU lane with Machine LearningTrip down the GPU lane with Machine Learning
Trip down the GPU lane with Machine Learning
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 
The Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car ArchitecturesThe Low-Risk Path to Building Autonomous Car Architectures
The Low-Risk Path to Building Autonomous Car Architectures
 
Cilium - BPF & XDP for containers
 Cilium - BPF & XDP for containers Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containers
 
Sheppard Toronto
Sheppard TorontoSheppard Toronto
Sheppard Toronto
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요? (2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
 
Image style transfer & AI on App
Image style transfer & AI on AppImage style transfer & AI on App
Image style transfer & AI on App
 
Browsing Linux Kernel Source
Browsing Linux Kernel SourceBrowsing Linux Kernel Source
Browsing Linux Kernel Source
 
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel" You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
 
Making a Headless Android Device
Making a Headless Android DeviceMaking a Headless Android Device
Making a Headless Android Device
 
Handling inline assembly in Clang and LLVM
Handling inline assembly in Clang and LLVMHandling inline assembly in Clang and LLVM
Handling inline assembly in Clang and LLVM
 
IPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, CapabilitiesIPC in Microkernel Systems, Capabilities
IPC in Microkernel Systems, Capabilities
 

En vedette

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 6Andrei 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 7Damien 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 futureRadu Murzea
 
Php7 extensions workshop
Php7 extensions workshopPhp7 extensions workshop
Php7 extensions workshopjulien pauli
 
PHP tutorial | ptutorial
PHP tutorial | ptutorialPHP tutorial | ptutorial
PHP tutorial | ptutorialPTutorial 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 6pctechnology
 
PHP7 - For Its Best Performance
PHP7 - For Its Best PerformancePHP7 - For Its Best Performance
PHP7 - For Its Best PerformanceXinchen Hui
 
PHP7.1 New Features & Performance
PHP7.1 New Features & PerformancePHP7.1 New Features & Performance
PHP7.1 New Features & PerformanceXinchen 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 trainXinchen 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 2013aferrandini
 
High Performance Solution for PHP7
High Performance Solution for PHP7High Performance Solution for PHP7
High Performance Solution for PHP7Xinchen 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 frameworkBukhori 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 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015Colin 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, ItalyPatrick Allaert
 

En vedette (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
 

Similaire à 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 & ArraysHenry 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 BootstrapHoward 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: HackVic Metcalfe
 
Introdução ao Perl 6
Introdução ao Perl 6Introdução ao Perl 6
Introdução ao Perl 6garux
 
The History of PHPersistence
The History of PHPersistenceThe History of PHPersistence
The History of PHPersistenceHugo Hamon
 
循環参照のはなし
循環参照のはなし循環参照のはなし
循環参照のはなしMasahiro Honma
 
Python Fundamentals - Basic
Python Fundamentals - BasicPython Fundamentals - Basic
Python Fundamentals - BasicWei-Yuan Chang
 
Ruby nooks & crannies
Ruby nooks & cranniesRuby nooks & crannies
Ruby nooks & cranniesKerry Buckley
 
GE8151 Problem Solving and Python Programming
GE8151 Problem Solving and Python ProgrammingGE8151 Problem Solving and Python Programming
GE8151 Problem Solving and Python ProgrammingMuthu Vinayagam
 
Casting for not so strange actors
Casting for not so strange actorsCasting for not so strange actors
Casting for not so strange actorszucaritask
 
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 FunctionsDavid 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 programmingThang Nguyen
 
Perl 6 in Context
Perl 6 in ContextPerl 6 in Context
Perl 6 in Contextlichtkind
 
Refactor like a boss
Refactor like a bossRefactor like a boss
Refactor like a bossgsterndale
 
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 MongoDBjorgeortiz85
 

Similaire à 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
 

Plus de 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 optimizerNikita Popov
 
Opaque Pointers Are Coming
Opaque Pointers Are ComingOpaque Pointers Are Coming
Opaque Pointers Are ComingNikita 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 TriviaNikita 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 TriviaNikita Popov
 

Plus de 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
 

Dernier

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 

Dernier (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 

PHP 7 – What changed internally?