SlideShare a Scribd company logo
1 of 50
Download to read offline
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

More Related Content

What's hot

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
 

What's hot (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
 

Similar to 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
 

Similar to 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!
 

Recently uploaded

Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Deliver Latency Free Customer Experience
Deliver Latency Free Customer ExperienceDeliver Latency Free Customer Experience
Deliver Latency Free Customer ExperienceOpsTree solutions
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneUiPathCommunity
 
Introduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptxIntroduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptxmprakaash5
 
Arti Languages Pre Seed Pitchdeck 2024.pdf
Arti Languages Pre Seed Pitchdeck 2024.pdfArti Languages Pre Seed Pitchdeck 2024.pdf
Arti Languages Pre Seed Pitchdeck 2024.pdfwill854175
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfROWELL MARQUINA
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Which standard is best for your content?
Which standard is best for your content?Which standard is best for your content?
Which standard is best for your content?Rustici Software
 
Dynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientationDynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientationBuild Intuit
 

Recently uploaded (20)

Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Deliver Latency Free Customer Experience
Deliver Latency Free Customer ExperienceDeliver Latency Free Customer Experience
Deliver Latency Free Customer Experience
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyone
 
Introduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptxIntroduction-to-Wazuh-and-its-integration.pptx
Introduction-to-Wazuh-and-its-integration.pptx
 
Arti Languages Pre Seed Pitchdeck 2024.pdf
Arti Languages Pre Seed Pitchdeck 2024.pdfArti Languages Pre Seed Pitchdeck 2024.pdf
Arti Languages Pre Seed Pitchdeck 2024.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdf
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Which standard is best for your content?
Which standard is best for your content?Which standard is best for your content?
Which standard is best for your content?
 
Dynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientationDynamical Context introduction word sensibility orientation
Dynamical Context introduction word sensibility orientation
 

HipHop VM: overclocking Symfony