Merken

Python and PyPy performance (not) for dummies

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
again and so this is something that we can actually give you your talk a bit about I like title of performance today and who are we have have a part of of course we also worked on a
bunch of other projects there may be you most well-known scientists file cylindrical seeing
front-month for their projects you also been consulting and run the company boxes so well established uh they usually called the 3 major conditions the root of all evil and that usually end up spending 20 the 80 % of your time and present of approach but it's important to remember that 20 per cent of 1 million lines is still 200 thousand light so 20 per cent the scale with the size of the and the you can cause trouble if your program is not an lined we get that could be that will help prevent fights so-called and to optimize the cities that the 1st part I'll talk about that profiling tools and how do you go same was wrong and the other 1 and then you coverages those problems there's a lot of identifying the so so what what is performance like good cool and we're trying to optimize something most of the goods and services for all the public question uh it's usually so usually it's a time we spend doing stuff text so that task X might serving 1 http requests or computing 1 property of doing 1 1 of those things but sometimes like number of requests per 2nd sometimes they're late in the and the interesting question is what sort of statistical properties are you actually interested in do you care about the average the cable that's the worst case scenario like an hour if you're developing and heartbreak system that matches your optimizing is novelty of this time takes the brake it's the the worst case scenario takes the break and this is the metric you're you're working with sometimes some of your in case and if you're serving distribu question 1 in 10 thousand requests 50 ms morning well too that you know somebody just lost his the press control I do that and so it's important to know what you're trying to do measure faced before actually started to measure the once you know that you it would it's cool to have some means to measure stuff so benchmarks of very good in if you don't have benchmarks you might want to to just 6 of introduction how it actually works in the real world data and see Python this is your problem on your problem is waiting for it for I or the fact that you have 700 micro-services each of them talking each DP to each other all the time uh it's important to you to be able to do quickly determine whether it's something that you changed actually change stop or didn't that's the same as the body if you take you a week to go around and try again the next thing than chances of optimizing anything a really really long because of the normal parents no buttons again so we we already got to the point where we know Python is our problem and so on uh looking at the top or whatever we see that Python processes as consumed time during CPU uh 1 important thing is that systems these days which complicated to gets you can just stay the codes and then rewrite it differently and then hope that so but know how quite onwards but do you really think and I don't for 1 and you have to actually measure it had to see OK I want this engaging 5 seconds I run that gave me 4 seconds this is when you but I and actually have a tool to measure the again remember about that that is that the bottleneck in the small but can also be really large and distributed all over the place providers who use the profile here almost everybody through is ball and no 1 so what is it told done by the Germans guys I think there all the time and books then so the difference is that's the profile is a tool that is even better so each functions is instrumental do report like no and in the function started by None the existing the function and the time it's a way to do profiling yes you get finds instances you get past and functions you get trace makes you stuff like that the problem is that it's a relatively high overhead on survivor things like 2 times roughly on vibrate where and the problems that overhead is not evenly spread the goes over cost for a function that's relatively constant but then if you're function doesn't and overhead is smaller Q-function thus little and overhead is large and that's that that's very bad especially that on pipelines sin is it skews the results afterward putting more more emphasis on small in large functions and the improv tool that we can understand working on this year this year lasted some some my and it's like a proper statistical profiling so it will sample your cold as its run and see of in this function then wait 30 ms where waiting MS where my mouth and try to capture those facts in the views of the signal information so it won't tell you how many times the function that called but it will tell you how much time that this thing you likely then there it's possible to spend their so we improve itself is that all the that there was inspired by G which is not to proceed and is based on interactive runs on minutes machine about 300 times a 2nd words the not not granular not if your program runs for 10 ms but the you're it's evident runs 4 seconds or minutes you using find and samples C stock and works on the by and pride and possibly different virtual machines in the future so the problem why didn't Jocelyn's jeepers pools is that the stock does not contain usually much useful information you see if you look at the ceasefire off of survival anywhere you would see that 90 per cent of the time is spent quite a lot of frame thank you very much that's not not very useful piece of information so you want to buy mental function that this is this is even worse if you have a just-in-time compiler temporal but talk about later but 1 can you to reconstruct the constructed from this suspects not demo what
I wanna know and so we have this we have a small program that permits picked by the
Red Lobster type stuff participants to meat Python tests so I think here so a benchmark because we can for Python 1 . 1 which who remembers finding 1 1 was a while ago I don't even know where there was just there is from c divided underestimate and thus a bunch of operations like Nice style of what can be done all them are 0 which predates policing by so it's a little data than might I
find it around and so I would vitamins and being brought comes as a model I just 1 like this don't while there was like that probably was known and now it's not like stuff and that's it more maybe even more OK now those and long enough to actually have any useful information so that this will just displayed this but it's going information and knowledge which function was spent how much time so Proc 1 was 37 % and this is a little little useless because we don't see who are actually called up 1 with prob 1 probe and stuff so so we have a little work over there were you're and running this on my local machine because well network you thousands 0 I think way the 2nd like we run the benchmark ones
holding renders properly thinking thinking who
the the 2 here we see that those like the the main goal called main then called by stones that called Brooks 0 which calls for clients find through proper now that the uh the dialectical from 0 if we do the same
thing on then we might want more
then it's relatively similar except so here we can see that visible this list is slightly different so you can see that by fibrous how optimize staff member does the percentages so that all of most often but some them that much faster than the other use typewriters not optimizing equally all the code and you might say that the it's a number and that's that's difficult since that that piece was about the similar and runs a and working activity taking this information and making sure it ends stuff here so you don't see random numbers you just say OK this of 100 per cent of the so this is the emperor right now and something that we fix focus of yesterday so maybe you should like be careful but it's good for trying and conceive that actually works is that there was no not to yes
yes that's fair their runtime overhead of running the improv is really really love it roughly 5 per cent of the time so you you want to yeah that's what the next slide and was you what we're looking into the profile that it is possible to deployed profile and run providing all the time it's not the thing that you can only run benchmark songs somewhere in the isolated correlates of Rockwell but you can actually like deployed and get the data are coming to you uh which is again another point we want to have their real-time monitoring of performance so you can look in the last hour of filtered by request stuff like this something that I should probably mention is that we can't run this as a service where you would just like to think that they got all that somewhere and you do some so advanced analysis like what happened in the cold that compiled correctly they did they are denied unusual patterns to look for well this is work for the future but multithreading right now is that is not best which from using the the work but the goal is to make it work like that the signal and this everything are designed to work with multi threaded so we just need to look how others look from the Python and my obviously where notes that that probably doesn't it's fellow as the much did earlier when you want to optimize something right president of the of of a and we want all optimize something 1st you have to exports there are 2 parts of the code was low and then you have to to try to make them fast but there are may many ways to make vitamin called faster and there is of course not time to list for all of them you can write this extension on you can you cite on you can use a number of and then you can rewrite the Python called using matrix which you can find on there on the internet and saying most of the web pages you find on the web is saying that you that that's the streets of boston and adjustable or don't make you could foster but that's another topic organized by by by by using this as effective implementation which I how many of you know that despite the yes almost everyone would uh that these days refuses bend your biological when nobody knew what was it like you would think and areas but by by the condition with digital mobile I'm going to concentrate on these tools in the next in the next despite the article because yes we're all the data we have by and uh it's an existing the nice thing about I mean compared to the together so and talking about is that in theory provide by you most of over the with for free you don't have to rewrite a recorded interviews and understood accepted just run your quite important if it goes fast it currently there would relieved by by 2 point 6 which has nothing to do with that by them about their language version of of vitamin which by by 2 . 6 implements Python 2 . 7 when tonight there is also a entities for point of the game and AGI interested in knowing more than other Europe and told thoughts during the during the week and if you go to speed up by by the authorities United last in saying that 7 times faster than the by the end of the mean anything of course by by 7 then fossil supplied despite by the of the landmarks that we we selected we are not interested in management in which we are in a fast and we tried to do to select that something with that shows real area loss problems and accept the and on these benchmarks the average is the 7th faster I say that by the the G 2 which is the department makes it makes your code faster and alan briefly going to explain what the the gene for the quality of the of and Michael called which contains a function and rules and accept and that the fuel interpret your your programs we see by the by by would g you see that he was that is sometimes in and out in the green box sometime in the and robots bigger power all the of Diamond red and orange spots in the system the the energy that we can optimize this is sports by combining them with similar so that they execute much faster and then the but the time spent in Europe writing the problem is is lower and of course I can
go in the data because there is no time for everything around but this part of the talk but they gave the key idea is that 1st we we combine only this false which Arabs those which are sort which are executed in for the most time and that and then how do we make them faster well we delete late specialized article with it so if we see that there are a set for a function is wrong with the mean that there's like we have an additional within data in the we specially reproduces the version also a Assembly which knows that the variables are integers and deflated by chance original so with the that we have Austrians or least or whatever we propose and not a specialized version of do users of purified and gold which is fast on these uh these new types and the idea is that you precompute as much information as possible during data decomposition phase so that once you have the issue uh you do is Eurocentric does only they're interesting things the 1 where really needed for Buddha called for example suppose you have the land of gold which is at the top very often by the problem of the full cycle it's a medical and that is a very simplified version of what happened in full 1st of all we look what we look up fully a dictionary of the object property instances that it is not found we look up at the end of class and then if you don't find in there in the class we started looking at look looking it up in the this class and and availability of class and and will finally when we found it we execute and there if you are interpreting it you have to do these steps again and again and again suppose we have to dissolved that for that you were running and more 1 times you have to do a couple times and then so the DATA that by value Britain due to up so that you know which function called corresponds to full and and so you can jump it but of course it was quite a dynamic so these can change because I could do change their class of the object I could go on to remove attributes eta only or on the last and I can do also sort of tricks and the sticks and on in areas toward programs so DATA that we compiled the cold pretending that object the class is constant and that last year is constant and and so we can the will the lining of the quantum propagation and Exeter to make sure that our code is still getting correctly we we set the garden which is a week from time object that you that our assumption of the through each the got phase that's the that's decimal for the we are in jeopardy when executing there is no longer valid or not for scale and so we will bailout and we're start interpreting the things yes it's going to be lower but it's better to be lower than be incorrect of course and eventually we we compile a new action of December 4 it is the view assumption and occipital so at the end we we get a situation in which all the particles which are executed often I'm going fast because we have determined by that everything the the didn't yet parties who decide what to visualize along because for example yes they say that we specialize in the class of the object and that but you could do specialize in the number of reactants or if the object starts from pole or or something like this and the but you we we have to do some heuristics and the by code is written in a way which assumes that something is more constant that other things so we assume that you really got involved and don't don't change very often but the the value of your students can change so we knew the broader class of value and uh we assume that usually the modules are kind of constant is not that we either remove function due to the models that from time we can do in that case yes we specialized applies or 3 times but there it it's going to function and sometimes we just have a constant and the byte code so if you write the a plus 1 1 is constant and then we assume that a constant is constant this in the division course specializing in there is a trade-off because it is better left match and was spent almost half of what kind of compiling the colder and not 3 using the 1 we which we and so we consume memory and we spend most all of the time combining the if we don't specialize we produce inefficient called because for example if you don't specialize in the class of the object we have to look up at the end of the day so this is a table and it it to find the best and these bring up to to the next point which is how to write our code in a way that the friendly to way by of course transported we we can spend much time the is it's like a topic which can be 1 week long and alter the half an hour uh but there was 1 1 point of view is that the you should not do to the the that have done and do not a unit optimize you by the court without using a standard tools you did things like uh trying to avoid the methods and cost so you maybe you save the abandonment of viable and and quality to repair the or uh you tried to color you get if it is something that the models what is what you yes he said that the developed a couple of years ago the deletion of quantum matter because because creating a
spectrum is expected it is completely untrue and by by because did function so basically if you follow the and is kind of advice and you you don't you write it was quite important because they're trying to optimize it manually and there if you just write
nice quite important the by bicycle by candidates for so a couple of points that are general advice on how to use right item called uh the body is better than complicated which that if you write freely the plane by called widths it's self explaining the and that you can understand it well but probably digital bite into it as well and it doesn't matter who what what's going on and and it does better chances for optimizing uh you should avoid tools boosting nation in open because this is the fight and is usually faster because it is 1 of the initial which was only if your stream is there only a reference count of 1 you can cognitive optimization so you should avoid what would survive in by by the title avoided and I . 2 moles of sometimes I see pieces of code which are connected to those close to another variable delay generator which goes another I could do was an example and I have no idea what is doing and if you have good for you and that but that these kind of computers they're headed by by G. did you just write nice and were 2 nested loops explain what you're going and their chances that the G kind of kind of a letter that it was already there the other usual life is to right stuff see well known the would by them because the bike you by the potency by them is very low compared to see but if you write stuff see then the by but you cannot know what is happening solely because the stop optimizing at some point and go to see you write everything you do Biden did the by vegetation evidence that the knowledge of what's going on and as a matter of chances to all to optimize your order up the land today the best estimate can and solar 81 to interface with excess best thing to do is use acidified which what will the vitamin by by and it's fast and optimizer etc. you should avoid the extensions which are using this c by the CPI we have these compatibility layer but it's really like in relational preference
counting and other things and it's very long by by yes it looks if the sousaphone if you want to try your software and accept but
if you're using a c extension with using this c by the CBI we know in in a part of the code which is important for the best point of view it's going to keep only and then if you knew this was trying to avoid the English confuse the by by the way I was explaining earlier for for example we assume that the class of constant and passing kind of fix it up from some point on so you should avoid creating classes of time time whichever comes from coal and inside a function you create a class and then you returned an object of of the Use and sitting discussed yes this is done by 2 people by by but then digits with specialize on on these new class and even the data without direct enriching if you could point to note that it is not that it's not loaded you can create a positive number during the apartheid because we want to do some and programming and except that is the value that but if you create 1 million classes but that it would 1 we standard and for them a an example of what you should not be used to optimize the Oracle on because if you try to use monster saying apply credible up to get the facts and not related to the the element of the list and etc. but it's much much easier to just write the least compression and the the kind of advice you would find on the web and each measure it also by the music of the same speed and so it's not to it's not to even all answered by them and abide by the first one is just a bit slower so they just write your nice Python code which is understandable in the we learned the 104 if you want to know more about by by we around for a while we can so just ask something here uh due to won't last
moral we have to do the knowledge based the a room it so with the early would be a Q & a session so just come and ask and so and before I get this much and want to show you that there will be a the systems we sometimes I did what we did the experiment is do you see
agenda example small
gender example and like its obviously you read to show so far it's but many times of this is
the general example and index that some stories to Pecola calls and I guess this is that that they never wrote and I wanted to see how can I find this stuff using using the improv and I make sure things things with
nice to and round face bike in
and to and load to the local host thinking around managers fire and now because this as time goes it starts like mutable processes when 1 like if you just want to make this year up profiling and awarded processes does not thank you very much for remote and then I was able to threaten just in case running this
setting for it doesn't 1 look
at all of the other ones so
OK give uh so
going around a simple and the and I'm not going to listen to using the baby is available to all but I want to just since some regrets so arrangement thinking what's the by so again from just stop at 4
thousand requests fine because there's no injured warm-up time or anything like that and then like
temples that the profiling the
town of creatures structural forms of something OK so the
jungle doing its job chess billion calls that BN functions handle call call get responds index makes an index
actually only 47 per cent doing actual job uh but as you can see that damn that yeah itself then that 66 per cent of the total thing so if we should killed that that the spruce people that put their surjective diverse faster OK fine and
19 around the same thing on pipeline but start small
and then makes that will mean up and get a really good so this is noted weights takes time to warm up the rest so it's this is really depends on your workload but is usually something is going wrong if if you if you run for 5 seconds that's fine so I this this is like 600 requested seconds like about 3 dozen requests he was fired we we did measure yeah yes this is the longest linguistic 46 ms and here the 50 % based below 1 so you see the word is written so and I think so and then actually losing jobs and and injuries of it's not that bad but it's still relatively slow and that always helps here profiling we check the other day was like he was like 660 was the 2nd we allow the profiler on so better that's what 14 built in the sense that no I think 8 per cent and the look this original
work here in this in a look here you can scroll the right because this random maybe know so was I was trying to show is there here we have a normal the jungle stock which is 5 billion in levels of lead and here's the surrounding call call response in banks somewhere somewhere there but the index itself and far less time the bottom right
of index as I 32 . 2 per cent spend on all in banks and there's 1 very is
not which is made style and like is going scoreless style so but maybe wanna notice my name is true program that returns all k does not do much color as far as I can tell so we look
at what's going on there in and
then the 3rd during the course management cholera the figures
and college style got in this makes the so mates style about something and as you can see it defines a class within the function body for an no actual reason whatsoever as far as I can tell this thing alone makes this simple benchmark about 30 % lower like if you remove this and do that but we made jungle 30 % fostered by all this absolutely giving benchmark angry but still for those that have if half what
it the browser things not really working and questions
few high I think for the position was very interesting and fun and I have 2 questions the 1st 1 is plan but to find the most questions do plan to support Windows because it isn't as far as I understood you use signals and there are no signal signal windows so yes he found the support windows and make precise quantity of how to do it but we per problem what you can do is you can just run this a separate thread then in like in the sea level that and then just some of the slides have to be very very careful about maybe things of possible I don't like we we support minutes right now 64 bit Linux we have plans for like as x is in the process and those will look called the support but I don't know yet if there this kind will support work 0 4 . 1 5 words on Linux always thanks and on the windows and and on 32 bit and 64 bit and the likes of the windows and 11 64 bit Windows the you can run you need for a profiler for a so 3 days actually where it's not officially supported by the way people part of the justice he is the same as for quite like that of most of the stuff that you know that you are reporting on surviving from the library and all the calls there so therefore it is very very similar like we use a few extra circles Due to to the comparison the allocated this but as long as you're not supported all architecture like mixed or something then it's relatively easy we have uh the 2nd question uh about profiler um agent quite understood is it possible to prefer the term across prefunded between C and Python and if it is possible Hall Hollywood that so you what what happens is is you capture the society any of you have society that includes special interest for quite functions I can show you later noting but like other the idea is that you have all these seagulls and then you just throw them away to having access both present there is very easily the problem is that we need your employer data to be present the need to be able to look at the simple find that it the support of moving thank you is fully compatible with spice and set and then I just replace the siphoned with 5 so for the most part yes that don't differences you might want to look into the extension of the extension it but if you're cold pure Python than generally with a stairway to check for example if a general project to see if all requirements are compatible well you create joint insulin-like typically what what you need to do and stuff like that you need to replace a nice evil bindings with my suppose he if fight bindings so they're they're usually for most of this popular their equivalent libraries that do the same thing but instead of being a C. extension used used to see if a so I can't replace my C 5 directly I have to do some additional where the best it is just a project then you really need to slightly change requirements but I think you OK so the question is if you have if you wanna write a function and you would have multiple ways to implement and you don't know which 1 would be and when you compare when you compare 2 times the kind of the times commended the French over time because the garbage collector kind is always present you can believed right In Part II Lee yes but then you just most of this thing all the knowledge of over time is running more than the but there was collected that is already increment also if you if you exclude the jitter warm-up time which is slow in the beginning then better the GC will be spread almost evenly across the use of this assuming that you do a Wal-Mart but then you will get some by being in another level within the so not anymore all we have incremental garbage collector so that does little little world as long as the the the the the electric a measure of the whole thing to continue that around very quickly into the resolution of your clocks like below millisecond which is like most of collections fights the resolution is really bad it can be thus the shifting role work a separate track is at to or problems that were in Oxford will stop there's something called by army about How do removed and global interpret looking like got right now like this is this is you don't know that will do everything on there so part of the deal is that the jet is a tracing did so it does somewhere by the by running stuff that by the so you can do it in a separate thread because you're really running the by better than like optimizing in
meeting I said they could theory to the this and the grass that which we never implemented efficiently the functions as the approaches compounds and the meaning of the come from compilers yet yes very most part slightly more complicated than that that the market research Larry fear that 105 approaches were siphon from extension of wouldn't wouldn't pipeline all to and to changes so if you have a muon of usually were excluded slower the extension of slope because the to survive in the the there's some effort to a native faster and the uh final maybe just like makes i compile stuff to see if a fine binding since of compiling to see and that but then that would be the number of Alliance's yeah maybe this is not a one-to-one something because for was something that they didn't couple reasonable to try to speed out something which involve on c by the energy by use the few mortal site on sigh their the type declaration separate 5 so long identical might decided fast and owned by by just north 2nd part and its you buy the fast so the like the best that we do I of course was imported fuel into the interface with the the library and you have to survive it did you ever measure the amount of time is spent in in by pi and in example for example you have a approaches and this process spend some time on doing the work which is needs to be done for 4 by 10 in Python code and you have your own G and a list of things but you're measure this amount yet at the beginner out of their time we spend in their major compiler for example yes if you get a flat How can I need to go back to the cross there is a button in the browser you know it's there but it is given the little that's shows 100 per cent and everything but her them both the improv show you owe much time you spend too a warming up which means combined and how much I'm spending the garbage collector must understand the meaning of the dead and the degree of but the dream also is the object so that it in the beginning of your question yes this is wrong I don't know national why didn't didn't detect the object that is called but use of self this is looking at the mind as I think this should understand the question like what do you mean spend time implied all this time span 5 game but you do you like your own work you need for example gene deletions or garbage collector and there is like use called which yes so we know how much they're spending runtime and how much things and musical so that a yes we we will measure that like examples of runtime are so big look up like take lookups and not to compile but it's usually very uses for users to know that unless unless you really wanna know like how much time you spend in big number calculations or stuff like that that is usually not very interesting to know how much time is spent in this functions how much things and in in the user growth like do you care if your your code is going data to look up and then spending some time in and then like a little help there or or not like from so here's the first thing one was also you know that was yes yesterday so you mean vital overhead compared to what through the same program with an endowment yes or maybe the simplest Walden answers right there's no really good answer for the question because you would write in the same way you use different libraries the you do different things like in some places you would not use list you've listened user dictionary stuff like this like if you write the things exactly the same as from cumbersome between Python and Java are that doesn't have a good answers the question that you use depends on the program and what might I want components would you like the best case scenario is as fast as job are often but you don't always have the best case scenario if you write Python code that looks like like like this where cost I was defined insight for example you would write difficult job right because you can do it so is the right you can write it in general but it would not be the same in after
compilation of which is the essence of python let you write if you ask like was that if you take a job are
and write exactly cold like John Wayne frightened and paper will be rocks and at the same speed with not much difference if you write code that does double as the
copyright for in like keyword arguments of the function that the which you can read the right and you have a very easy then it's probably will be stored and they provide a general we actually have 3 3 by hand over them for example so it really depends on what sort of style you fall I can let you do things that are expensive and they're not hard to write and we're trying to optimize them but we know always do as good a job as you're writing c you would never allocate memory yourself because it's it's been it it's a real pain to deal because then you have to remember where to free help to exit the function of the intent very easy to allocate memory of time actually routinely nite comparisons of vibrancy and in typewriter used a list and append nc these electrical buffer of of a thousand because allocating list that you have sizes just too hot and but this is apples and oranges again well I hope that answered the question you think any other questions thanks for the talk my question is we types humans felt like I know the Cervantes no so the thing is that if you do it Inderjit compilation you know all the types anyway because the are what's actually there so you are actually know or that that the longer answers that type things are not precise enough for this sort of stuff the fight by like I would not only specialized on class name specialize what shape of the class there so for example what sort these are present on this precise object and this is something that you can't express it by so that things are actually not even those helping them and they're not not there you can do the same things as we do in the gym we we can do whatever that means a lot to do it and do that and we we do more so I have a question for me and profits very interesting are you using it to determine whether pipeline is relatively not that much better and supply from so you did a lot of switching back and forth between the 2 cases in your web page do you have an integrated view that tells you that in this placed on benchmark for example pipelines particularly good and proper 1 but it's relatively bad in Proc do you have to intend to help out because I would assume it helps to find test cases where pipeline can be improved for the given program that's a very good point and I didn't think about before but it's probably something very very useful like to be able to compare it might not even but there's also like to defend libraries for example or life 2 different setups with function and nite state OK if I do do this what actually happens the the profile that sounds like a good idea and I think checks last 6 months ago and point was incompatible with event but has not changed as is again a change like yeah I think the new release of that will support and the transitional already done time hello just a quick quick question about opium profit is the possible to customize the sampling rate for the some so yes there is nothing definite something right the the problem is that the signals want below you more than this system clock which is around 300 a things thing I remember they get around that then number that you can go lower without changing Strategy completely something like threats which we might to do for and wasting because of does is to increase the overhead linearly yes there's obviously you into would if you sample more often than like a yard 330 or have like 30 seconds of time between and in
its standard in the job and I also like the something no OK thanks hello again thanks for the talk and I have a question about the buyer prices showed example that make it a question set of function is that it obviously is a person that is insofar as well because of some overhead but my question is so let's say there's some test library that lost the classes so how do you do with my occupation stuff so that maybe did the chancellor set up a lot of that that that that if you just of the stuff and the humongous stuff for each function like I mean we're talking about stuff that's called millions of time if you market for like each call the fact of that this function and this function is the have like 500 that's different no problem at all and those this function 1 digit anyway you cannot I would use your assumptions that the class is a constant size of cylinder 1 pressure I changes constant at the runtime yes but the didn't really invited like I'm going to do is like several techniques are no that this from the past so it's Florida some kind of floating assumptions yes is it helps if you're right really having this sort of stuff like in this example there this is called mates finalized over every request and I'm doing things out those thanks syphilis white classifiers for me the what 1 model does not that decoder is incorrect and he by the semantics is always presented that and if you do these kind of tool dynamic style maybe you and that performance is the what on was just wondering is that it is in terms of something that I can run to tell me about the but the classes of bad idea the normal international but no this some of the theories and this is the 1st 1 this file is from right it generally this isn't a Django has
coded this says before running a pocket PC's onto something people try to run Django on the pocket PC on assignment
i and then the final dealing with like reading the tale that they're not color political something that I think we yeah and so that does that also maybe we shouldn't do them pocket Seattle of matter should be doing that at all how are you going to support for Python 3 4 1 3 5 in place of in pipeline attention the reason why you are inclined to have the Popeye 3 can support points version 3 4 1 3 5 eventually uh and the broke that there is there are many provided a person working on it and the development of development more costly notion Figure amount
Resultante
Bit
Mereologie
Punkt
Service provider
Computeranimation
Metropolitan area network
Speicherabzug
Kontrollstruktur
Wurzel <Mathematik>
Einflussgröße
Gerade
Benchmark
Sinusfunktion
Ereignisdatenanalyse
Lineares Funktional
Zentrische Streckung
Statistik
Sichtenkonzept
Kategorie <Mathematik>
Güte der Anpassung
Temporale Logik
Just-in-Time-Compiler
Profil <Aerodynamik>
Benchmark
Programmierumgebung
Erschütterung
Arithmetisches Mittel
Filetransferprotokoll
Dienst <Informatik>
Konditionszahl
Projektive Ebene
Information
Datenfluss
Overhead <Kommunikationstechnik>
Instantiierung
Subtraktion
Rahmenproblem
Quader
Mathematisierung
Interaktives Fernsehen
Zahlenbereich
Zentraleinheit
Kombinatorische Gruppentheorie
Task
Systemprogrammierung
Virtuelle Maschine
Interrupt <Informatik>
Task
Reelle Zahl
Mittelwert
Stichprobenumfang
Vererbungshierarchie
Optimierung
Ereignishorizont
Physikalischer Effekt
Data Encryption Standard
Just-in-Time-Compiler
Zwei
Physikalisches System
Quick-Sort
Keller <Informatik>
Rahmenproblem
Zustandsdichte
Mereologie
Codierung
Gamecontroller
Overhead <Kommunikationstechnik>
Wort <Informatik>
Magnetbandlaufwerk
Managementinformationssystem
Nichtlinearer Operator
Dualitätstheorie
Elektronische Publikation
Benchmark
Dienst <Informatik>
Computeranimation
Datentyp
Bus <Informatik>
Faltungsoperator
Optimierung
Gravitationsgesetz
Compiler
Versionsverwaltung
Ext-Funktor
Benchmark
Lineares Funktional
Elektronische Publikation
Datennetz
Benchmark
Dienst <Informatik>
Systemaufruf
Computeranimation
Eins
Metropolitan area network
Virtuelle Maschine
Font
Informationsmodellierung
Softwaretest
Modul <Datentyp>
Funktion <Mathematik>
Code
Bus <Informatik>
Volumenvisualisierung
Vorlesung/Konferenz
Information
Ext-Funktor
Informationssystem
Modul
Spannungsmessung <Mechanik>
Webforum
Fächer <Mathematik>
Benchmark
Dialekt
Computeranimation
PRINCE2
W3C-Standard
Metropolitan area network
Client
Font
Softwaretest
Datenerfassung
Normalvektor
Metropolitan area network
Stab
Minimierung
Zahlenbereich
Mailing-Liste
Information
Fokalpunkt
Code
Computeranimation
Gammafunktion
Zufallsgenerator
Einfügungsdämpfung
Mereologie
t-Test
PASS <Programm>
Extrempunkt
Computeranimation
Freeware
Code
Mustersprache
Punkt
Korrelationsfunktion
Phasenumwandlung
Gerade
Benchmark
Multifunktion
Sichtenkonzept
Kategorie <Mathematik>
Mobiles Internet
Singularität <Mathematik>
Profil <Aerodynamik>
Polstelle
Dienst <Informatik>
Dezimalsystem
Wechselsprung
Menge
Rechter Winkel
Digitalisierer
Konditionszahl
Festspeicher
Tabelle <Informatik>
Instantiierung
Klasse <Mathematik>
Mathematisierung
Dienst <Informatik>
Maßerweiterung
Informationsmodellierung
Variable
Mailing-Liste
Reelle Zahl
Spieltheorie
Datentyp
Maßerweiterung
Automorphismus
Modul
Analysis
Attributierte Grammatik
Demo <Programm>
Rechenzeit
Schlussregel
Modul
Data Dictionary
Portscanner
Echtzeitsystem
Attributierte Grammatik
Overhead <Kommunikationstechnik>
Partikelsystem
Compiler
Matrizenrechnung
Punkt
Minimierung
Formale Sprache
Ausbreitungsfunktion
Versionsverwaltung
Echtzeitsystem
Internetworking
Metropolitan area network
Datenmanagement
Einheit <Mathematik>
Byte-Code
Lineares Funktional
Heuristik
Just-in-Time-Compiler
Rechenschieber
Arithmetisches Mittel
Teilmenge
Helmholtz-Zerlegung
Ganze Zahl
Information
Overhead <Kommunikationstechnik>
Versionsverwaltung
Standardabweichung
Quader
Gruppenoperation
Implementierung
Zahlenbereich
Assembler
Web-Seite
Code
Physikalische Theorie
Division
Multiplikation
Benutzerbeteiligung
Mittelwert
Konstante
Quantisierung <Physik>
Optimierung
Implementierung
Leistung <Physik>
Gammafunktion
Autorisierung
Data Encryption Standard
Matching <Graphentheorie>
Mailing-Liste
Physikalisches System
Objektklasse
Quick-Sort
Roboter
Objekt <Kategorie>
Energiedichte
Flächeninhalt
Mereologie
Dreiecksfreier Graph
Ebene
Schätzwert
Videospiel
Punkt
Minimierung
Singularität <Mathematik>
Cliquenweite
Maßerweiterung
Oval
Zählen
Punktspektrum
Code
Computeranimation
Zeichenkette
Metropolitan area network
Streaming <Kommunikationstechnik>
Loop
Variable
Loop
Offene Menge
Datenverarbeitungssystem
Monster-Gruppe
Maßerweiterung
Ordnung <Mathematik>
Ideal <Mathematik>
Informationssystem
Offene Menge
Bit
Punkt
Klasse <Mathematik>
Element <Mathematik>
Oval
Nichtlinearer Operator
Code
Computeranimation
Monster-Gruppe
Metropolitan area network
Mailing-Liste
Benutzerbeteiligung
Task
Vorzeichen <Mathematik>
Gruppe <Mathematik>
Monster-Gruppe
Maßerweiterung
Quellencodierung
Ideal <Mathematik>
Einflussgröße
Lineares Funktional
Sichtenkonzept
Singularität <Mathematik>
Mailing-Liste
Konstante
Zeichenkette
Loop
Digitalisierer
Mereologie
Baum <Mathematik>
Dualitätstheorie
Elektronische Publikation
Logarithmus
Stichprobe
Benchmark
Physikalisches System
Extrempunkt
Computeranimation
Endogene Variable
Sinusfunktion
Zeichenkette
Metropolitan area network
Softwaretest
Geschlecht <Mathematik>
Automatische Indexierung
Chatbot
Meta-Tag
W3C-Standard
Physikalisches System
Server
Elektronische Publikation
Softwaretest
Prozess <Physik>
Datenmanagement
Last
Singularität <Mathematik>
Stichprobe
Elektronischer Datenaustausch
Benchmark
Unrundheit
Versionsverwaltung
Computeranimation
Offene Menge
Stichprobe
Einfach zusammenhängender Raum
Extrempunkt
Computeranimation
Eins
Arithmetisch-logische Einheit
Medianwert
Metropolitan area network
Bildschirmmaske
Last
Software
Task
Total <Mathematik>
Datenstruktur
Bitrate
Versionsverwaltung
W3C-Standard
Metropolitan area network
Lineares Funktional
Computerschach
Prozess <Informatik>
Automatische Indexierung
Faktor <Algebra>
Stichprobe
Systemaufruf
Extrempunkt
Computeranimation
Gewicht <Mathematik>
Fächer <Mathematik>
Zwei
Profil <Aerodynamik>
Systemaufruf
Extrempunkt
Computeranimation
Übergang
TUNIS <Programm>
Metropolitan area network
Beanspruchung
Software
Prozess <Informatik>
Automatische Indexierung
Rechter Winkel
Faktor <Algebra>
Wärmeübergang
Endogene Variable
Wort <Informatik>
Bitrate
Versionsverwaltung
Caching
Stichprobe
Einfach zusammenhängender Raum
Benchmark
Remote Access
Extrempunkt
Computeranimation
Endogene Variable
Systemprogrammierung
Metropolitan area network
OISC
Datenmanagement
Automatische Indexierung
Faktor <Algebra>
Wärmeübergang
Kantenfärbung
Optimierung
Bitrate
Figurierte Zahl
Ext-Funktor
Chatbot
Zeichenkette
Metropolitan area network
Lineares Funktional
Singularität <Mathematik>
Klasse <Mathematik>
Datenmanagement
Programmierumgebung
Atomarität <Informatik>
Computeranimation
Benchmark
Offene Menge
Bit
Subtraktion
Prozess <Physik>
Ortsoperator
Browser
Automatische Handlungsplanung
Term
Computeranimation
Übergang
Weg <Topologie>
Task
Bildschirmfenster
Mixed Reality
Programmbibliothek
Vorlesung/Konferenz
Thread
Maßerweiterung
Einflussgröße
Bildauflösung
Lineares Funktional
Schnelltaste
Kreisfläche
Systemaufruf
Profil <Aerodynamik>
Paarvergleich
Rechenschieber
Menge
Mereologie
Wort <Informatik>
Projektive Ebene
Computerarchitektur
Speicherbereinigung
Baum <Mathematik>
Web Site
Prozess <Physik>
Sterbeziffer
Browser
Compiler
Applet
Schreiben <Datenverarbeitung>
Zahlenbereich
Code
Physikalische Theorie
Metropolitan area network
Spieltheorie
Prozess <Informatik>
Datentyp
Programmbibliothek
Vorlesung/Konferenz
Zusammenhängender Graph
Maßerweiterung
Optimierung
Einflussgröße
Hilfesystem
Schnittstelle
Lineares Funktional
Rechenzeit
Mailing-Liste
Rechnen
Data Dictionary
Objekt <Kategorie>
Arithmetisches Mittel
Energiedichte
Verbandstheorie
Rechter Winkel
Deklarative Programmiersprache
Mereologie
GRASS <Programm>
Speicherbereinigung
Overhead <Kommunikationstechnik>
Betriebsmittelverwaltung
Subtraktion
Punkt
Compiler
Mathematisierung
Klasse <Mathematik>
PASS <Programm>
Zahlenbereich
Schreiben <Datenverarbeitung>
Web-Seite
Code
Computeranimation
Metropolitan area network
Prozess <Informatik>
Datentyp
Stichprobenumfang
Programmbibliothek
Vorlesung/Konferenz
Plot <Graphische Darstellung>
Optimierung
Hilfesystem
Benchmark
Softwaretest
Videospiel
Lineares Funktional
Parametersystem
Shape <Informatik>
Elektronische Publikation
Sichtenkonzept
Gruppe <Mathematik>
Zwei
Elektronischer Datenaustausch
Profil <Aerodynamik>
Mailing-Liste
Paarvergleich
Physikalisches System
Bitrate
Ereignishorizont
Quick-Sort
Objekt <Kategorie>
Codec
System F
Rechter Winkel
Festspeicher
Strategisches Spiel
Overhead <Kommunikationstechnik>
Informationssystem
Aggregatzustand
Dualitätstheorie
Klasse <Mathematik>
PASS <Programm>
Term
Physikalische Theorie
Computeranimation
Formale Semantik
Metropolitan area network
Informationsmodellierung
Prozess <Informatik>
Programmbibliothek
Vorlesung/Konferenz
Softwaretest
Lineares Funktional
Elektronische Publikation
Diskretes System
Systemaufruf
Rechenzeit
Elektronische Publikation
Quick-Sort
Zeichenkette
Konstante
Druckverlauf
Menge
Rechter Winkel
Digitalisierer
Overhead <Kommunikationstechnik>
Baum <Mathematik>
Informationssystem
Standardabweichung
Kreiszylinder
Punkt
Versionsverwaltung
Softwareentwickler
Figurierte Zahl

