Merken

Tuning Python applications can dramatically increase performance

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
so a lot of body be In my talk actually has 2 purposes 1 mollusks educational because it it's a bit surprising to me but not like everybody in the Python community cares about performance on everybody knows how to so for those who do care not everybody knows how to find the problems so
I will give some overview of what's available right right there the the markets beat free version of maybe some proprietary and then I'll be showing the prototype that we get into how we built so that should address the problem of providing some so I think I almost everybody have a seat now and should proceed later so closely the hosting
services some legal notice you know that I just have to put this slightly in some legal
suffer no I get reasoning so you can relate to if you want to just about you should have to remember that not every benchmarks are equal so you just have to tuned for your default keep that in mind anyway the agenda of current talkies why do many Python optimization like you may hear someone say graph of my father program and it is so maybe it's the case for maybe not and then if you are the 1 who needs to optimize by close how to find which places in your code you need to pay attention I think someone in the talks previously said about the parietal right 80 per cent of efforts only yields 20 % of staff and prices so you should consider concentrate on some 20 % call to give the best results then as I said no you of existing tools and this really a simple simple Michael may call a dumb example of a typical mistakes and how those tools will show you where the problem and then some retired capabilities and stuff which ensure and some not why do why do we even need to optimize Python code as well as the Python Conference probably everybody is aware life and power wide range of software like applications so webserver like some by small streets for ultimate isation out whole bunch of stuff and some of those implications are those where performance matters for example if you are creating a web server we should handle as quite a big loads you do care about strong performance of the sort the other problem with 5 from these Chile a very good language to start with its is it alone and it's pretty forgiven so you can make some mistakes and you won't notice that unless you you would not want to try so then and sometimes you're just not hate he system with this theory approach by the rest may be a past must not had speed of code so I think that's probably for everybody who came here it's pretty obvious that there were times when this performance of airport matters so we is the question how do we find out how to optimize the because now we can see
that probably the 1st thing that comes to mind you can just say a very hard it's your problem and think maybe the line slow or maybe this function is slow or I know I should not use these these comprehension the problem with this approach is something wrong as I think pipelined myself not everybody understands how the interpreter works why I want claim that scientists and have a little bit they it probably understand something but certainly not the whole bit of very intricate details of the interpreter and I don't think anybody can say that he does standard cause interpreters big then again in all In both like this but some print statements with sometimes sent to see this function safe and long of this function they long that should be OK for some some workloads for example you can monetary or say that works are learned see some requests taken longer knowledge like some lobbying semantics and stuff the problem with that is if you don't have this loving your application already and you need to find about likes somewhere in your coat you have to write a lot of stuff in your call just find these little bottleneck had to then there is a solution that I'm meaning towards and I think I'll convince you that you should use this solution it's called profiling so you know in computer science profile and just get a set of metrics that you want to find the sway obvious way of what's your program does and right now I'm concentrating on providing the CPU time so how long does your progress run or how much CPU time consumed right the problem with this profile approach is In its until for the posterior approach you probably just in a text editor and that's all FIL login model as the same you know you probably need a tool to process the loss but you can put it yourself like in 5 minutes but the profiling it's a bit and then again not all profilers of unequal in there are different techniques out there as the that I find the most widespread event-based that is when something happens like functions started a function and there's an event quiet and the profiler can capture this event and Store some information about that there is of these examples 5 and militancy profile the events at watched forests and friendly and function then there's instrumentation based but usually requires you to modify your application most of the example for quite some would be line profile package which can tell you which lines of your function as well but it would require you to annotate your code with the correct and then there is statistical profile and all sampling profiling which basically means that you take a sample each given period of time to see what's your problems doing and then Example 5 from until Sundermann and so example it's intelligent amplifier and therefore this approach is good enough because it's usually it accurate enough to see some of them are the exact culture you're getting but some approximation but it's usually weigh less intrusive for certain cases like very my very many functions which very small each function is very small now let's see I
have which a type just a note I have the table that compares some our tools that are over there like a sissy profiles as a procedure to start point cause it's in the standard library it is has a text mode you eyes called P. starts to work with the results again built and it has a some grew your cold from snake from and it's open source and stuff the problem with this is in profile to the function level that is it cannot show you which part of the function is slow on the that these particular function is taken away much science and it's typical overhead is from 1 . 3 x 2 5 usually around 2 X that is your program under the Superfund usually runs 2 2 times slower than with then there is a Python tools you know present of from it's it's through open source the problem with that is it's again only function level it's overhead is about 2 x and it's on the windows as far as in the the visual city itself offers summary mortified and tools I think they don't interest I wasn't able to find how students then there was you know there's the guys with the charm they recently introduced to the support for Superfund and find that their your ideas preaching goes the problem with that it's against a profile-based all you can based on the yup the Bell yuppies basically simple file might throw it away so you can see which present taking time no land level information then there is line profile as I said it provides you with 1 little information about what's the overhead is the all men up to 10 times or more there are some more statistical profile their lesser-known like structural and slope by to load had profile and the Neurocommons the improv from the type t I would say that there is a problem with them they should kind of share is the you is not very intuitive to work we've added displays the so that but uh at least in the salt and this structural and I think the mean profs who I cannot find the way how to find this line that's stake time friend no let's see so this
is a simple modules that has 2 functions right the 1 which is slow these written uh with this simple typical Python beginner's mistake now canals
which mistake is that yeah concatenation right and the reason for that we anyone knows the yeah the thing is strangely mutable so you have to create a new strange each time that requires a delicate memory copy stuff there and delicate the old 1 a lot of work now for the 1st version it's actually doesn't do any memory location or copying until there's 1 lost during and that does all the one'll occasion and 1 copy so basically the 1st approaches something about the and square my and the 2nd 1 is more or less linear not
the simple problem to test this module I just very very simple program runs slower and they took something use on my laptop they vary from time to time because let's up can be doing something not that I can control the working on some antivirus software keeping a stuff but still this set that is slow version is about 3 times this small as a fast version and we use this to the basement is a baseline because the snow provide or provide melody but small to I so we use it as a baseline now this is how
profile words and how would be starts to look like I can try to figure out which functions as slow so my mom you can see that these functions slow and these functions like 2 times faster right but just imagine that you have not done functions but do you have a very very very big problem problem that has like 10 thousand functions Roman and if you're working out of the top 10 hot spots but probably something more integrated kind of hard to work with this you like and as I said the overhead curious on that on that particular example there or the overhead is pretty OK but still around 1 and a half then
as I said there a you i world that's good luck and I think if there is anybody who developed the CELF forgive me that you but just go through this 1 looks much
nicer this is by chance and it's the numbers might not be easily readable cause they're great about the world the pretty it we can have this profile
thing the only 1 that usually doesn't the line by line results and as you see the overhead starts with 2 and the
6 and for the 1st 1 is sexually 8 x and it ended up smaller than this 1 so these spline profile of training is not that easy right and was just mentioned that they have a program that runs for say 2 hours and related to wait for it to 10 hours to complete no then there is by the
to on the right is more identical in Tokyo 1 problem with the domain and the problem but the for someone might be a good thing it's measures not CPU clock but will call that means you want know how much CPU time the function that's but consumes you would know how much time and I'm going to the wall clock is something that takes I cannot talk and what you know and they say the overhead is not that small and and so the problem with all those with the call that is the overhead is not only making you wait longer the problem with the overhead is it influences the run of your program so it can secure results so swiftly like this 1 is the
that overhead skew the fast results way too goes remember that this little version was 3 times slower than the fossil right without the profile and things and now I have some
slides prepared that show the prototype but I think it might be just myself if I give you live demo right
so here goes in this let me take so this is up to the right side
this is the windows and I'm just know creating a project just for the sake of completeness I to be easier this way and is going to
applicant so let's say that set the model year 2015 I created projects as a hoping to do
some several analysis like
I want to figure out if my code but I change something you this change was would have an right then
I just say I want to provide a Python it finds that 1 is in my when I just sorry I just said that but to my wife and scripts please remember this is a prototype so you can see some meanings there that's supported time so it's not found in the market trading and I just take the same example from of the White and let's say that I want to manage code perspectives managed code of this in the major 1 and they say they want by the hot spots and running programs
and this program runs sometimes uh the same with this profiler being different is as I said it's statistical form so it should not influence the very much although you see the solution to 20 seconds and fast version 2 5 seconds and that's
preach empowers watched profile have I think so you
see that we have to functions that are named top for example and to look at the sole function a click on and up and the bottom you
and there's a nice timeline that shows you how much time was spent during the program run so for example if you want to fine-tune summer exact portion of your program running for example if you're writing in websites there might be times when you have some dozens of requests and the times when you have not so we can just select the time when you have lots of requests and see what's what and now I double the functions and it opens
missiles to shown that indeed those that's right is that classical think is that we still all the time now some thing because I
find to be what's making
most another providers is most of them are not throw it away that is for example see profile if you try running the multi-thread program was to provide by the way anyone tried like nobody but nonetheless you should try run into this profile you won't be able to find out which thread consumed 7 times just
be results of the functions 1 by 1 you won't be able reach to figure out which there was slow and we was fast and with this prototype you would see that you can still survive threads began to provide time even
by modular so if you're interested
in functions in such a model you're able to do that so let's see here is to see that 3 France 1 was actually spinning and 1 was in itself sit up work you see here this 1 the small ones and the last 1 was just waiting so what thing think is kind of amazing if I click here in terms of how Python work just show you here
are actually 2 lines they contained in the cycles so the problem is pretty simple just calculated time and actually wait for it to pass and the interesting thing here is that even past statement course you know that might some might be something not obvious but every statement Python even possible might constitute so if you're for example waiting for something you should use some synchronous it's synchronization primitives stuff not just spinning on spot so again you see here there's a cold stare the focal stack the function so I can you down to the thread into right if I want to for some reason there's not much interest in there just a function still and let's see I have
always continue in my talk what's that
prices go and no idea where
below the the stuff like that
happens all the time during we
you you go so I just give the slice through the screenshots I think we show something in the general so to summarize thing up the prototype has these of line level information it could show you which lines of Python code to take entire and I measured the overhead on several benchmarks including the Python grand unified benchmark thing well some scary but a section the default benchmark for the parton distributions and the overhead is can eigenstates so that small but it's pretty decent principle right now it supports Windows and Linux it supports 32 and 64 bit by supports I can read slides for you supports in a way to support some remote collection for example if you want to Prof profile
script on remote Linux box begin to solve using their SSH and I think I demo that GUI but this I do like the you I I find it's quite easy to use well if I want to know if you want me to add some spice but the way which I entities with this prototype I was I was working on a build system so the system and I was wondering why it was so small so I came up with this prototypes and then I came up with how to integrate this with our current software and then I started learning to use this software some of the other way around i and we've also there is an interesting thing that I didn't show you it might be a bit harder to show In a quick demo but there are actually 2 workflow so 1 is that I've shown you consultant implications and word for it to finish of sovereignty if you're bored with it and another way these you can attach to the and application profile for a time and attention that's I find especially useful if you want to provide some and you don't want to bring down the thing for maintenance of some we just professional life server perform some profiling and then deductions are a continues on like you didn't interrupt so
here is the comparison table I find the results OK this what I do care about this line level information and low overhead that should not skew results so much right and you so
the sum summaries of our internal use which costs you see this is not in the public yet so know calls from the customers but far as I said we use it to to fine-tune the 1 where replication our internal billboards installation by the way the what's open source and I personally find the most important for making Europe distributed scheduling system scan task and this is where you the attach testing shines so you just attach to your running master like people just continue using it you attach try some web pages try some load and you Dutch and just nobody notices that you did some provided and I was able to speed up the page with 3 times like from 90 seconds to 28 it was not very easy I had to rewrite suffered bit but still then there was a report generator things in our internal some which was written moralists along the lines of doing how I show you the demo like concatenated strings and interest but OK full files like 10 kilowatts longer 50 kilobytes long but when we tried to which is small while about 1 megabyte you see the results and was all 300 seconds and we're able to speed it up to 2 seconds right and then as a set of sponsor based internal build system there are numerous places where we applied it and in most of all that should some results like maybe 2 times 2 times increase of 50 % increase not something that you can pass by
and now some I some screenshots again but this is open source of the chromium Jeep project I think they're getting away from that but anyway just to show that it could profile multiple says something like this JetScript was spawning in multiple processes and all the capture that some
num PPI-based called that's just show you shows you how you can apply this to recall that works and does a lot of stuff natively this can be that doubt function is native function and you see that there's that uses a lot so probably this is a good example of your some problems when you stuff together you want to be doing a lot of as much as possible in day cold and keep your Python program as simple as possible and noun kind of some advertising so if you want to you were tried for this with this tool can be this subscribers could and add in the last column they also making a proof of concept for a speeding up the Python interpreter and Mumbai sci-fi libraries set up or you can catch me are my colleagues have now table or doing sprints then there's some some free software
you you qualify like if you're academic researcher almost certainly open-source contributor you can get some mental tools free I just want young painter remember that link just know google free until tools it's like versus like like and thank questions but if toward and CEO
statistical profile of but all the other ones you compared it with were not graphology make the on the overhead of a statistical provocatory like Connie Rogers reducing it and so you have does it perform compared with the other statistical inference performance well this table action you yes it's cement-based those just mostly not they are the ones that you have to figure out how to find and no I don't have the figures some mean but probably the improper I say is that they have like 5 to send 5 to 10 per cent overhead and plots as they have like 5 to 10 % overhead and our typical overhead is all I can say look maybe some tend to 20 % but you get like little information they don't show you that but at least they don't you should probably do collective but they don't show you the with a question about right and so maybe you'll explore what it may be mis took any chance there you will release at least part of this profile is open source yeah I know theory eats into looks fine you know you don't you don't think that and all those here from those close to us the plans for all these exact fire and final yet so I can save it would be made public enough but if you're interested in Intel's open source stuff 1st of all there is 0 Landa-Torres so it's into 1 and 2 are region in a lot of the contribution to the open source like Python contribution like speeding it up and those like spin of interpersonal self would definitely make it to the open source so you shown that your profile constraining shoulder licensed by the lines that are controlling the most we you can use the morning to the details and see which libraries they are called calling behind-the-scenes would just show this summer judgment in the in the interface but the problem with and here is that this tendency by you I have no idea where similar so it's just an interpreter nothing is compiled so you can ensure that somewhere in that I think what you're asking what the asking for these 2 sure some native frames like major functions down below literary and talking about what's what's being executed because these things so for example to Python is usually you can something right I mean for example in the in the 1st example that use you along showed that the problem was used to ink that was copied opt to probably babies are meant to be called behind-the-scenes right absolutely In doing so but this is my question it's a way to to OSI which libraries function libraries called yes it it is I'm saying right now probably what you going to answer your question is if we have a stack that by from frames would be you can see what major functions report like this meant to be you well that's certainly plant but isn't there yet and if you you know if you sign up to this problem I think it will eventually be there but as I hope so thank you more questions when and on your slide you specifically mentioned Python 3 . 4 that use of is still problem with all the ones on new ones what I did mention is actually various suffragist test against so of my guess would be should work with 3 5 and problems with 3 3 and 3 2 edge and that shows the thing is we are not binding until certain Python version so we need to be able to use something that is kind of stable so it's not something that's compiled in your interpreter you just can't be any have like install something maybe from anaconda from state from Python or a maybe an embedded Python into your own applications and as it is still possible to provide more questions like yesterday do and should work with 2 . 6 but who cares about 2 . 6 the of of and would also show of of function names of C extensions like call into from part so it's not fully honestly permitted flights probably if you look at the example of the data right this don't is actually the extension function From the number the 1 that's highlighted here like this 1 so you see that the slime calling the native function to almost 2 seconds so within that function but for now you won't be able to see down below reached stuff was there as I said it's and so it is planned but to solve hi but is there were for your profile to work with type II or the Python interpreter or is it just working with the in right now all the techniques involved using C API that's exported from the Python library so as for some other Python interpreter that just follows this API it should be possible should be With the pipe eyes to different post by pi budget compilation and there are not that much cold the functions that are of interest so probably to want to work with Objective knowledge I was that's why you have been brought for those guys for right now more wins I gotta get a small 1 said it is optimized for CPU time less and is there way to have a similar 4 I approach I would like statistically really kept interest rates and yeah an interesting question and it's something area here from time to time there is a way of obviously there is cross when there's a problem there is a way and I think that the platform that we have based on the beach himself has the solution from a difficult so I I should hope that it would be plant that we do something buy from I can be that should cause it's not yet land but it's something I have in my mind OK and questions yeah right so thank you can but the 1 last minute note everybody's so if you're interested again just be the sign that up there at Camp tall table occasionally during spring so I can give you a hands on there thank you
Bit
Computeranimation
Chipkarte
Versionsverwaltung
Varianz
Fitnessfunktion
Information
Arithmetischer Ausdruck
Menge
Computeranimation
Intel
Metropolitan area network
Dienst <Informatik>
Software
Eigentliche Abbildung
Reelle Zahl
Prototyping
Resultante
Einfügungsdämpfung
Bit
Minimierung
Hochdruck
NP-hartes Problem
Kartesische Koordinaten
Login
Analysis
Computeranimation
Formale Semantik
Intel
Code
Default
Gerade
Benchmark
Interpretierer
Lineares Funktional
Befehl <Informatik>
Approximation
Physikalischer Effekt
REST <Informatik>
Systemaufruf
Profil <Aerodynamik>
Strömungsrichtung
Knoten <Statik>
Kontextbezogenes System
Natürliche Sprache
Frequenz
Ereignishorizont
Arithmetisches Mittel
Konzentrizität
Texteditor
Software
Menge
Rechter Winkel
Server
Information
Prototyping
Standardabweichung
Stab
Zentraleinheit
Code
Physikalische Theorie
Informationsmodellierung
Spannweite <Stochastik>
Benutzerbeteiligung
Ungleichung
Arithmetische Folge
Software
Stichprobenumfang
Optimierung
Speicher <Informatik>
Ereignishorizont
Informatik
Leistung <Physik>
Videospiel
Wald <Graphentheorie>
Graph
Linienelement
Physikalisches System
Gerade
Quick-Sort
Benutzerprofil
Beanspruchung
Last
Leistung <Physik>
Compiler
Resultante
Offene Menge
Punkt
Gemeinsamer Speicher
Datensichtgerät
Snake <Bildverarbeitung>
t-Test
Information
Kombinatorische Gruppentheorie
Computeranimation
Übergang
Metropolitan area network
Freeware
Interaktives Fernsehen
Datentyp
Bildschirmfenster
Programmbibliothek
Optimierung
Gerade
Demo <Programm>
ATM
Lineares Funktional
Physikalischer Effekt
Open Source
Profil <Aerodynamik>
Übergang
Objektklasse
Elektronische Publikation
Modul
Gerade
Algorithmische Programmiersprache
Benutzerprofil
Funktion <Mathematik>
Ein-Ausgabe
ATM
Mereologie
Overhead <Kommunikationstechnik>
Information
Overhead <Kommunikationstechnik>
Ext-Funktor
Tabelle <Informatik>
Bell and Howell
Stichprobe
Versionsverwaltung
Objektklasse
Modul
Computeranimation
Virensuchprogramm
Menge
Rechter Winkel
Festspeicher
Notebook-Computer
Ein-Ausgabe
Mapping <Computergraphik>
Overhead <Kommunikationstechnik>
Speicheradresse
Optimierung
Demo <Programm>
Benutzerprofil
Metropolitan area network
Tropfen
Lineares Funktional
Funktion <Mathematik>
Wort <Informatik>
Ordnung <Mathematik>
Overhead <Kommunikationstechnik>
Computeranimation
Gammafunktion
Resultante
Elektronische Publikation
Wellenpaket
Time line <Programm>
Physikalischer Effekt
Profil <Aerodynamik>
Zahlenbereich
Gerade
Computeranimation
Metropolitan area network
Diskrete-Elemente-Methode
Rechter Winkel
Zoom
Unruh-Effekt
Spline
Datenfluss
Overhead <Kommunikationstechnik>
Optimierung
Gerade
Gammafunktion
Resultante
Lineares Funktional
Schiefe Wahrscheinlichkeitsverteilung
Güte der Anpassung
Versionsverwaltung
Systemaufruf
Profil <Aerodynamik>
Zentraleinheit
Gerade
Computeranimation
Metropolitan area network
Domain-Name
Rechter Winkel
Datenfluss
Optimierung
Overhead <Kommunikationstechnik>
Zentraleinheit
Intel
Rechenschieber
Metropolitan area network
Demo <Programm>
Vervollständigung <Mathematik>
Rechter Winkel
Bildschirmfenster
Projektive Ebene
Zentraleinheit
Computeranimation
Gammafunktion
Prototyping
Mathematisierung
Kartesische Koordinaten
Symboltabelle
Code
Analysis
Computeranimation
RFID
Intel
Metropolitan area network
Systemprogrammierung
Informationsmodellierung
Datenmanagement
Perspektive
Code
Skript <Programm>
Unordnung
Optimierung
Demo <Programm>
Prototyping
Gammafunktion
Prinzip der gleichmäßigen Beschränktheit
Elektronische Publikation
Datentyp
Machsches Prinzip
Variable
Arithmetisches Mittel
Ebene
ATM
Projektive Ebene
Statistik
Zwei
Gewichtete Summe
Versionsverwaltung
Profil <Aerodynamik>
Computer
Digitalfilter
Information
Analysis
Computeranimation
Intel
Physikalisches System
Systemprogrammierung
Metropolitan area network
OISC
Bildschirmmaske
Endlicher Graph
Optimierung
Baum <Mathematik>
Zentraleinheit
Gammafunktion
Meta-Tag
Lineares Funktional
Web Site
Datentyp
Stichprobe
Schreiben <Datenverarbeitung>
Computer
Information
Analysis
Computeranimation
Keller <Informatik>
Intel
Metropolitan area network
Physikalisches System
Systemprogrammierung
OISC
Diskrete-Elemente-Methode
Loop
Endlicher Graph
ATM
Minimum
Optimierung
Zentraleinheit
Modul
Gammafunktion
Elektronische Publikation
Datentyp
Logarithmus
Profil <Aerodynamik>
Extrempunkt
Service provider
Analysis
Computeranimation
Portscanner
Intel
Metropolitan area network
Systemprogrammierung
Diskrete-Elemente-Methode
Ebene
Rechter Winkel
Betafunktion
ATM
Ein-Ausgabe
Datenerfassung
Thread
Optimierung
Zentraleinheit
Gammafunktion
Resultante
Lineares Funktional
Domain <Netzwerk>
Term
Bildschirmfenster
Analysis
Computeranimation
Eins
Intel
Physikalisches System
Metropolitan area network
Systemprogrammierung
Informationsmodellierung
Modul <Datentyp>
Funktion <Mathematik>
Zoom
Ruhmasse
Phasenumwandlung
Thread
Gravitationsgesetz
Prototyping
Lineares Funktional
Befehl <Informatik>
Synchronisierung
Computeranimation
Intel
Metropolitan area network
Rechter Winkel
Dreiecksfreier Graph
Datenerfassung
Primitive <Informatik>
Gerade
Zentraleinheit
Gammafunktion
Intel
Metropolitan area network
Software
Extrempunkt
Zentraleinheit
Computeranimation
Mittelwert
Webforum
Distributionstheorie
Bit
Demo <Programm>
Quader
Program Slicing
EDV-Beratung
Kartesische Koordinaten
Code
Computeranimation
Übergang
Bit
RPC
Software
Bildschirmfenster
Skript <Programm>
Default
Gerade
Benchmark
Prototyping
Videospiel
Profil <Aerodynamik>
Übergang
Physikalisches System
Gerade
Benutzerprofil
Rechenschieber
Softwarewartung
Server
Ablöseblase
Overhead <Kommunikationstechnik>
Wort <Informatik>
Garbentheorie
Information
Overhead <Kommunikationstechnik>
Bitrate
Prototyping
Resultante
Offene Menge
Explosion <Stochastik>
Demo <Programm>
Gewichtete Summe
Dienst <Informatik>
Information
Web-Seite
Bildschirmfenster
Computeranimation
Homepage
Übergang
Task
Physikalisches System
Interaktives Fernsehen
Code
Datenreplikation
Gerade
Softwaretest
Open Source
Zwei
Systemaufruf
Web-Seite
Übergang
Physikalisches System
Paarvergleich
Elektronische Publikation
Gerade
Benutzerprofil
Scheduling
Ebene
Funktion <Mathematik>
Menge
Last
Rechter Winkel
ATM
Overhead <Kommunikationstechnik>
Information
Overhead <Kommunikationstechnik>
Versionsverwaltung
Verkehrsinformation
Prototyping
Tabelle <Informatik>
Zeichenkette
Prozess <Physik>
Zahlenbereich
Turing-Test
E-Mail
Computeranimation
Intel
Mailing-Liste
Freeware
Software
Code
Programmbibliothek
Skript <Programm>
Optimierung
Tabelle <Informatik>
Lineares Funktional
Interpretierer
Softwareentwickler
Open Source
Vorzeichen <Mathematik>
Motion Capturing
Software
Beweistheorie
Betafunktion
Projektive Ebene
Zeitzone
Tabelle <Informatik>
Quelle <Physik>
Subtraktion
Stabilitätstheorie <Logik>
Rahmenproblem
Inferenz <Künstliche Intelligenz>
Compiler
Gruppenoperation
Automatische Handlungsplanung
Versionsverwaltung
Zahlenbereich
E-Mail
Zentraleinheit
Systemplattform
Physikalische Theorie
Computeranimation
Eins
Intel
Freeware
Datentyp
Programmbibliothek
Maßerweiterung
Figurierte Zahl
Gerade
Schnittstelle
Softwaretest
Tropfen
Lineares Funktional
Interpretierer
Statistik
Open Source
Zwei
Systemaufruf
Profil <Aerodynamik>
Plot <Graphische Darstellung>
Bitrate
Binder <Informatik>
Objekt <Kategorie>
Rechenschieber
Software
Flächeninhalt
Betafunktion
Mereologie
Information
Overhead <Kommunikationstechnik>
Aggregatzustand
Tabelle <Informatik>

