SlideShare a Scribd company logo
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

More Related Content

Similar to Symfony2: the world slowest framework

Alan tacchinelli
Alan tacchinelliAlan tacchinelli
Alan tacchinelliSMAU
 
Italy vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porterItaly vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porter
Marco Scandaletti
 
Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5
Marcello Teodori
 
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"
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"PyCon Italia
 
Buildout
BuildoutBuildout
Buildout
Riccardo Lemmi
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)
Francesco Baldassarri
 
4. Introduzione al web (Parte I)
4. Introduzione al web (Parte I)4. Introduzione al web (Parte I)
4. Introduzione al web (Parte I)
Roberto Polillo
 
Aliprandi - Copyleft e open licensing in ambito software - 15-03-12
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 Aliprandi
 
Symfony (1/3) | Train to Symfony
Symfony (1/3) | Train to SymfonySymfony (1/3) | Train to Symfony
Symfony (1/3) | Train to Symfony
inmarelibero
 
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 - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Codemotion
 
Bk001 it c18-step_by_step
Bk001 it c18-step_by_stepBk001 it c18-step_by_step
Bk001 it c18-step_by_stephawk2012
 
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
Costruisci la tua piattaforma open-source di video-sharing in Python
simahawk
 
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMS
Roberto Polillo
 
Lezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaformaLezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaforma
Roberto Polillo
 
MODULO 25 –> Fondamenti delle tecnologie per il web
MODULO 25 –> Fondamenti delle tecnologie per il webMODULO 25 –> Fondamenti delle tecnologie per il web
MODULO 25 –> Fondamenti delle tecnologie per il web
Francesco Ciclosi
 
Di cosa parlano?
Di cosa parlano?Di cosa parlano?
Di cosa parlano?
Davide Cerbo
 
Siti web, portali e Rich Internet Applications: tendenze e controtendenze
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 Monica
 
Introduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettiveIntroduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettive
carlobecchi
 
Si fa presto a dire "opensource"
Si fa presto a dire "opensource"Si fa presto a dire "opensource"
Si fa presto a dire "opensource"
Carlo Piana
 

Similar to Symfony2: the world slowest framework (20)

Alan tacchinelli
Alan tacchinelliAlan tacchinelli
Alan tacchinelli
 
Italy vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porterItaly vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porter
 
Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5
 
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"
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"
 
Buildout
BuildoutBuildout
Buildout
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)
 
4. Introduzione al web (Parte I)
4. Introduzione al web (Parte I)4. Introduzione al web (Parte I)
4. Introduzione al web (Parte I)
 
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
 
Aliprandi - Copyleft e open licensing in ambito software - 15-03-12
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
 
Symfony (1/3) | Train to Symfony
Symfony (1/3) | Train to SymfonySymfony (1/3) | Train to Symfony
Symfony (1/3) | Train to Symfony
 
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 - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
 
Bk001 it c18-step_by_step
Bk001 it c18-step_by_stepBk001 it c18-step_by_step
Bk001 it c18-step_by_step
 
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
Costruisci la tua piattaforma open-source di video-sharing in Python
 
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMS
 
Lezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaformaLezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaforma
 
MODULO 25 –> Fondamenti delle tecnologie per il web
MODULO 25 –> Fondamenti delle tecnologie per il webMODULO 25 –> Fondamenti delle tecnologie per il web
MODULO 25 –> Fondamenti delle tecnologie per il web
 
Di cosa parlano?
Di cosa parlano?Di cosa parlano?
Di cosa parlano?
 
Siti web, portali e Rich Internet Applications: tendenze e controtendenze
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
 
Introduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettiveIntroduzione al Free Software: storia e prospettive
Introduzione al Free Software: storia e prospettive
 
Si fa presto a dire "opensource"
Si fa presto a dire "opensource"Si fa presto a dire "opensource"
Si fa presto a dire "opensource"
 

More from Filippo De Santis

Building a-self-sufficient-team
Building a-self-sufficient-teamBuilding a-self-sufficient-team
Building a-self-sufficient-team
Filippo De Santis
 
Xkanban V3: eXtreme Programming, Kanban and Timboxing
Xkanban V3: eXtreme Programming, Kanban and TimboxingXkanban V3: eXtreme Programming, Kanban and Timboxing
Xkanban V3: eXtreme Programming, Kanban and Timboxing
Filippo De Santis
 
xkanban v2 (ALE Bathtub III)
xkanban v2 (ALE Bathtub III)xkanban v2 (ALE Bathtub III)
xkanban v2 (ALE Bathtub III)Filippo De Santis
 
Xkanban: XP, Kanban and timeboxing
Xkanban: XP, Kanban and timeboxingXkanban: XP, Kanban and timeboxing
Xkanban: XP, Kanban and timeboxing
Filippo De Santis
 
Symfony2 per utenti Symfony 1.x: Architettura, modelli ed esempi
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
 

More from Filippo De Santis (6)

Design attern in php
Design attern in phpDesign attern in php
Design attern in php
 
Building a-self-sufficient-team
Building a-self-sufficient-teamBuilding a-self-sufficient-team
Building a-self-sufficient-team
 
Xkanban V3: eXtreme Programming, Kanban and Timboxing
Xkanban V3: eXtreme Programming, Kanban and TimboxingXkanban V3: eXtreme Programming, Kanban and Timboxing
Xkanban V3: eXtreme Programming, Kanban and Timboxing
 
xkanban v2 (ALE Bathtub III)
xkanban v2 (ALE Bathtub III)xkanban v2 (ALE Bathtub III)
xkanban v2 (ALE Bathtub III)
 
Xkanban: XP, Kanban and timeboxing
Xkanban: XP, Kanban and timeboxingXkanban: XP, Kanban and timeboxing
Xkanban: XP, Kanban and timeboxing
 
Symfony2 per utenti Symfony 1.x: Architettura, modelli ed esempi
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
 

Symfony2: the world slowest framework