SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
HipHop VM:
overclocking Symfony
Vadim Borodavko
vadim.borodavko@gmail.com
HipHop – replacement for Zend PHP

© 2008 – 2013

Vadim Borodavko
01.10.2013

01.08.2013

01.06.2013

01.04.2013

01.02.2013

01.12.2012

01.10.2012

01.08.2012

01.06.2012

01.04.2012

01.02.2012

01.12.2011

01.10.2011

01.08.2011

01.06.2011

01.04.2011

01.02.2011

01.12.2010

01.10.2010

01.08.2010

01.06.2010

01.04.2010

01.02.2010

HipHop – replacement for Zend PHP

Contributors

90

80

70

60

50

40

30

20

10

0

Vadim Borodavko
Two ways

HPHPc
•
•

Up to 6x faster than Zend PHP 5.2

No source code in production

Vadim Borodavko
Two ways

HPHPc
•
•
•

Compilation takes long time
Big executable files

Dynamic code

Vadim Borodavko
Two ways

HHVM
•
•
•

JIT-compilation

Dynamic code
Edit – Save – Run

Vadim Borodavko
Two ways

HHVM
•

The need for revision of the existing
PHP-code

Vadim Borodavko
Supported OS

Mint

Ubuntu

CentOS

Mac OS

Debian

Arch

Fedora

Gentoo

FreeBSD
Vadim Borodavko
Supported OS

https://github.com/javer/gentoo-overlay

Vadim Borodavko
Compatibility with PHP

5.4.999-hiphop
PHP 5.5 – to the end of 2013 year

Vadim Borodavko
Compatibility with PHP

5.3 features
•
•
•
•
•

namespaces
late static binding
goto
Closures
ternary operator
Vadim Borodavko
Compatibility with PHP

5.4 features
•
•
•
•
•

traits
$a = [1, 2, 3, 4];
foo()[0]
Closures with $this
(new Foo)->bar()

•

Class::{expr}()

Vadim Borodavko
Compatibility with PHP

5.5 features
•
•
•
•
•

generators
finally*
list() in foreach
empty(expr)
[1, 2, 3][0]

•
•
•

password_hash()
ClassName::class
“Hello”[0]

Vadim Borodavko
Compatibility with PHP

Extensions

50+

•
•
•
•
•
•

fileinfo
imagick
intl*
mysqli
tidy
xsl
Vadim Borodavko
PHP language extension
<?hh
class Walk<T as Iterator> {
private T $iterator;
public function setIterator(T $iterator, int $count): int {
$this->iterator = $iterator;
$keys = Vector<int> {};
$values = Map<int, string> {};
foreach ($iterator as $k => $v) {
$keys->add($k);
$values[$k] = $v;
}
return count($keys);
}
}
$iter = new ArrayIterator([1 => 'first', 2 => 'second']);
echo (new Walk<ArrayIterator>)->setIterator($iter,count($iter));

Vadim Borodavko
PHP language extension

Vadim Borodavko
PHP language extension

Type hinting
private int $count;
protected string $name;
public function setCount(int $count): int {

$this->iterator = $iterator;
}

Vadim Borodavko
PHP language extension

Tuples
public $t = tuple(“Symfony”, true);

Vadim Borodavko
PHP language extension

Collections
$keys = Vector<int> {};
$values = Map<int, string> {};
$keys->add($k);

$values[$k] = $v;
echo count($keys);

Vadim Borodavko
PHP language extension

Generics, Constraints
class Walk<T as Iterator> {
private T $iter;
public function setIterator(T $iter) {
...
}
}
new Walk<ArrayIterator>();
Vadim Borodavko
Operational modes

CLI
•
•
•

PHP CLI: hhvm --php
A bit slower than Zend PHP
JIT-compilation*

Vadim Borodavko
Operational modes

Server
•
•
•
•

Apache
Compilation at startup
FastCGI – soon
RepoAuthoritative mode

Vadim Borodavko
Configuration features

config.hdf
•
•
•
•
•
•

Eval
Log
Server
VirtualHost