Metadaten

Formale Metadaten

Titel Tuning Python applications can dramatically increase performance
Serientitel EuroPython 2015
Teil 144
Anzahl der Teile 173
Autor Litvinov, Vasilij
Lizenz CC-Namensnennung - keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben
DOI 10.5446/20220
Herausgeber EuroPython
Erscheinungsjahr 2015
Sprache Englisch
Produktionsort Bilbao, Euskadi, Spain

Technische Metadaten

Dauer 36:44

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Vasilij Litvinov - Tuning Python applications can dramatically increase performance Traditional Python profiling tools have limitations. Standard tools like **cProfile** and most all third party tools (like **Python Tools** plugin for Microsoft Visual Studio) suffer from common flaws. First, the profiling overhead is high (up to 50%). Second, the information provided is “function-level” i.e. the tool shows how much time was spent within a function, but not actionable “line-level” information to show which exact lines are the bottleneck in a function. Adding “line-level” information to most tools causes the application to run even slower. Third, some tools require modification of the application source code to enable profiling thus disrupting development. This talk presents an experimental Python profiler. It typically has less than 15% overhead, shows line-level information and does not require modification of application source code. Experiments using it resulted in performance gains of 2x and more. Of course results vary by application, but in a typical application there may be quick optimizations easily identified by this type of profiler. The talk will briefly describe the basics of what, why and how to profile. The profiler‘s use and results will be shown in the presentation with examples based on real-life applications. Previous experience of working with profilers and trying to optimize an application is a plus, but not required, to gain a better appreciation of the work presented.
Schlagwörter EuroPython Conference
EP 2015
EuroPython 2015

Ähnliche Filme

Loading...