Bestand wählen
Merken

The joy of PyPy JIT: abstractions for free

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
so hello everybody thank you thank you for
coming the 1st of all can you hear me is the volume to find that so it is the go is a book about 5 I and by predicting party what our 1st few what about me
been by by co-developed better for more than 10 years now and was the holder of some under open source the projects like the viscosity and others you can find me on Twitter and before I forget and I will show you some of the more potent and these presentation you can find a source code at the link so if you'll want to try it by yourself sold this faculty led by by usually when n when we at conferences and bulk with people public by by data general question is a whole foster the and actually the answer is it depends it is not the and a single article this question because we do depends on the kind of call are running and as we will see some of the velocity Benin on how this code is written Digital Tool speedup by quite applauded you'll you can see uh the benchmarks we would honor every nite and is also the as nice a graph which is summarized as you see we we mean we computed at the on of regular 7th at 7 times faster than supply them at of course due to them the mean anything in 3 depends on your code and Wheeler show in this presentation the cool thing is that for because they weighted it wants it that it is able to remove a lot of your brand of abstractions in your code which means that the better the code you write been degree there is this against if I don't so what does it mean to write good call well 1st of all we have to we used to be correct and what is and then it is nice to have code which is variable which is you demand they uh which uh the May CPI if you're writing a library defined API is very important because this is how the user will a really a library and if I see is the easy to use but their library is much better than any of them in the and of course it would be nice if our code is fast and in particular it would be nice if the by writing a nice code which is the readable and maintainable in except are we we don't think about the speed of the code usually what 1 way of writing would gold is tool to make it would you would use of abstractions like for example with something to you we all do when when writing we which I to thought the outcome on the use of logically into function of then we we group common pieces of doubt and uh behavior awesome 2 glaciers using a dance to to share or acceptor and years makes the code that there are more readable in etc. but sometimes you the if this style of writing called a has a cost especially in survived and we of musi briefly in our In the following I will show you anymore and uh and I will show you various way ways to write the very same use of logic and and we compare the performance of C by them and by by various versions of the code uh gating way is about to some image processing we are running the uh so but the on and on some video seen from a web cam don't would there's not too low to compute some edge that edge detection of of the image I'm still is just a base from the PDB guys I'm not really a a computer vision guy so I don't really know home to works I just go these delete from somewhere else that so how do we represent any major induce the into the more we start by the everything image in a very simple way uh any major is considered to consist of a available which contains the with the hate of the major and an array which is now about the ah I we have talking about rescaling meets all uh each pixel is represented by 1 byte from 0 to 255 and uh so yes we have the the linear array and we can index a single peaks at a position x and y by the way did you have simple come from so we got to the debate yeah we will see what the is the math behind it we will just write this as seen by the law in which we do everything in line with any so you can see that here we have our image which consist of free revivalist we compute we we create the their the output image and for each peak so we would accomplish and you can see that for example to address each pizza I do here their the competition men money every time and uh and but it is worth like can so you may be more like
the Berlin running earning owned by by and you see a faster courts in real time you see the number of FPs the it's it's a bit of the those we call this the frame rate of my web come if you if you you then the in the defined much faster for comparing is on the started to buy the yes it doesn't 2 where the new 1 more than 1 frame for a 2nd yes and From now on I have I we let out uh will avoid show you would in the other major years also and week program to benchmark varies national the Codasyl devious the vitamin which nodes almost by for imposter continues by by which just more than 270 so yes
these very good by pi is some large number fast evidence by over here and there are there are embedded in the histograms about a B C waiting at the the
uh that the different scale because as it was there this if I don't need to tool on a little tool to be seen the but yes I mean versions that the what is fine but a very bad cold because uh for example here we have a logic for computing the index for a single pixel which is repeated again in the game and it's very very bad so what we do we start to make it a bit nicer and we write some functions to get the peaks and to set the CSO soul our goal becomes a bit nicer but you see that we can call this function to get the peaks what
the perceived running it let's try to if I and it's committing only conference by
them because it can do that all the frames of the video file take forever so you see hits like how the speed of before the same by by you what this a speed of 4 uh actually the number of events at all because of course it is a laptop with hyperthreading and the temperature of this abuse so we think it with a grain of sand but yes in general medical at the is there so
is this a speed of that before and yes so we stopped we we wrote code which is nice and at the end by by very then then survivor much faster than to buy them and for so we we do more meaning we suffer represent any major by using their a theory of class and on uh instance so we we have discussed discussed we there we save why we then the hates and in that the rate and we have this get vitamins that item uh special methods which computes the after alone uh they actually index in a narraive us so now it becomes much nicer to right don't that is right here about and I think
especially to this you can see here that we can index directly between
fighting age and the other can guess
we right on see by and it's being lower than before and we are in the pipeline this but the listen speed so these days that the the bottom
here because the we do use more and more layers of abstraction and owns and every layer of such interviews and varied survived on and an offer of a holder at all on on my pride and that is because as we will see later in the G 8 has a logic to remove this kind of red and and so and other they stated it better because we right to foster it becomes so now we do we we want to get it and make it even faster and uh we start to represent a point inside the image like with their with the class and uh we can add the point Due to another so that we can compute all set for a 4 point and also we want to all of stock today notion of how to generate already majoring tool into a nice method because the of India's version of the code we we're undefeated our they're living in the Cabinet of over the competition on all so made part of the border because this is we don't that enable pixel tool to consider and there but there are various possibilities and other and other ways to handle the edge cases so we get along with them and their uh in 4 rules something is uniform over here we have these range from 1 2 issues along which MIT medical means to avoid a border about this much nicer to with put it in the uh In a method and as we see here that the galley we return any there it or weeks which iterates over all the peaks of of the image my by computing then using the idea of the Baroque and so basically we can start to write our Goldarina's Latif and wave remember here that you see that we iterate over all the peaks that we are only 1 rule instead of the 2 nested loops of thought and to compute the labels we we again and you there a analysis and that's because we come we we can just say it takes the point which is 1 pick the right and uh 1 peak so that uh on the bottom and it's it's a and this show you only see fights is so
as to become very low and even think somewhat
somewhat way you should drink the water of this so we will remember we started from the bottom to almost 5 frame the 2nd and now it's like times Lola or something and what don't free this but not in the I guess I think I think this is my laptop which is getting a hold this
I not really actually
there is a bit of a penalty here uh if you if you write a lot of times and see that you get a slightly a smaller president of the number of FPs probably did you introduce and beautiful red but it's really tiny compared to the over and which is induced by the bite on uh idea and look at the exact quote somebody G to to see where is the fraction of performance is lost about it might be that for example that the height of the correct actually creates a new object which is then used to be collected by the sea so we had a bit of pressure or something like that all but really is negligible from confronting to comparing it won't survive so we get we we want to go even faster it is called the big enough to be red so so basically what we did so far is the do the among was uh competition we have these metrics which is shown here we performances is is and the DAAD off welfare field there is that for each pixel in the major we want to to compute the these uh to compute the modification of of this it's and here we are particularly we do it's uh many bot will be much nicer to there 2 stucco the is the is doesn't have to write it in in then uh say away so here we have uh our class and you which of them the carrot and we when we we give it today idiomatic like the copy and paste from incubator Wikipedia page and when we called this object passing in image and the buoyant it uh it computes the multiplication of of semantics for point and uh yes me this stuff to to do the canals you to be really nice of them before because remember if we want to to try another few or something else that we can just edit the values in the matrix and and be at and so let's try it
again on the by tone
yes you can the the yeah the guy and he did it with the talk is going to be due to last 1 hour but most of the time it's spent in waiting for survival to this through yet yes the Denzel and not much lower than before so now guess what happens we went by yes don't no much of the solar like that then times lower than before and he's a
fast and I mean it's much faster than the by the if
you if you start from the version of the code you you you run it on uh on the by the by applying the that the seventies is 6 times faster and a happy ending user you you gold compensated by by a a really nice and it what that actually I mean here we are running much much slower than we could because I am it the title of the target of the simple free you have not been told so yes we concluded by by sites and by the people well of course not yes embedding
any I will show you later why you waking up as but the point is that the by budget works by a computing loops that detecting combined uh assembly version all through these rules but the other normally when we have this kind of called we have 1 of which is the formal and uh and did you see that at least all operations so we if you call in assembly code for it and it wrong uh nearly away and it was this if you can do it very fast but here we we step a lot of the nested groups and that the study area it means that if you look at the genetic code you when you are in their iterating over order peaks and then you you what the equivalent of a function called to would the outer uh loop which of the know the combined by digits and these kind of operation is as well which by by as long as you stay in 1 model is very fast if you jump between loops it's still fast I mean we is this seventies times faster than c by the not is of us past of the if you stay in and so uh in 1 in 1 possibility
tool uh to solve the of the issue is to are all amenity to so basically here you see that we have this function which creates a kernel function from nomadic at last and I using the is by by flows model in which a rolled and it's available on by me II and it's not nothing the especially is just a nice property through generate code on the fly and easier in generating a function which I call apply which takes an image and a point and I memory are all the did it did 2 nested loops here and for each combination of J and I I u I have only 8 in the value of the of the competition in user and special variable which and then return and then which is nice library I wrote a you you can asked of the compiling the code is really a lot done by Ernie exact industry and nothing fancy and then I I return it that the value give you if if the passed the got G it
generates this kind of cold which is we should see is very very uh um simi lar up to their to the coder I showed you earlier which I wrote my mind but now much nicer because the
API of my of my library looks still looks like these e I created they can and the ultimate because we needed last a nice fast
function FIL astride the main I
don't even try to buy them because you can you know that have too little and yes yeah
fostered a and the here and now I am and getting the less FPs because probably is really getting both of them but
I trust me yeah I got a high is also the do they uh find out the final graph and we see that by by is the 400 times faster than for understanding of this advisory so
what so what did we learn a so far is that's on C 5 and every time you try to to be nicer when bagels because the item is the dynamic language and every time you call a function on the dust and where the China coupling there's a globally based and every time you call a method on a class does to uh look up the metal that in their dictionary of the class moreover the instance if it does and and every time you will you would apply to numbers at us to create a temporary value and this kind of who agreed on by buying and sold it to the of section of
almost 3 years there are a bit of a what from the 1st and the last uh national but it not much and that is something that you can pay uh quite easily button uh if if they want to gain is much nicer called so in the in the 2nd part of uh and of this talk I want to give you a very rough uh ideology how I buy is able to do this kind of magic and and optimization soul we we we we we see here's some examples of code and see what the energy it produces and but I want to to give not a detailed a Phoenician and is not even completely correct information I try to to simplify things because I think it's in easier to understand if you if you are interested in ED deeper and more detailed explanation and even more correct 1 uh I gave it a thought that some Europe identical think was 2 thousand 15 of something and you can you can look at the slide or uh for the view of the dog and full let's start from a very simple and uh mn from a very simple uh um piece of code we have this function which computes this summer and numbers and
uh and it's was just a way to the when it when you run it on a pipeline happens is that at some point by by when that we are running new so we are running a bit the same code of being in the game and after a certain number of iterations the Jedi scene and compliance the court of this rule Andrew what what produces the something like be is there is still a code of that they think it you should I understand more or less what's going on the 1st thing to note this is that we are combining only 2 where you see that there is all not cold for afforded to life before open for the line after the EU uh Riera running on the loop and diluting by pi are always in the tools and the way you exit the loop is used by fitting a god what is a God it may user I. D. is so-called i.e. uh brought the got us offset that the galley ended due to the difficult we inserted some objects here and there to ensure that the the preconditions we we assume that the learner has to improve so for example if if we pass an integer to compute we have thought other and I and I which all integer variables and we can produce a specialized version for what is called which is able to do any integer addition here is the boss of thought well is in the assembly code is no longer the same because of big Seaview level we have different instructions for adding
to flows or clean the there's so we we did you do we really have to generate another another 1 and here you see that the got he is that to get checking that the variable would possibly is actually needed there and also because of the semantics of vitamin every time we do where in addition of 2 in there so we need to check for overflow because in this case we we need to switch to a long I'm talking about right and when 7 here and so you see that every time we do use them in addition we also need to check for for what to do those got so what that period that in their normal case you have a very fast which uh which is some sort of integers the there really low level integers like gave if you write a the is is not like if i structure which is my locally memory it's really in need a lot of variable which is the producer view induced and as long as there is no overflow everything goes faster uh also you see that's the condition of of the robust the of the now and during 2 0 and 100 on here so it means that at some point is governed failing to use how we actually to and then there is uh lot of complicated coding by pipeline which which backs from Egypt and the gold to their old interpreted 1 so let's let's see what happens uh even when when things are more complicated
so as suppose you have anything inside your new and in this case that every outer iteration you 1 operation and then the other you get physician what happens is that at some point we're on and after several number of iterations digit keep scene and compiler version of you but when that it the East is only the duration which is being executed now so we only see 1 half protocol would not the other so for example in this particular case we we only sold they then branch of the but not to be as you see that here in the coder which has been generated by the G is it's more less like the 1 before but we are saddened that we are in these branch of the course the other is not considered at all so what happens is that the next thing you know the direction of the fail and you get out of the digit code and there is there's a logic
that checks that he forgot was fitting very often then probably mean that it's what combining the data as well so the properties that after a certain number of darts failures GeTe compliance what we call a breach and medical touches another piece of assembly code to their to the code which was already memory with illegal in memory and to change their operation uh the DCV instruction from being a job after they did for that called for jump to the newly compiled code soul induced a recorder what what properties is that we have 2 different bridges 1 is the main open the other is the newly compiled bridge but you see that 1 1 important thing is that we never knew it match after so for example these instruction which is um which is done after they've here is replicated both Internet in the main and in the bridge and is that it is 1 of the reason why they owned by pi you need to take warm up into account when you're when you're measuring the your your preference because if the programmer rounds uh um 4 and not enough time you spend too much time compiling the various routes and just after a while the margin you see that don't on this on my example a couple system where more than enough for more warming warming up at that everything is being studied I usually and all the hot off of the corn as being combined with the the new so go back and lower example if you remember the 1st in broad version of the coder was the was the 1 which will be a logic to compute the index inside the array into functions and we sold it by pi did not suffer from preference this is done calls of for the way did you do that is written and alignment happens automatically so here we have the same function as before but this time the addition is our is gonna inside dysfunction and without that is that the data doesn't care and they just see that inside a function we lose the addition and so we want very low level instructions about here but but was widely that dynamic language and it if I just give you this cold and then try and ask you to execute the when you cannot be sure that f and there is always the same people that it might be that someone monkey Paget my module and FN something different or it might even be that's I married changing their under under called attitude of the function and and make it executing something completely different and uh so the function is still the same but the idea behavior is different and there are lots of crazy things that come up and bite on and this is 1 reason why it's hard to optimize and abide by approach is to be a set a lot of God for each of these conditions and of offering them the hour we we check that big global was dictionary which is the dictionary where the Earth and these is that the same version of the for is a just and there are a number that we we we used to keep track of the state of military every time we modified in each i we increment intervention soul if nobody touches the data dictionary of a module we choose which doesn't help and often uh after the initialization importing what you've gotta would never and and the way it works fast and the same thing for a BA under under cold of the function but also note that we are smart enough that we put all of his God's outside the loop because the G as their knowledge of what's going on and you know that by executing T is a few operation we cannot change and all of us and we can actually fn that hold up to do so basically we we move they they got out of the loop which means that when you enter it it's he doesn't a couple of quick checks at the beginning and then it would mean days in animal which is where when the time is spent there are no doubt or lose a few of them and now now you use did see you start to see why dimension which we had 2 different groups combined was always cause we need to do these checks have been and in every time we in the compiler function and the this same for classes of them here we have the class point which is just to lot use and I can compute the distance from the center by using by calling the is function from the math module and exible suppose they have a list of points I want to compute the total distance and here I aims at more and more dialogical Python at a lot of things can really so here to make sure that decoding speed up these sounds is really is 1 I need to check that out the global beach I didn't change uh that's they the dictionary often not what didn't change and that they did she could betray other points clustering change and that there that did these functions the voice a single but before because it's through the through doing a global lookup is often not uh C. model and uh and other things so badly Kelly off that all it is God who we are sure that decoding here inside this is 1 so see that at the in the loop we can insert uh and the airliner in the call to his function which is written foreign notified begins by by this so I think that now you you you start to see a part of the basically every time you have a a some dynamic behavior of fighter which makes the top of the mind but by by tries to um to reduce the dynamicity by uh by putting gotten hoping that this vision of an change which we show almost of with very often it's true because remember modifying their day at an ad decode attitude of function never happens but if it does by by still correct for that needed the gutter phase so we can't use digit code we have low-LET to be correct which is what and finally 1 of the most important the 1 of the most important optimization of energy it is the 1 about neutrons and didn't where when you read we know what because for them suppose here either bribery wrote it in a different way and at each iteration of I create a new point object and then I compute the distance the I meand called not the type to lie about but in this case for sure for sure you feel stimulation equals I had to do deeds what the presence applied to me that that at every iteration of the loop I create the new obviously I they were called
model and then that I call that the needs and I set the X variable to i.e. the y variable to i've belong then I called these would win under method look up and that's that when you see why not paying lot of performance what happens in pi pi is that by by Harry when I did here at the rule we are creating this point object we are putting them into the neat but we had immediately destroying it never case you so all we did the duty is a smart enough to uh explodes data structure of the point object into global variables so instead of creating a memory and storing the x and y in memory it store then for example in some securities the so here it's instead of having in an object the and a beagle X virus field we just that the X look unbearable and the same for group we wine and on and so now we can again line equal to Peter distance now that we have let's govern before it that because now and we know that in a bit the itself by point because we just created it but we didn't creating because you've right but From there uh absent point of view this is to use this kind of stuff so we we can even at a reduced the number of God and the and by way that's the uh and that's why you can and White by pi can be so fast and medical by applying this kind of optimization you you can see that in the version of the code of the showed you in we will go the whole variety of the obstruction that's more or less the same and therefore model before it's possible that there is little babies In the Biddulph slowdown is solely because of this exit got for example you you you baby afforded dynasty of vitamin too much and there there's another thing I wanted to show you and it's related to the is God I show you before because for example when we do any online online called but that digits as to check that is called object is uh based in the same and then then you have seen before but let's go here give them
their due the version 5 uh and here we are creating dynamically and new function which so me and we means that we are not creating a new called objects at in the day and in this particular case the
by by is fast because the
spontaneous created at the global level so we create only last and that the Jedi always see the very same but if modify the code which IDN
Triton is and I it my theory is correct the but think we should be
choice
so if we move is called
from outside to inside the but
this is then means that every time and then did you when we see a new code objects we cannot apply the same organization of before the and so strongly believe
very little so the important thing to
know because I have seen it in area alive code with which maybe creates a class is that inside functions of Laura and in coffee ladies and there in see fight and use those not change much but from the point of point of view of by by changing the law because even the same function it does a different identities so that you can cannot be sure that they behave in the same in the past combined the same order and
the so basically that's it the
there there are more white by the
events and here Europe item tomorrow we're on the right by a best so you can come and ask us questions only on Friday that is a fault about indigenous that of the fight by which be done by other means which we here and they don't know what these something about the particular but it's a joint and might by you might need to incoming alright you could just stop us here during the conference and us question because what I meant it was shown that question you to want so if you have questions now huh resource inter-speaker per-speaker through presentation have the questions the the that thank you took wanted to ask why you need to check the version number musical enough just which the cold weather there is still the same circle is because all of the galilean understand a white is it's not enough to check that the cold war and the states the same way we also need to check the version number of the calls why there's enough to check the globe the that a number of ways of not enough to check that the cold winter states the same because the because I might change maybe did is the same thing about the content of the the has changed is that the or in the in the it was a slight 31 of whom correctly that so what was but but it was so low have same called when the because we also taken the quote when the the so in this and both need to be checked because you can get a chance you can your Python interpreter by changing what name fn refers to but you can also keep the same name fn today what if and to cold refers to I'm in my so so we need to check the I
don't know if you don't have to estimate the
strong for now full it's free but if they can the is the so this is kind of dynamicity of by the which gets in the way when you want to optimize the state of the the I see there where for example you would have this in do function with the same put object but different global us so it's easier to check for uh for their and a function object by the mother many more maybe you have a global lookup of constant and then you you wanted to check for but that that that that the cost of using the same that the guy the hello think presentation I have a question about the benchmark usually the I think it's kind
of an unfair comparison because most of the present development represent an images of list of lists all the important right of same developments and supplies was more restriction on part of it so it or if you have no benchmarked persons against power output by comparing of Yale B and try and get you will not the point of the token yeah I know that if you write surviving probably can be much faster way the num by or some specialized library but sometimes you just need to write your Python code and a which is not in some ivory slowly and it's useful to know that what you pay what you don't they uh it was just an easy example tool social medical thank
you and give it slide 31 I think it was an you're assuming essentially that your running single-threaded uh how to cope with the world changing asynchronously so somebody could in another for a change of the protons by firemen have been same thing to do loop foot up as we move with threads that serve your including on loop do you parity check of the state the world hasn't changed all all that In they don't don't all I really don't scale so I guess what obviously if you have if you have a small enough to send the loop can be written in such a way that you know that it's not going to really is a given so as long as it is not to use and you use that and for the case where you call something and maybe you have been in use since then when than after after the core returns an intuitive user that detects the and and when you went from a version for 2005 and that sort of optimisation how do you know in our pier and our incurred on my part something and how do we find out that that's a sort of optimization should be looking for how difficult is it to find out and so it would be great deal live work so if we if we run our encoding and the pipeline and it's kind of not very fast summaries for a similar reason how do we find out on on that so I have to store up to a new because in all forks yes head what without pressing the allies there is that you you have this program and you'll you see that so lower not fast enough so all what they usually do is 1st of profile like for them using the brought to see uh where where we spend most of the code and that there is a tool to look at that could prove in gold producer by the G and that if you know for those who work with without optimization which you expect to be done and you see that 1 of the vision is not applied doesn't apply then you'll you whether hint of what's going on for example a lot of time happened that you expect an object get called like is this kind of things when I write code we by buying minus over
often I the the object and creating is temporary so that we need to try but sometimes I look at the taste and I see that is not we call of maybe it's possible to some function which was not combined might be due to our other things and that and disk a performance so a few of the rider called by the uh removing knew had a line of code which forces the older it becomes fearful of 18 it and much faster guess it there are unfortunately there is no easy the easy to use tool to to detect these uh the this should scenarios you have to know basically what Dada optimization that do you expect and if you see that some if not applied but then tried to to understand why and that's why these kind of talk is user thing because you start to like to to get an idea of what you can expect and can't expect from energy the the day after the question on behalf are there any plans to
remove to kill from pipeline you the so it will be the question are there any plans to remove decay from pipeline the to reflect by well I'll ask you removed appeal from 5 prime to the global interpret look yes I also gave them a understand completely different yes and the at the data that going branched but they don't know much about the 2 and the broader come to the the Friday told to tools for to know more a and you had some kind of a certain going to doesn't overflow books don't you can guarantee this so halting problem so is the god photos during the user does just revert to blame the president what happens so this and the question is what happens when a gap phase just inside the of those asserted 2001 low yes by the incumbent and times why by the galley what topics is that do we actually did you that code and we we have a special piece of code which uh and try to recall their mistake made this state of the competition and we go back to the interpreter so fighting it out is expensive but most of the government Affairs visited or for its very rarely the effects could talk them in abstract you mention that you're going to compare whole using pipeline variable compares to using other popular optimization methods List sites on can you shed some light on he is actually a and sorry about because when I wrote to the talk proposal was the multiple and when a prepared a tall guy at for both of them have brought about of the FIFA the stuff inside in asserting the in the tall and there but yes I have uh area would experience of the Eagles liable to library which is governed by about uh which is about um uh passing the cup and propylene and bite on with the binary protocol and that the goal of the of the library to be false hope by and by by and it was not because of you so the blue bird and never there have very different performance characteristics so what they end up doing it was to write to you by the encoder which was very fast on by by but then I annotated it's externally with this item annotations so basically hosted by them and compiler the Dubai they're put into sites of gold this she is it's faster and on by by just strongly you vitamin Gold which is much is much better in generating when you're running code by by the if you have to choose where to run your by the code or the same written in C you by them is faster because it doesn't more knowledge about what's going on and and there there be a couple of places you wish I could not find a a version of the code which was fast humble and implementation so I had to write to different version 1 by by and 1 by them this hi as so in this example is really is no OK so how well does it work on sort the 3 you life complex code when an award of of the tree in each trace a lot of levels after 1st a lot of functions called like can functions you do have a roof sound how far works mind you know I don't have a precise answer of course because do depends on the kind of cold but I I have seen a life coding which by by stand times faster than the bite but sometimes it up and that you'll you start from and it takes in the existing case of quote you try by pi and color and then you look at the traces for example would this is what they needed in at some point and um the and they a so something that they are expected to be optimized was not and bite and tweaking a couple of lines of code out I Majid and managing the code to make the code 10 times faster of sampling is it is but they got in talking about the problem was that where there was a victory in which the user makes it unique or density is and which is fine heightened but by by we have a special optimization that if you have a dictionary we Wilson was give our all the strings or only unique order that especially the implementation but if you meet them you that's did specialize lower implementation for this particular case by switching using the uh in which enables title for the key uh got it much faster but I guess that there that I don't have any measured the a rule to uh to make a generic to support Foster my on what developments can we expect fortitude future can you make it for example more intelligent to handle the the example show to the and remove code runtime that better is so in the question is so what do what what would later that for the thing you would want a watch a new developments you can implement their work which can expect in the future of society and How maybe is the the K try again what
developments can we expect for the due to the future can you make it more intelligent so that the temples your last example that the yes I think that you know what is energy that is this kind of maturity so do we really need only easy to use due to make it faster but there are always new ideas on how to make a particular case faster and optimizing uh 1 particle our behavior or something I don't think we have any idea in mind right now you if you got you all feature and at the end I because every time you add a new optimization and you'll you all out of it because I didn't show it but the you can see it in my head the but also uh the optimization of the chiefs are a really really work well better because sometimes an optimization like you negate something you 2 then that produces some called which is handled very well by another optimization so at the end a lot of operation are removed or a simplified so medical so maybe if we uh other some of the mission to remove the the corpus of over and then use the adaptation would start work much better than before and you get you up but it's a really you know how to answer this question more precise the and I don't have any other questions and I think we can was your be thank
Fakultät <Mathematik>
Versionsverwaltung
Gruppenkeim
Computer
Gradient
Abstraktionsebene
Gesetz <Physik>
Computeranimation
Videokonferenz
Intel
Spezialrechner
Code
Speicherabzug
Maschinelles Sehen
Gerade
Benchmark
Funktion <Mathematik>
Lineares Funktional
Webcam
Abstraktionsebene
Systemaufruf
Just-in-Time-Compiler
Quellcode
Digitalfilter
Software
Automatische Indexierung
COM
Projektive Ebene
Pixel
Konturfindung
Geschwindigkeit
Ortsoperator
Mathematisierung
Kombinatorische Gruppentheorie
Mathematische Logik
Code
Quellcode
Task
Programmbibliothek
Spezifisches Volumen
Bildgebendes Verfahren
Demo <Programm>
Pixel
Graph
Open Source
Vererbungshierarchie
Indexberechnung
Bildanalyse
MusIS <Museumsinformationssystem>
Binder <Informatik>
Minimalgrad
Mittelwert
Bit
Benutzerbeteiligung
Echtzeitsystem
Rahmenproblem
CODASYL
Zahlenbereich
Optimierung
Computeranimation
Ego-Shooter
Bitmap-Graphik
Lineares Funktional
Bit
Pixel
Histogramm
Ego-Shooter
Automatische Indexierung
Spieltheorie
Versionsverwaltung
Zahlenbereich
Versionsverwaltung
Mathematische Logik
Computeranimation
Mittelwert
Rahmenproblem
Klasse <Mathematik>
Zahlenbereich
Elektronische Publikation
Bitrate
Code
Ereignishorizont
Physikalische Theorie
Computeranimation
Videokonferenz
Sinusfunktion
Arithmetisches Mittel
Spezialrechner
Automatische Indexierung
Notebook-Computer
Versionsverwaltung
Instantiierung
Mittelwert
Punkt
Pixel
Abstraktionsebene
Wellenlehre
Klasse <Mathematik>
Versionsverwaltung
Schlussregel
Objektklasse
Mathematische Logik
Code
Computeranimation
Arithmetisches Mittel
Spezialrechner
Loop
Spannweite <Stochastik>
Rechter Winkel
Automatische Indexierung
Minimum
Mereologie
Versionsverwaltung
Bildgebendes Verfahren
Analysis
Mittelwert
Elektronische Publikation
Rahmenproblem
Notebook-Computer
Wasserdampftafel
Minimum
Gerade
Computeranimation
Matrizenrechnung
Bruchrechnung
Bit
Pixel
Punkt
Linienelement
Klasse <Mathematik>
Zahlenbereich
Digitalfilter
Computeranimation
Ego-Shooter
Homepage
Formale Semantik
Objekt <Kategorie>
Chatbot
Multiplikation
Druckverlauf
Datenfeld
Versionsverwaltung
Bildgebendes Verfahren
Ereignisdatenanalyse
Elektronische Publikation
Gruppe <Mathematik>
Zellularer Automat
Systemaufruf
Computeranimation
Modul
Beobachtungsstudie
Nichtlinearer Operator
Lineares Funktional
Punkt
Assembler
Versionsverwaltung
Iteration
Schlussregel
Computerunterstütztes Verfahren
Äquivalenzklasse
Code
Computeranimation
Loop
Informationsmodellierung
Ego-Shooter
Flächeninhalt
Digitalisierer
Ordnung <Mathematik>
Versionsverwaltung
Lineares Funktional
Punkt
Amenable Gruppe
Kategorie <Mathematik>
Schaltnetz
Datenfluss
Code
Computeranimation
Kernel <Informatik>
Loop
Informationsmodellierung
Generator <Informatik>
Festspeicher
Programmbibliothek
Versionsverwaltung
Bildgebendes Verfahren
Lineares Funktional
Elektronische Publikation
Mereologie
Ego-Shooter
Graph
Zellularer Automat
Programmbibliothek
Versionsverwaltung
Gerade
Systemaufruf
Computeranimation
Sichtbarkeitsverfahren
Lineares Funktional
Bit
Sichtenkonzept
Minimierung
Klasse <Mathematik>
Formale Sprache
Just-in-Time-Compiler
Zahlenbereich
Abstraktionsebene
Code
Computeranimation
Data Dictionary
Rechenschieber
Energiedichte
Code
Mereologie
Nichtunterscheidbarkeit
Information
Versionsverwaltung
Instantiierung
Bit
Punkt
Versionsverwaltung
Iteration
Zahlenbereich
Code
Computeranimation
Formale Semantik
Übergang
Demoszene <Programmierung>
Loop
Variable
Datenstruktur
Gerade
Addition
Sichtenkonzept
Assembler
Präkonditionierung
Schlussregel
Gleitendes Mittel
Quick-Sort
Objekt <Kategorie>
System F
Loop
Ganze Zahl
Benutzerschnittstellenverwaltungssystem
Offene Menge
Pufferüberlauf
Festspeicher
Grundsätze ordnungsmäßiger Datenverarbeitung
Codierung
Fitnessfunktion
Randverteilung
Programmiergerät
Punkt
Minimierung
Compiler
Formale Sprache
Versionsverwaltung
Gruppenkeim
Iteration
Bridge <Kommunikationstechnik>
Euler-Winkel
Marketinginformationssystem
Computeranimation
Übergang
Richtung
Internetworking
Wechselsprung
Prozess <Informatik>
Maschinelles Sehen
Phasenumwandlung
Lineares Funktional
Nichtlinearer Operator
Addition
Assembler
Kategorie <Mathematik>
Physikalischer Effekt
Systemaufruf
Zeiger <Informatik>
Arithmetisches Mittel
Automatische Indexierung
Festspeicher
Digitalisierer
Grundsätze ordnungsmäßiger Datenverarbeitung
Ablöseblase
Decodierung
Maschinenschreiben
Subtraktion
Hausdorff-Dimension
Klasse <Mathematik>
Mathematisierung
Zahlenbereich
Unrundheit
Mathematische Logik
Code
Demoszene <Programmierung>
Loop
Informationsmodellierung
Datensatz
Weg <Topologie>
Datentyp
Abstand
Hilfesystem
Protokoll <Datenverarbeitungssystem>
Matching <Graphentheorie>
Diskretes System
Verzweigendes Programm
Mailing-Liste
Routing
Physikalisches System
Modul
Data Dictionary
Objekt <Kategorie>
Energiedichte
Mereologie
Bit
Computervirus
Punkt
Minimierung
Matrizenrechnung
Versionsverwaltung
Gruppenkeim
Zahlenbereich
Code
Computeranimation
Informationsmodellierung
Variable
Code
Virtuelle Realität
Abstand
Datenstruktur
Cliquenweite
Lineares Funktional
Sichtenkonzept
Computersicherheit
Schlussregel
Objekt <Kategorie>
System F
Datenfeld
Digitalisierer
Festspeicher
Grundsätze ordnungsmäßiger Datenverarbeitung
p-Block
Versionsverwaltung
Explosion <Stochastik>
Varietät <Mathematik>
Kernel <Informatik>
Spezialrechner
Versionsverwaltung
Auswahlaxiom
Physikalische Theorie
Code
Computeranimation
Übergang
Objekt <Kategorie>
Lineares Funktional
Elektronische Publikation
Punkt
Sichtenkonzept
Flächeninhalt
Klasse <Mathematik>
Gesetz <Physik>
Code
Computeranimation
Modul
Kernel <Informatik>
Interpretierer
Kreisfläche
Elektronische Publikation
Versionsverwaltung
Zahlenbereich
Systemaufruf
Kombinatorische Gruppentheorie
Gerade
Ereignishorizont
Computeranimation
Kombinatorische Gruppentheorie
Arithmetisches Mittel
Rechter Winkel
Code
Virtuelle Realität
Inhalt <Mathematik>
Versionsverwaltung
Aggregatzustand
Lineares Funktional
Kernel <Informatik>
Subtraktion
Elektronische Publikation
Diskretes System
Kombinatorische Gruppentheorie
Information
Systemaufruf
Gerade
Computeranimation
Objekt <Kategorie>
Konstante
Code
Benchmark
Aggregatzustand
Modul
Punkt
Minimierung
Mathematisierung
Versionsverwaltung
Code
Computeranimation
Loop
Globale Optimierung
Programmbibliothek
Thread
Softwareentwickler
Maschinelles Sehen
Bildgebendes Verfahren
Benchmark
Leistung <Physik>
Funktion <Mathematik>
Zentrische Streckung
Mailing-Liste
Paarvergleich
Quick-Sort
Objekt <Kategorie>
Rechter Winkel
Gerade Zahl
Mereologie
Speicherabzug
Decodierung
Aggregatzustand
Subtraktion
Web Site
Minimierung
Versionsverwaltung
Automatische Handlungsplanung
Single Sign-On
Implementierung
Komplex <Algebra>
Code
Computeranimation
Übergang
Netzwerktopologie
Erwartungswert
Halteproblem
Digitale Photographie
Mini-Disc
Stichprobenumfang
Virtuelle Realität
Programmbibliothek
Softwareentwickler
Phasenumwandlung
Gerade
Soundverarbeitung
Lineares Funktional
Interpretierer
Videospiel
Rechenzeit
Schlussregel
Mailing-Liste
Quick-Sort
Dichte <Physik>
Objekt <Kategorie>
Energiedichte
Flächeninhalt
Pufferüberlauf
Grundsätze ordnungsmäßiger Datenverarbeitung
Codierung
Decodierung
Kantenfärbung
Ordnung <Mathematik>
Charakteristisches Polynom
Ablaufverfolgung
Zeichenkette
Aggregatzustand
Nichtlinearer Operator
Energiedichte
Minimierung
Anpassung <Mathematik>
Virtuelle Realität
CMM <Software Engineering>
Partikelsystem
Softwareentwickler
Computeranimation
Schreib-Lese-Kopf

Metadaten

Formale Metadaten

Titel The joy of PyPy JIT: abstractions for free
Serientitel EuroPython 2017
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/33683
Herausgeber EuroPython
Erscheinungsjahr 2017
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract The joy of PyPy JIT: abstractions for free [EuroPython 2017 - Talk - 2017-07-12 - Anfiteatro 2] [Rimini, Italy] The joy of PyPy JIT: abstractions for free The PyPy JIT is a powerful piece of technology which makes Python program running faster: in this talk, we will see how it helps us to write our programs better without sacrificing performance. One of the key to write complex software systems of good quality is to make a good usage of abstractions, to clearly separate the various layers and components. However, often each layer of abstraction adds some cost in terms of runtime performance, so we need to struggle finding the best trade-off between maintainability and speed. Because of the way it works, the PyPy JIT naturally removes the cost of most abstractions: we will look at real-life examples of how this is possible, showing what the JIT can and can't do. We will also show how this compares to other popular systems of optimizing Python code, such as Cython

Ähnliche Filme

Loading...
Feedback