AdminServer

•
•
•
•
•

Stats
MySQL
Http
Mail

Tiers

StaticFile
Vadim Borodavko
Configuration features

Eval
Eval {
Jit = true
JitWarmupRequests = 11
JitASize = 536870912
JitAStubsSize = 536870912
JitGlobalDataSize = 134217728
}
Eval {
JitASize = 134217728
JitAStubsSize = 134217728
JitGlobalDataSize = 67108864
}

# 512MB
# 512MB
# 128MB

# 128MB
# 128MB
# 64MB
Vadim Borodavko
Configuration features

Server
Server {
Host = domain.tld
IP = 127.0.0.1
Port = 4247
ThreadCount = 10
SourceRoot = /var/www/domain.tld
IncludeSearchPaths {
symfony = /var/www/symfony-1.4
}
RequestTimeoutSeconds = 30
RequestMemoryMaxBytes = 134217728
}
Vadim Borodavko
Configuration features

Server startup options
Server {
DefaultDocument = index.php
StartupDocument = filename
WarmupDocument = filename
RequestInitFunction = function_name
ThreadDocuments {
* = somedoc.php
* = another.php
}
ErrorDocument404 = 404.php
FatalErrorMessage = Something wrong
}
Vadim Borodavko
Configuration features

Server http settings
Server {
...
GzipCompressionLevel = 3
EnableMagicQuotesGpc = false
EnableKeepAlive = true
EnableEarlyFlush = true
ForceChunkedEncoding = false
MaxPostSize = 65 # in MB
LibEventSyncSend = true
ResponseQueueCount = 0
...
}
Vadim Borodavko
Configuration features

VirtualHost
VirtualHost {
default {
Disabled = false
Prefix = prefix.
Pattern = .*
PathTranslation = web/
ServerName = domain.tld
ServerVariables {
name = value
}
RewriteRules { }
}
}
Vadim Borodavko
Configuration features

VirtualHost  RewriteRules
frontend {
pattern = ^(.*)$
to = app.php/$1
qsa = true
conditions {
not_script {
pattern = .php$
type = request
negate = true
}
}
}
Vadim Borodavko
Configuration features

AdminServer, StaticFile
AdminServer {
Port = 4248
ThreadCount = 1
Password = password
}
StaticFile {
Extensions {
bmp = image/bmp
}
Generators {
* = static_resource.php
}
}
Vadim Borodavko
Configuration features

Stats, MySQL

Stats {
Web = false
Memory = false
APC = false
APCKey = false
SQL = false
}
MySQL {
ReadOnly = false
ConnectTimeout = 1000
ReadTimeout = 4000
SlowQueryThreshold = 2000
KillOnTimeout = false
}

Vadim Borodavko
Configuration features

Http, Mail, Tiers

Http {
DefaultTimeout = 30
SlowQueryThreshold = 5000
}
Mail {
SendmailPath = sendmail -t -i
ForceExtraParameters =
}
Tiers {
* {
machine = /regex pattern/
overwrite { ... }
}
}

Vadim Borodavko
Configuration features

Vadim Borodavko
Performance: HHVM vs PHP

1.4
Time, ms

Memory, KB

URL
PHP 5.3 PHP 5.5 HHVM 2.2 PHP 5.3 PHP 5.5 HHVM 2.2
/

58

49

17

18 668

16 128

615

/politics

57

48

16

18 688

15 872

598

/publication/5
129-

68

54

18

23 808

20 736

607

/publication

56

45

17

18 176

15 360

606

/issue/92

51

40

15

17 408

14 592

617

/app

45

36

13

16 128

13 824

498

/time

56

45

16

18 432

15 616

554

/tag/siriya

61

49

18

18 784

16 032

586
Vadim Borodavko
Performance: HHVM vs PHP

1.4
HHVM 2.2
PHP 5.5
PHP 5.3

Time, ms

0

10

20

30

40

50

60

HHVM 2.2
PHP 5.5
PHP 5.3

Memory, MB

0

5

10

15

