Symfony2: the world slowest framework

Filippo De Santis
Filippo De SantisSoftware Developer at Ideato s.r.l.
Symfony2
The world slowest framework

venerdì 18 ottobre 13
What’s a framework?

[...] a software framework is an abstraction in which
software providing generic functionality can be
selectively changed by additional user-written code,
thus providing application-specific software.
http://en.wikipedia.org/wiki/Software_framework

venerdì 18 ottobre 13
Framework
VS
Library

Inversion of Control

venerdì 18 ottobre 13
Framework

Value
AND
Technical debt

venerdì 18 ottobre 13
Speed

venerdì 18 ottobre 13
Procedural VS OO Code

venerdì 18 ottobre 13
Procedural VS OO Code

venerdì 18 ottobre 13
Optimization

venerdì 18 ottobre 13
Server VS Dev Costs

venerdì 18 ottobre 13
Freedom to change

venerdì 18 ottobre 13
What do you need?

venerdì 18 ottobre 13
What do you like?

venerdì 18 ottobre 13
Knowledge

venerdì 18 ottobre 13
Community

venerdì 18 ottobre 13
Symfony: beware of

Steep learning curve
venerdì 18 ottobre 13
Symfony: beware of

from great power
comes great responsability
venerdì 18 ottobre 13
Why I choose Symfony

Community

venerdì 18 ottobre 13
Why I choose Symfony

Adhere to standards

venerdì 18 ottobre 13
Why I choose Symfony

Frameworks are developers tools

venerdì 18 ottobre 13
Why I choose Symfony
No need for the full package
[thanks composer!]

venerdì 18 ottobre 13
Why I choose Symfony
Based on HTTP
[request/response, caching, reverse proxy, esi]

venerdì 18 ottobre 13
To Production

php app/check.php

venerdì 18 ottobre 13
To Production

AppCache.php is your friend

venerdì 18 ottobre 13
To Production
Doctrine
query_cache_driver
metadata_cache_driver
result_cache_driver

APC - Memcache - XCache - Redis

venerdì 18 ottobre 13
To Production
Profiler
No, thanks.
Always add ‘--env=prod’ to command

venerdì 18 ottobre 13
To Production
Logging
Only errors, thanks.

Monolog ‘buer_size’ parameter

venerdì 18 ottobre 13
To Production
Apache routes
php app/console router:dump-apache -e=prod --no-debug

venerdì 18 ottobre 13
To Production
Assetic
php app/console assetic:dump --env=prod --no-debug

venerdì 18 ottobre 13
To Production
Composer
php composer.phar install --optimize-autoloader

venerdì 18 ottobre 13
To Production
PHP < 5.5 => APC
PHP >= 5.5 => OPCache

venerdì 18 ottobre 13
My Conclusion
1. Choose on your needs
2. Readability matters
3. Premature optimization is the route of all evil

venerdì 18 ottobre 13
Thanks
Filippo De Santis
@filippodesantis
fd@ideato.it

venerdì 18 ottobre 13
Refs
http://slides.seld.be/?file=2011-10-20+High+Performance+Websites+with+Symfony2.html#1
http://www.gregfreeman.org/2013/your-php-framework-choice-doesnt-matter/
https://igor.io/2013/09/02/how-heavy-is-silex.html
http://stackoverflow.com/questions/16696763/why-is-symfony2-performing-so-bad-in-benchmarks-and-does-it-matter
http://symfony2-checklist.com/
http://slides.liip.ch/static/2012-05-18_symfony-speed.html#1
http://www.slideshare.net/liuggio/rationally-boost-your-symfony2-application-with-caching-tips-and-monitoring
http://www.nigeldunn.com/2011/11/24/my-last-thoughts-on-symfony2/
http://docs.doctrine-project.org/en/latest/reference/caching.html
http://symfony.com/doc/current/index.html
http://www.emanueleminotto.it/im-afraid-symfony-2-performances
http://www.slideshare.net/liuggio/rationally-boost-your-symfony2-application-with-caching-tips-and-monitoring