Metadaten

Formale Metadaten

Titel Python and PyPy performance (not) for dummies
Serientitel EuroPython 2015
Teil 161
Anzahl der Teile 173
Autor Cuni, Antonio
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/20085
Herausgeber EuroPython
Erscheinungsjahr 2015
Sprache Englisch
Produktionsort Bilbao, Euskadi, Spain

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Antonio Cuni - Python and PyPy performance (not) for dummies In this talk we would like to have a short introduction on how Python programs are compiled and executed, with a special attention towards just in time compilation done by PyPy. PyPy is the most advanced Python interpreter around and while it should generally just speed up your programs there is a wide range of performance that you can get out of PyPy, ranging from slightly faster than CPython to C speeds, depending on how you write your programs. We will split the talk in two parts. In the first part we will explain how things work and what can and what cannot be optimized as well as describe the basic heuristics of JIT compiler and optimizer. In the next part we will do a survey of existing tools for looking at performance of Python programs with specific focus on PyPy. As a result of this talk, an audience member should be better equipped with tools how to write new software and improve existing software with performance in mind. The talk will be given by Antonio Cuni and Maciej Fijalkowski, both long time PyPy core developers and expert in the area of Python performance.
Schlagwörter EuroPython Conference
EP 2015
EuroPython 2015

Ähnliche Filme

Loading...