20
Vadim Borodavko
Performance: HHVM vs PHP

2.3
Time, ms

Memory, KB

URL
PHP 5.3 PHP 5.5

HHVM 2.2

PHP 5.3 PHP 5.5 HHVM 2.2

/

119

91

67

13 056

10 240

796

/t/t-shirts

139

105

74

15 360

12 032

1 315

/p/t-shirtautem

123

94

68

15 616

11 264

662

/cart

106

81

63

13 056

10 240

550

/register/

109

84

64

14 336

10 752

571

/login

102

78

61

12 288

9 728

549
Vadim Borodavko
Performance: HHVM vs PHP

2.3
HHVM 2.2
PHP 5.5
PHP 5.3

Time, ms

0

50

100

150

HHVM 2.2
PHP 5.5
PHP 5.3

Memory, MB

0

5

10

15
Vadim Borodavko
HHVM with your project

Vagrant
$ git clone https://github.com/javer/hhvm-vagrant-vm

$ cd hhvm-vagrant-vm
$ cp -R /var/www/site/* ./
$ vagrant up
$ wget http://127.0.0.1:9080/
$ wget http://127.0.0.1:9081/

Vadim Borodavko
HHVM with your project

1.4
•

Symfony
https://github.com/javer/symfony1

• sfPropelORMPlugin
https://github.com/propelorm/sfPropelORMPlugin

•

Propel
https://github.com/propelorm/Propel

•

Phing 2.6+
https://github.com/phingofficial/phing
Vadim Borodavko
HHVM with your project

2.3

•
•
•
•

Doctrine DBAL
Doctrine 2 ORM

Twig
ResourceBundle

Vadim Borodavko
HHVM with your project

Doctrine DBAL
•

2.3

func_get_args
https://github.com/doctrine/dbal/pull/372

•

implement declared interfaces
https://github.com/doctrine/dbal/pull/373
PDOConnection extends PDO implements Connection
PDOStatement extends PDOStatement implements Statement
Vadim Borodavko
HHVM with your project

Doctrine 2 ORM
•

2.3

func_get_args
https://github.com/doctrine/doctrine2/pull/790

•

Preserve class property DocComment for reflection
https://github.com/facebook/hhvm/pull/1199

Vadim Borodavko
HHVM with your project

Twig
•

2.3

Array sometimes can be Traversable
https://github.com/fabpot/Twig/pull/1192

Vadim Borodavko
HHVM with your project

2.3
• ResourceBundle
https://github.com/javer/hhvm/tree/intlresourcebundle/hphp/system/php/intl

Vadim Borodavko
Popular frameworks and CMS support

HHVM 2.2-dev
Framework

% Unit Tests
Pass

% Unit Tests
Failing

Symfony 2
Doctrine DBAL
Doctrine 2 ORM
Twig
PHPUnit
Composer
Symfony 1.4

98.12
97.61
99.41
100
90.52
99.13
97

1.51
1.39
0.59
0
9.48
0.87
3

% Unit Tests
Causing HHVM
to Fatal
0.37
1.00
0
0
0
0
0

Vadim Borodavko
Popular frameworks and CMS support

HHVM 2.1
Framework

% Unit Tests Pass

% Unit Tests Failing

PHPUnit
Composer
Symfony
CakePHP
Wordpress
Joomla
phpBB
phpMyAdmin
Laravel
Zend Framework 2
yii
Slim
Doctrine
Assetic
Twig
Drupal
Paris
Idiorm
CodeIgniter
Magento

90
97
91
0
76
0
0
0
95
0
92
99
0
80
78
98
100
100
81
0

10
3
9
Tests won't run
24
Tests won't run
100
Tests won't run
3
Tests won't run
8
1
Tests won't run
20
22
2
0
0
19
Tests won't run

% Unit Tests Causing
HHVM to Fatal
0
<1
<1
Tests won't run
<1
Tests won't run
0
Tests won't run
2
Tests won't run
<1
0
Tests won't run
0
0
0
0
0
<1
Tests won't run
Vadim Borodavko
Competitors

Vadim Borodavko
Competitors

kPHP
•
•
•

Translator PHP into C++
Strict typing

Vkontakte size – 300 MB

Vadim Borodavko
Competitors

kPHP
does not
support OOP

at all.
© 2013
Vadim Borodavko
About me

Vadim Borodavko
• Chief Software Developer at Argentum IT Lab
• E-mail: vadim.borodavko@gmail.com
• GitHub: https://github.com/javer
• LinkedIn: http://linkedin.com/in/javer
• Twitter: https://twitter.com/mrjaver

All trademarks are property of their respective owners

Vadim Borodavko

Contenu connexe

Tendances

Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Jeff Jones
 
Ruby in the Browser - RubyConf 2011
Ruby in the Browser - RubyConf 2011Ruby in the Browser - RubyConf 2011
Ruby in the Browser - RubyConf 2011Ilya Grigorik
 
HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战Jerry Qu
 
LCA2014 - Introduction to Go
LCA2014 - Introduction to GoLCA2014 - Introduction to Go
LCA2014 - Introduction to Godreamwidth
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparisonHiroshi Nakamura
 
ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4Jim Jagielski
 
A rough guide to JavaScript Performance
A rough guide to JavaScript PerformanceA rough guide to JavaScript Performance
A rough guide to JavaScript Performanceallmarkedup
 
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0Cory Forsyth
 
HTTP 2.0 Why, How and When
HTTP 2.0 Why, How and WhenHTTP 2.0 Why, How and When
HTTP 2.0 Why, How and WhenCodemotion
 
Php through the eyes of a hoster
Php through the eyes of a hosterPhp through the eyes of a hoster
Php through the eyes of a hosterCombell NV
 
Introduction to performance tuning perl web applications
Introduction to performance tuning perl web applicationsIntroduction to performance tuning perl web applications
Introduction to performance tuning perl web applicationsPerrin Harkins
 
What HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For YouWhat HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For YouMark Nottingham
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 IntroductionWalter Liu
 
HTTP Caching in Web Application
HTTP Caching in Web ApplicationHTTP Caching in Web Application
HTTP Caching in Web ApplicationMartins Sipenko
 

Tendances (20)

Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!
 
Ruby in the Browser - RubyConf 2011
Ruby in the Browser - RubyConf 2011Ruby in the Browser - RubyConf 2011
Ruby in the Browser - RubyConf 2011
 
HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战
 
LCA2014 - Introduction to Go
LCA2014 - Introduction to GoLCA2014 - Introduction to Go
LCA2014 - Introduction to Go
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparison
 
ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4
 
A rough guide to JavaScript Performance
A rough guide to JavaScript PerformanceA rough guide to JavaScript Performance
A rough guide to JavaScript Performance
 
Perl comet
Perl cometPerl comet
Perl comet
 
Elastic stack
Elastic stackElastic stack
Elastic stack
 
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
HTTP by Hand: Exploring HTTP/1.0, 1.1 and 2.0
 
HTTP 2.0 Why, How and When
HTTP 2.0 Why, How and WhenHTTP 2.0 Why, How and When
HTTP 2.0 Why, How and When
 
Varnish
VarnishVarnish
Varnish
 
Php through the eyes of a hoster
Php through the eyes of a hosterPhp through the eyes of a hoster
Php through the eyes of a hoster
 
Introduction to performance tuning perl web applications
Introduction to performance tuning perl web applicationsIntroduction to performance tuning perl web applications
Introduction to performance tuning perl web applications
 
Caching on the Edge
Caching on the EdgeCaching on the Edge
Caching on the Edge
 
What HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For YouWhat HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For You
 
Ruby HTTP clients
Ruby HTTP clientsRuby HTTP clients
Ruby HTTP clients
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
 
HTTP Caching in Web Application
HTTP Caching in Web ApplicationHTTP Caching in Web Application
HTTP Caching in Web Application
 
Usenix lisa 2011
Usenix lisa 2011Usenix lisa 2011
Usenix lisa 2011
 

Similaire à HipHop VM: overclocking Symfony

HTTP logging met Varnishlog - PHPWVL 2022
HTTP logging met Varnishlog - PHPWVL 2022HTTP logging met Varnishlog - PHPWVL 2022
HTTP logging met Varnishlog - PHPWVL 2022Thijs Feryn
 
Quick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with HerokuQuick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with HerokuDaniel Pritchett
 
Http capturing
Http capturingHttp capturing
Http capturingEric Ahn
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindSam Keen
 
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoAlessandro Nadalin
 
ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4Jim Jagielski
 
How To Start Up With PHP In IBM i
How To Start Up With PHP In IBM iHow To Start Up With PHP In IBM i
How To Start Up With PHP In IBM iSam Pinkhasov
 
How To Start Up With Php In Ibm I
How To Start Up With Php In Ibm IHow To Start Up With Php In Ibm I
How To Start Up With Php In Ibm IAlex Frenkel
 
10 Million hits a day with WordPress using a $15 VPS
10 Million hits a day  with WordPress using a $15 VPS10 Million hits a day  with WordPress using a $15 VPS
10 Million hits a day with WordPress using a $15 VPSPaolo Tonin
 
Converting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaDana Luther
 
PHP Sessions and Non-Sessions
PHP Sessions and Non-SessionsPHP Sessions and Non-Sessions
PHP Sessions and Non-SessionsSven Rautenberg
 
Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Puppet
 
Apache HTTPD 2.4 - GWO2016
Apache HTTPD 2.4 - GWO2016Apache HTTPD 2.4 - GWO2016
Apache HTTPD 2.4 - GWO2016Jim Jagielski
 
High performance web server
High performance web serverHigh performance web server
High performance web serverWataru OKAMOTO
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupJonathan Klein
 
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!MongoDB World 2019: Becoming an Ops Manager Backup Superhero!
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!MongoDB
 

Similaire à HipHop VM: overclocking Symfony (20)

HTTP logging met Varnishlog - PHPWVL 2022
HTTP logging met Varnishlog - PHPWVL 2022HTTP logging met Varnishlog - PHPWVL 2022
HTTP logging met Varnishlog - PHPWVL 2022
 
Quick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with HerokuQuick and Dirty Python Deployments with Heroku
Quick and Dirty Python Deployments with Heroku
 
Nginx pres
Nginx presNginx pres
Nginx pres
 
Http capturing
Http capturingHttp capturing
Http capturing
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
 
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
 
Websockets
WebsocketsWebsockets
Websockets
 
ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4
 
How To Start Up With PHP In IBM i
How To Start Up With PHP In IBM iHow To Start Up With PHP In IBM i
How To Start Up With PHP In IBM i
 
How To Start Up With Php In Ibm I
How To Start Up With Php In Ibm IHow To Start Up With Php In Ibm I
How To Start Up With Php In Ibm I
 
10 Million hits a day with WordPress using a $15 VPS
10 Million hits a day  with WordPress using a $15 VPS10 Million hits a day  with WordPress using a $15 VPS
10 Million hits a day with WordPress using a $15 VPS
 
Converting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - Cascadia
 
PHP Sessions and Non-Sessions
PHP Sessions and Non-SessionsPHP Sessions and Non-Sessions
PHP Sessions and Non-Sessions
 
Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014
 
Apache httpd v2.4
Apache httpd v2.4Apache httpd v2.4
Apache httpd v2.4
 
Apache HTTPD 2.4 - GWO2016
Apache HTTPD 2.4 - GWO2016Apache HTTPD 2.4 - GWO2016
Apache HTTPD 2.4 - GWO2016
 
High performance web server
High performance web serverHigh performance web server
High performance web server
 
The SPDY Protocol
The SPDY ProtocolThe SPDY Protocol
The SPDY Protocol
 
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
 
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!MongoDB World 2019: Becoming an Ops Manager Backup Superhero!
MongoDB World 2019: Becoming an Ops Manager Backup Superhero!
 

Dernier

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 

Dernier (20)

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 

HipHop VM: overclocking Symfony