venerdì 18 ottobre 13
PICS
http://www.flickr.com/photos/stankuns/8738770989
http://www.davehakkens.nl/
http://www.flickr.com/photos/takahiro/359406450
http://www.flickr.com/photos/mayhem/2939259129
http://www.flickr.com/photos/pfv/2739621207/
http://www.flickr.com/photos/kitty-kat/6049220331
http://www.flickr.com/photos/mtwashington/5062599268
http://www.flickr.com/photos/harlequeen/6371193319
http://www.flickr.com/photos/28990363@N05/6414310131

venerdì 18 ottobre 13
1 of 34

Recommended

Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma by
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaSymfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaHüseyin Mert
2.3K views35 slides
Yük altındaki sistemlerde asenkron hayat by
Yük altındaki sistemlerde asenkron hayatYük altındaki sistemlerde asenkron hayat
Yük altındaki sistemlerde asenkron hayatibrahimgunduz34
5.3K views23 slides
BÜYÜK Portalleri nasıl ReFactor ettik by
BÜYÜK Portalleri nasıl ReFactor ettikBÜYÜK Portalleri nasıl ReFactor ettik
BÜYÜK Portalleri nasıl ReFactor ettikHüseyin Mert
658 views78 slides
İlişkisel Veritabanları, ORM ve Doctrine by
İlişkisel Veritabanları, ORM ve Doctrineİlişkisel Veritabanları, ORM ve Doctrine
İlişkisel Veritabanları, ORM ve DoctrineMuhittin Özer
9.1K views38 slides
Symfony2 & doctrine by
Symfony2 & doctrineSymfony2 & doctrine
Symfony2 & doctrineEmre YILMAZ
1.2K views38 slides
Bulutlar Üzerinde.. by
Bulutlar Üzerinde..Bulutlar Üzerinde..
Bulutlar Üzerinde..Hüseyin Mert
836 views60 slides

More Related Content

Similar to Symfony2: the world slowest framework

Alan tacchinelli by
Alan tacchinelliAlan tacchinelli
Alan tacchinelliSmau
322 views19 slides
Italy vmug 2019 PowerCLI pret-a-porter by
Italy vmug 2019 PowerCLI pret-a-porterItaly vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porterMarco Scandaletti
249 views38 slides
Streaming in Java e Flex con Red5 by
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Marcello Teodori
1.4K views27 slides
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione" by
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"PyCon Italia
730 views12 slides
Buildout by
BuildoutBuildout
BuildoutRiccardo Lemmi
498 views12 slides
Meego Italian Day 2011 - Francesco Baldassarri (1) by
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Francesco Baldassarri
460 views28 slides

Similar to Symfony2: the world slowest framework(20)

