Soumettre la recherche
Mettre en ligne
Fr os con2010_devel_nytprof
•
Télécharger en tant que ODP, PDF
•
0 j'aime
•
746 vues
Renee Baecker
Suivre
Vortrag über das Perl-Modul Devel::NYTProf auf der FrOSCon 2010.
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 50
Télécharger maintenant
Recommandé
Froscamp2010_padre
Froscamp2010_padre
Renee Baecker
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Ralf Eggert
The Lotus Code Cookbook
The Lotus Code Cookbook
Ulrich Krause
Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1
Gregor Biswanger
Ruby
Ruby
Fabian Becker
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Gregor Biswanger
Dzug plone4
Dzug plone4
Timo Stollenwerk
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Gregor Biswanger
Recommandé
Froscamp2010_padre
Froscamp2010_padre
Renee Baecker
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Ralf Eggert
The Lotus Code Cookbook
The Lotus Code Cookbook
Ulrich Krause
Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1
Gregor Biswanger
Ruby
Ruby
Fabian Becker
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Gregor Biswanger
Dzug plone4
Dzug plone4
Timo Stollenwerk
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Gregor Biswanger
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Gregor Biswanger
Dev + Ops = Go
Dev + Ops = Go
inovex GmbH
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
DietrichRordorf
Ruboto - Ruby on Android
Ruboto - Ruby on Android
Heiko Seebach
Architektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für Clojure
Matthias Köster
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen Hacker
Gregor Biswanger
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
Christian Münch
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Philipp Burgmer
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Gregor Biswanger
IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007
derDoc
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
Oliver Zeigermann
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
NETWAYS
Der WordPress Wolpertinger
Der WordPress Wolpertinger
frankstaude
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Gregor Biswanger
Von Test nach Live mit Rex
Von Test nach Live mit Rex
Jan Gehring
Java und Python - Das Beste aus beiden Welten nutzen
Java und Python - Das Beste aus beiden Welten nutzen
Andreas Schreiber
Devs@Home - Einführung in Go
Devs@Home - Einführung in Go
Frank Müller
C / C++ Api for Beginners
C / C++ Api for Beginners
Ulrich Krause
Von Test nach live mit Rex
Von Test nach live mit Rex
inovex GmbH
Social Signals vs. SEO
Social Signals vs. SEO
Florian Stelzner
Procesos
Procesos
JorgeluisPalomo
El líder cayetano carpio
El líder cayetano carpio
RPMI Ues
Contenu connexe
Tendances
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Gregor Biswanger
Dev + Ops = Go
Dev + Ops = Go
inovex GmbH
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
DietrichRordorf
Ruboto - Ruby on Android
Ruboto - Ruby on Android
Heiko Seebach
Architektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für Clojure
Matthias Köster
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen Hacker
Gregor Biswanger
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
Christian Münch
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Philipp Burgmer
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Gregor Biswanger
IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007
derDoc
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
Oliver Zeigermann
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
NETWAYS
Der WordPress Wolpertinger
Der WordPress Wolpertinger
frankstaude
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Gregor Biswanger
Von Test nach Live mit Rex
Von Test nach Live mit Rex
Jan Gehring
Java und Python - Das Beste aus beiden Welten nutzen
Java und Python - Das Beste aus beiden Welten nutzen
Andreas Schreiber
Devs@Home - Einführung in Go
Devs@Home - Einführung in Go
Frank Müller
C / C++ Api for Beginners
C / C++ Api for Beginners
Ulrich Krause
Von Test nach live mit Rex
Von Test nach live mit Rex
inovex GmbH
Tendances
(19)
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Dev + Ops = Go
Dev + Ops = Go
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
Ruboto - Ruby on Android
Ruboto - Ruby on Android
Architektur einer Eclipse DLTK IDE für Clojure
Architektur einer Eclipse DLTK IDE für Clojure
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen Hacker
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Taugt AngularJS wirklich was? Erfahrungsbericht und Ausblick
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Der WordPress Wolpertinger
Der WordPress Wolpertinger
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Von Test nach Live mit Rex
Von Test nach Live mit Rex
Java und Python - Das Beste aus beiden Welten nutzen
Java und Python - Das Beste aus beiden Welten nutzen
Devs@Home - Einführung in Go
Devs@Home - Einführung in Go
C / C++ Api for Beginners
C / C++ Api for Beginners
Von Test nach live mit Rex
Von Test nach live mit Rex
En vedette
Social Signals vs. SEO
Social Signals vs. SEO
Florian Stelzner
Procesos
Procesos
JorgeluisPalomo
El líder cayetano carpio
El líder cayetano carpio
RPMI Ues
Comandos
Comandos
DARWIN Pereira
Terra 2015 72_test_export_4
Terra 2015 72_test_export_4
Faouzi Al Kabbany
Nticx1
Nticx1
Alison Velardes
Primera reflexion
Primera reflexion
garupa
Pecha-Kucha-Präsentation zum Communication Camp bei der Young Talent Initiati...
Pecha-Kucha-Präsentation zum Communication Camp bei der Young Talent Initiati...
quäntchen + glück
Clase 1 educ secundaria europa y am latina
Clase 1 educ secundaria europa y am latina
María Villena
Calkini campeche
Calkini campeche
Alex Reyes
La descripción
La descripción
jonaydiaz
La harina pan ya no es venezolana radio en vivo - yvke mundial
La harina pan ya no es venezolana radio en vivo - yvke mundial
abidibu
Gráficos xr y xs problema 9
Gráficos xr y xs problema 9
Beto Rocha
Ejercicio parejas
Ejercicio parejas
Tuvie
5poligonos 130528145236-phpapp02
5poligonos 130528145236-phpapp02
Mauricio Chavarría Richmond
Ejercicios de acentuación
Ejercicios de acentuación
RicardowMezaFlores
Fuck the NSA: Artikel im Cash-Flow-Magazin
Fuck the NSA: Artikel im Cash-Flow-Magazin
Jakob Steinschaden
Documentos electronicos itzel
Documentos electronicos itzel
strellaitzel
Finanzen 1981 der schatten krieger
Finanzen 1981 der schatten krieger
Chemtrails Spoter
Propuesta de viaje de fin de curso 2011/2012
Propuesta de viaje de fin de curso 2011/2012
PPABADIA
En vedette
(20)
Social Signals vs. SEO
Social Signals vs. SEO
Procesos
Procesos
El líder cayetano carpio
El líder cayetano carpio
Comandos
Comandos
Terra 2015 72_test_export_4
Terra 2015 72_test_export_4
Nticx1
Nticx1
Primera reflexion
Primera reflexion
Pecha-Kucha-Präsentation zum Communication Camp bei der Young Talent Initiati...
Pecha-Kucha-Präsentation zum Communication Camp bei der Young Talent Initiati...
Clase 1 educ secundaria europa y am latina
Clase 1 educ secundaria europa y am latina
Calkini campeche
Calkini campeche
La descripción
La descripción
La harina pan ya no es venezolana radio en vivo - yvke mundial
La harina pan ya no es venezolana radio en vivo - yvke mundial
Gráficos xr y xs problema 9
Gráficos xr y xs problema 9
Ejercicio parejas
Ejercicio parejas
5poligonos 130528145236-phpapp02
5poligonos 130528145236-phpapp02
Ejercicios de acentuación
Ejercicios de acentuación
Fuck the NSA: Artikel im Cash-Flow-Magazin
Fuck the NSA: Artikel im Cash-Flow-Magazin
Documentos electronicos itzel
Documentos electronicos itzel
Finanzen 1981 der schatten krieger
Finanzen 1981 der schatten krieger
Propuesta de viaje de fin de curso 2011/2012
Propuesta de viaje de fin de curso 2011/2012
Similaire à Fr os con2010_devel_nytprof
Node.js Security
Node.js Security
Sebastian Springer
Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1
Hans-Joachim Piepereit
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
Frank Müller
HTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
Mayflower GmbH
Windows Powershell
Windows Powershell
Thomas Wilhelm Wiefel
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
Ulrich Krause
Rex - Infrastruktur als Code
Rex - Infrastruktur als Code
Jan Gehring
OSMC 2011 | Monitoring at large - die Welt ist nicht genug by Thomas Gelf
OSMC 2011 | Monitoring at large - die Welt ist nicht genug by Thomas Gelf
NETWAYS
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
OPEN KNOWLEDGE GmbH
Production-ready Infrastruktur in 3 Wochen
Production-ready Infrastruktur in 3 Wochen
André Goliath
Java Batch – Der Standard für's Stapeln
Java Batch – Der Standard für's Stapeln
gedoplan
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014
Martin Alfke
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
NETWAYS
Lösungsorientierte Fehlerbehandlung
Lösungsorientierte Fehlerbehandlung
roskakori
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerter
Gunther Pippèrr
2009 03 17 Spring101
2009 03 17 Spring101
gueste4be40
Automatischer Build mit Maven
Automatischer Build mit Maven
Stefan Scheidt
XML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit Flash
Stephan Schmidt
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
Sebastian Springer
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
OPITZ CONSULTING Deutschland
Similaire à Fr os con2010_devel_nytprof
(20)
Node.js Security
Node.js Security
Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
HTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
Windows Powershell
Windows Powershell
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
Rex - Infrastruktur als Code
Rex - Infrastruktur als Code
OSMC 2011 | Monitoring at large - die Welt ist nicht genug by Thomas Gelf
OSMC 2011 | Monitoring at large - die Welt ist nicht genug by Thomas Gelf
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
Production-ready Infrastruktur in 3 Wochen
Production-ready Infrastruktur in 3 Wochen
Java Batch – Der Standard für's Stapeln
Java Batch – Der Standard für's Stapeln
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
Lösungsorientierte Fehlerbehandlung
Lösungsorientierte Fehlerbehandlung
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerter
2009 03 17 Spring101
2009 03 17 Spring101
Automatischer Build mit Maven
Automatischer Build mit Maven
XML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit Flash
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
Plus de Renee Baecker
2012 gpw yapc2012
2012 gpw yapc2012
Renee Baecker
Perl5 Maintenance Fund
Perl5 Maintenance Fund
Renee Baecker
Jenkins und Perl-Projekte
Jenkins und Perl-Projekte
Renee Baecker
OPAR
OPAR
Renee Baecker
OPAR Vortrag auf der CeBIT 2011
OPAR Vortrag auf der CeBIT 2011
Renee Baecker
Clt 2011 Perl Critic
Clt 2011 Perl Critic
Renee Baecker
Froscamp2010_perlcritic
Froscamp2010_perlcritic
Renee Baecker
Froscamp2010_moose
Froscamp2010_moose
Renee Baecker
Fr os con2010_bmatrainer
Fr os con2010_bmatrainer
Renee Baecker
Plus de Renee Baecker
(9)
2012 gpw yapc2012
2012 gpw yapc2012
Perl5 Maintenance Fund
Perl5 Maintenance Fund
Jenkins und Perl-Projekte
Jenkins und Perl-Projekte
OPAR
OPAR
OPAR Vortrag auf der CeBIT 2011
OPAR Vortrag auf der CeBIT 2011
Clt 2011 Perl Critic
Clt 2011 Perl Critic
Froscamp2010_perlcritic
Froscamp2010_perlcritic
Froscamp2010_moose
Froscamp2010_moose
Fr os con2010_bmatrainer
Fr os con2010_bmatrainer
Fr os con2010_devel_nytprof
1.
2.
Dem Performance-Killer auf
der Spur
3.
4.
5.
Devel::SmallProf
6.
Devel::NYTProf
7.
Spezielle Profiler
8.
Profiling für den
Perl-Programmierer
9.
Arten des Profilens...
10.
CPU Time Real
Time Subroutine ? ? Statement ? ?
11.
12.
Exklusive I/O, Datenbanken,
etc.
13.
Kaum beeinflusst von
der Auslastung des Rechners
14.
15.
Inklusive I/O, Datenbanken,
etc.
16.
Stark beeinflusst durch
Auslastung
17.
18.
Inklusive aller Subroutinen
und Code, die innerhalb der Subroutine aufgerufen werden
19.
Ziemlich schnell, da
nur an wenigen Punkten die Zeit genommen werden muss -> wenig I/O
20.
21.
Liefert keine Anhaltspunkte,
wo genau in der Subroutine die Zeit verloren geht
22.
Kann keinen Code
außerhalb von Subroutinen messen
23.
24.
Exklusive Zeit für
aufgerufene Subroutinen (Ausnahme: Built-ins und xsub)
25.
Sehr hohe Genauigkeit
26.
27.
Manchmal etwas ungenau
28.
Zu detailliert für
große Subroutinen
29.
Schwierig, eine Zeit
für die Subroutine zu bekommen
30.
Häufiges Problem: bei
Aufruf einer Subroutine und dann „etwas anderes“ ausführen, wird alles der Subroutine zugerechnet Funktion() + mkdir('./verzeichnis');
31.
32.
File I/O
33.
34.
Maintenance-Nightmare
35.
36.
Devel::NYTProf to the
rescue
37.
… leider
erst ab Perl 5.8.1
38.
39.
Gestartet von Adam
Kaplan von „New York Times“
40.
Ein paar Bugfixes
für Devel::FastProf plus HTML-Auswertung an Devel::Cover angelehnt
41.
Höhere Genauigkeit (beachtet
Overhead des Profilers beim Schreiben der Daten)
42.
Tests wesentlich verbessert
43.
44.
Wertet Subroutinen „pro
Aufruf“ aus
45.
Auch für xsubs
46.
Berechnet Exklusiv-Zeiten „on-the-fly“
47.
Kann mit Dingen
wie „goto &sub“ umgehen
48.
Schreibt Datei erst
am Ende
49.
Sehr schnell
50.
51.
Das Statement am
Ende einer Subroutine bekommt nicht den Sub-Overhead hinzugerechnet
52.
53.
Ergebnis kann in
verschiedene Formate transformiert werden
54.
Ergebnisse verschiedener Läufe
können vereint werden
55.
56.
57.
58.
59.
Nützlich, um strukturelle
Änderungen zu priorisieren
60.
61.
Kurze Demo...
62.
Tipps & Tricks
63.
Vermeide die 2!
64.
65.
Phasen der Optimierung
66.
Phase 0
67.
Don't do it!
68.
Optimierung birgt häufig
Fehler!
69.
Phase 1
70.
71.
Blick auf die
Exklusive Zeit von Subs
72.
Sie erscheinen nicht
plausibel?
73.
Die ärgsten Fehler
ausfindig machen
74.
Nur einfache(!) lokale
Probleme beheben
75.
Erneut profilen
76.
Schnell genug? STOPPEN
77.
Evtl. wiederholen
78.
Einfache lokale Probleme
Temporäre Variablen nutzen $self->eine->weitere->Methode->die->ein->Objekt->liefert->Hallo(); $self->eine->weitere->Methode->die->ein->Objekt->liefert->Welt(); In: my $object = $self->eine->weitere->Methode->die->ein->Objekt->liefert; $object->Hallo(); $object->Welt();
79.
80.
81.
82.
Erneut testen... Schnell
genug? STOPP!
83.
Phase 2
84.
85.
Evtl. Caching einbauen
-> Ist aber fehleranfällig
86.
87.
Erneut testen... Schnell
genug? STOPP!
88.
Phase 3
89.
90.
91.
Viele kleine Änderungen
haben eine große Wirkung
92.
Fragen?
93.
Danke!
Télécharger maintenant