Alan tacchinelli by Smau
Alan tacchinelliAlan tacchinelli
Alan tacchinelli
Smau322 views
Streaming in Java e Flex con Red5 by Marcello Teodori
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5
Marcello Teodori1.4K views
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione" by PyCon Italia
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"
PyCon Italia730 views
4. Introduzione al web (Parte I) by Roberto Polillo
4. Introduzione al web (Parte I)4. Introduzione al web (Parte I)
4. Introduzione al web (Parte I)
Roberto Polillo1.1K views
Aliprandi - Copyleft e open licensing in ambito software - 15-03-12 by Simone Aliprandi
Aliprandi - Copyleft e open licensing in ambito software - 15-03-12Aliprandi - Copyleft e open licensing in ambito software - 15-03-12
Aliprandi - Copyleft e open licensing in ambito software - 15-03-12
Simone Aliprandi510 views
Symfony (1/3) | Train to Symfony by inmarelibero
Symfony (1/3) | Train to SymfonySymfony (1/3) | Train to Symfony
Symfony (1/3) | Train to Symfony
inmarelibero1.7K views
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ... by Codemotion
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Codemotion557 views
Bk001 it c18-step_by_step by hawk2012
Bk001 it c18-step_by_stepBk001 it c18-step_by_step
Bk001 it c18-step_by_step
hawk2012755 views
Costruisci la tua piattaforma open-source di video-sharing in Python by simahawk
Costruisci la tua piattaforma open-source di video-sharing in Python Costruisci la tua piattaforma open-source di video-sharing in Python
Costruisci la tua piattaforma open-source di video-sharing in Python
simahawk440 views
Lezione 6: Il Web come piattaforma by Roberto Polillo
Lezione 6: Il Web come piattaformaLezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaforma
Roberto Polillo630 views
MODULO 25 –> Fondamenti delle tecnologie per il web by Francesco Ciclosi
MODULO 25 –> Fondamenti delle tecnologie per il webMODULO 25 –> Fondamenti delle tecnologie per il web
MODULO 25 –> Fondamenti delle tecnologie per il web
Francesco Ciclosi534 views
Siti web, portali e Rich Internet Applications: tendenze e controtendenze by Diego La Monica
Siti web, portali e Rich Internet Applications: tendenze e controtendenzeSiti web, portali e Rich Internet Applications: tendenze e controtendenze
Siti web, portali e Rich Internet Applications: tendenze e controtendenze
Diego La Monica452 views
Introduzione al Free Software: storia e prospettive by carlobecchi
Introduzione al Free Software: storia e prospettiveIntroduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettive
carlobecchi929 views
Si fa presto a dire "opensource" by Carlo Piana
Si fa presto a dire "opensource"Si fa presto a dire "opensource"
Si fa presto a dire "opensource"
Carlo Piana387 views

More from Filippo De Santis

Design attern in php by
Design attern in phpDesign attern in php
Design attern in phpFilippo De Santis
1.6K views55 slides
Building a-self-sufficient-team by
Building a-self-sufficient-teamBuilding a-self-sufficient-team
Building a-self-sufficient-teamFilippo De Santis
3.4K views33 slides
Xkanban V3: eXtreme Programming, Kanban and Timboxing by
Xkanban V3: eXtreme Programming, Kanban and TimboxingXkanban V3: eXtreme Programming, Kanban and Timboxing
Xkanban V3: eXtreme Programming, Kanban and TimboxingFilippo De Santis
2.1K views69 slides
xkanban v2 (ALE Bathtub III) by
xkanban v2 (ALE Bathtub III)xkanban v2 (ALE Bathtub III)
xkanban v2 (ALE Bathtub III)Filippo De Santis
990 views23 slides
Xkanban: XP, Kanban and timeboxing by
Xkanban: XP, Kanban and timeboxingXkanban: XP, Kanban and timeboxing
Xkanban: XP, Kanban and timeboxingFilippo De Santis
1.8K views43 slides
Symfony2 per utenti Symfony 1.x: Architettura, modelli ed esempi by
Symfony2  per utenti Symfony 1.x: Architettura, modelli ed esempiSymfony2  per utenti Symfony 1.x: Architettura, modelli ed esempi
Symfony2 per utenti Symfony 1.x: Architettura, modelli ed esempiFilippo De Santis
918 views33 slides

More from Filippo De Santis(6)

Xkanban V3: eXtreme Programming, Kanban and Timboxing by Filippo De Santis
Xkanban V3: eXtreme Programming, Kanban and TimboxingXkanban V3: eXtreme Programming, Kanban and Timboxing
Xkanban V3: eXtreme Programming, Kanban and Timboxing
Filippo De Santis2.1K views
Symfony2 per utenti Symfony 1.x: Architettura, modelli ed esempi by Filippo De Santis
Symfony2  per utenti Symfony 1.x: Architettura, modelli ed esempiSymfony2  per utenti Symfony 1.x: Architettura, modelli ed esempi
Symfony2 per utenti Symfony 1.x: Architettura, modelli ed esempi
Filippo De Santis918 views

Symfony2: the world slowest framework