Fast Async Code with Cython and AsyncIO

Video thumbnail (Frame 0) Video thumbnail (Frame 1086) Video thumbnail (Frame 2822) Video thumbnail (Frame 3818) Video thumbnail (Frame 4697) Video thumbnail (Frame 5508) Video thumbnail (Frame 6372) Video thumbnail (Frame 8150) Video thumbnail (Frame 9669) Video thumbnail (Frame 10485) Video thumbnail (Frame 11524) Video thumbnail (Frame 12589) Video thumbnail (Frame 14838) Video thumbnail (Frame 17609) Video thumbnail (Frame 19782) Video thumbnail (Frame 20947) Video thumbnail (Frame 22823) Video thumbnail (Frame 23796) Video thumbnail (Frame 25706) Video thumbnail (Frame 29928) Video thumbnail (Frame 32890) Video thumbnail (Frame 34186) Video thumbnail (Frame 35495) Video thumbnail (Frame 36454) Video thumbnail (Frame 38011) Video thumbnail (Frame 39248) Video thumbnail (Frame 41617) Video thumbnail (Frame 44106) Video thumbnail (Frame 45798) Video thumbnail (Frame 47888) Video thumbnail (Frame 49328) Video thumbnail (Frame 50160) Video thumbnail (Frame 51021) Video thumbnail (Frame 56705) Video thumbnail (Frame 57699) Video thumbnail (Frame 58997) Video thumbnail (Frame 60289) Video thumbnail (Frame 61633) Video thumbnail (Frame 63252)
Video in TIB AV-Portal: Fast Async Code with Cython and AsyncIO

Formal Metadata

Fast Async Code with Cython and AsyncIO
Title of Series
Part Number
Number of Parts
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
Stefan Behnel - Fast Async Code with Cython and AsyncIO Learn how to use the new async/await language feature to write asynchronous code in Python and [Cython]. See how to benefit from the excellent low-level features that Cython provides to speed up or parallelise your code, interface natively with external C/C++ code, and achieve better responsiveness and lower latency also in mostly I/O bound applications. ----- Python has recently seen a fresh development boost around asynchronous applications, triggered by the addition of the asyncio library and the new async/await language features in Python 3.5, but coming from a world of well established tools like [Twisted] and [Tornado]. The [Cython] compiler, which compiles Python code to C, has accompanied and influenced this development. It provides full language support for async/await under all Python versions starting from 2.6, as well as native interoperability with existing Python code and the new Python coroutines in Python 3.5. Benchmarks show that, while fully compatible, Cython compiled coroutines perform about 2-3x better than the same code executed in Python, but they additionally allow to interface natively with external C/C++ code, release the GIL, do parallel computation, and much more. All of this extends the applicable zone for asynchronous applications dramatically and can lead to better responsiveness and lower latency also for mostly I/O bound applications. This joined talk by an async I/O expert and one of the Cython core developers explains how to write code with async/await in Python and Cython, and shows how to benefit from the excellent low-level features that Cython provides on top of Python.
Personal digital assistant Multiplication sign Website
Type theory Service (economics) Process (computing) Pay television Software Core dump Projective plane Right angle Disk read-and-write head Inductive reasoning
Bit rate Basis <Mathematik> Product (business)
Trail 1 (number) Website
Default (computer science)
Software Telecommunication Quicksort Library (computing)
Standard deviation Dependent and independent variables Process (computing) Scaling (geometry) Personal digital assistant Multiplication sign Single-precision floating-point format Universe (mathematics) Right angle Task (computing)
Web service Multiplication sign Weight Website Database Endliche Modelltheorie Cartesian coordinate system Task (computing)
Run time (program lifecycle phase) View (database) Ideal (ethics) Total S.A. Cartesian coordinate system Event horizon
Socket-Schnittstelle Game controller Service (economics) Block (periodic table) Interface (computing) Interface (computing) Machine code Parallel computing Cartesian coordinate system Event horizon Software Social class Library (computing)
Mechanism design Software Link (knot theory) Block (periodic table) Operator (mathematics) Weight Free variables and bound variables Software framework Protein Resultant Declarative programming
Point (geometry) Functional (mathematics) Game controller Electric generator Set (mathematics) Client (computing) Protein Product (business) Subject indexing Process (computing) Simplex algorithm Query language Operator (mathematics) Core dump Quicksort Resultant
Arithmetic mean Game controller Dependent and independent variables Server (computing) Process (computing) Thread (computing) Graph (mathematics) Software Resultant Task (computing) Connected space Number
Point (geometry) Dependent and independent variables Process (computing) Personal digital assistant Multiplication sign Website Client (computing) Cartesian coordinate system Number Task (computing)
Type theory Message passing Standard deviation Multiplication sign Database Cycle (graph theory) System call Formal language
Beta function Projective plane Content (media) Interactive television Function (mathematics) Machine code Mereology Disk read-and-write head Semantics (computer science) Number Formal language Particle system Endliche Modelltheorie Extension (kinesiology) Mathematical optimization Physical system
Open source Computer file Multiplication sign Cellular automaton Weight Planning Machine code Mereology Type theory Word Website Pattern language Data type Mathematical optimization Library (computing)
Functional (mathematics) Decision theory Execution unit Quadrilateral Planning Insertion loss Function (mathematics) Machine code Parameter (computer programming) Variable (mathematics) Event horizon Measurement Type theory Sign (mathematics) Strategy game Different (Kate Ryan album) Operator (mathematics) Statement (computer science) Vertex (graph theory) Right angle Summierbarkeit Integer Object (grammar) Family
Functional (mathematics) Sine Digital electronics Connectivity (graph theory) Multiplication sign Combinational logic Disk read-and-write head Declarative programming Computer programming Mathematics Sign (mathematics) Causality Endliche Modelltheorie Extension (kinesiology) Traffic reporting Compilation album Module (mathematics) Curve Sound effect Machine code Variable (mathematics) Message passing Right angle Object (grammar) Data type
Functional (mathematics) Information Memory management Endliche Modelltheorie Speicheradresse
Functional (mathematics) Run time (program lifecycle phase) INTEGRAL Bridging (networking) Endliche Modelltheorie Object (grammar) Machine code Mereology Form (programming)
Point (geometry) Run time (program lifecycle phase) Theory of relativity Bit rate Semiconductor memory Order (biology) Canadian Mathematical Society Parameter (computer programming) Machine code Resolvent formalism Dimensional analysis Exception handling
Group action Functional (mathematics) Regulator gene INTEGRAL Multiplication sign Data structure Object (grammar) Routing Benchmark Number Library (computing)
Loop (music) Series (mathematics)
Subject indexing Sparse matrix Personal digital assistant Eigenvalues and eigenvectors Representation (politics) Summierbarkeit Parameter (computer programming) Vector processor Resultant Formal language Library (computing) Attribute grammar
Functional (mathematics) Mapping Website Function (mathematics) Protein Resultant
Functional (mathematics) Mapping Coroutine Sheaf (mathematics) Letterpress printing Division (mathematics) Incidence algebra Protein Number Revision control Integrated development environment Website Right angle Game theory PRINCE2 Data conversion Condition number
Revision control Functional (mathematics) Different (Kate Ryan album) Multiplication sign Mass Data conversion Cycle (graph theory) Resultant Number
State of matter Game theory Number
Onlinecommunity Functional (mathematics) Implementation Hoax Overhead (computing) Multiplication sign Letterpress printing Insertion loss Streaming media Student's t-test Number Revision control Goodness of fit Term (mathematics) Different (Kate Ryan album) Negative number Energy level Integer Data conversion Data buffer Electronic data processing Pairwise comparison Touchscreen Cellular automaton Closed set Binary code Electronic mailing list Database Bit Data stream Type theory Inversion (music) Software Integrated development environment Pattern language Object (grammar) Fundamental theorem of algebra
Standard deviation Arm 1 (number) Website Right angle Cycle (graph theory)
Point (geometry) Arm Process (computing) Personal digital assistant Website Right angle Bit Number
Mathematics Single-precision floating-point format Weight Multiplication sign Energy level Website Pattern language Student's t-test Product (business)
Type theory Fluid statics Multiplication sign Order (biology) Virtual machine Combinational logic Pattern language Quicksort Wave packet Social class
and then will be dealing with them
and there will be time for questions at the end will influence we're delivering this
talk together with step on so we just saw that instead of having to standard of that we give don't something spatial this here why don't bring in some fresh material so we tried our best to give you some new use cases new examples so the tools that you might already heard all many times so we are in the habit of presented today how can you use that using KL site together to to make it more
efficient software so let's start will just the beginning of the introduction because you see people are still coming so seven-year why don't introduce I one-dimensional in uh 1 of the core developers
of type and known from conducting a project of the new head and persons development a kind of an active member of that the community efficiently run
inductions from Germany uh member was greeted over there and yet so I'm meant undersea animals Lofoten developers of climbing job I'm also organizing bike on the east so I'm using this as another chance to remind everyone that yes it does exist this year it's in the solver so go on Michael on of the ENC and come we also have to have everyone there and let me give a credit so they're called company where we're working on right now so school be is in the book but directly with subscription service that operates for quite a while it has some a cool with you in
Germany and it's available not only in Germany but although I have a lot of books and I would have a decent price of 999 months and people on it because it would five-star ratings to that's of course advertising but what is even more relevant today is at the start of the showing you today is
used in school at least partially so where based bank and we have developed in its from they today on daily basis and so the start of present you in production so yes let's start about the story how would be
structured so we start with an introduction to its just to have
everyone on the same track what so what is it about them what will be the examples about today and then we'll go on to site on topic and have a brief examples of what is it about and how it does it
work then we will show you how to use that together and how you can benefit from that from that and we'll show you some
practical examples easy once more and more complicated ones and of course will have cool questions from hopes good so 1st
asynchrony what you guys use this
I think that the yeah we do not need to stop too much on that because such a massive topic you know it's represented very great from this conference so I think we just have to go very briefly about its
everyone is in the same fact so as simply you know it's finally finally a defaults to invite starting from 3 the but but for 2 to 3 . 3 that we can use for the
missing from most network communication it gives us tools so so that have been already available in different libraries that were there forever and Mr. that was there in tornado and then there was the same or as well but this thing here is sort of a common tool to do this sort of work of just
switch to to another node will quickly to show you some
graphics the background i'm
just very very brief recap why do we need this tool today why I was thinking about it so let's take a simple case of a synchronous processing of some
requests so request on the left processing so a back and is in the middle respondents on the right this is a time scale of time is going down this is the traditional start that everyone will still from the universities so we get the request Persephone we throw the response out we get the next request the process that with filter the response out single standard and simple moralistic cases so that we have more than 1 request coming during the processing of all the first one and they just have to wait where the smaller request but we can do just 1 task at a time so we do it with so responses as we're completing our task time is going the same thing then the deal
about this thing is that the most of the time at least standard I O bond applications like most of the Web site most of the web services most of database applications and as I've been waiting for I O so this time is something that our city user wasting and we could say that if we we could do other
stuff in the meanwhile while we're waiting on the blocking resource so I mark here this books this weighting let's save
database some other externally with our and the asynchronous execution model lets us to save this time by switching between tasks to have same 3 task that's 1 of 2 and 3 but in this scenario we work on Task 1 then we do what the request the database and we can work from the other things in the meanwhile so we jump to the past 2 right away when task to is done the short 1 then we go back to task 1 because we got a reply from the database and we work on that and so on so we jump between tasks that's how
we can recover the Iiving in making on the ideal and that's how we basically most of Internet-related applications can save on the total execution time some fast so what is the view of all this in the all with this is the 1st of all it's an event
enormous reactor from with that like 12 years ago was already there so again it's nothing new it's just the standard way to do that but dust is essentially it's a it's
a tool that's how it is managing the network events and that no switching events is related to to each called in our application so it will be remembering 1 data available on particular sockets which piece of code should it's cold and then when the piece of code
user control back the I will then it decided also which piece of what should be the key that next to adopt this jumping between blocks of code and that's call the that's
another thing it finally gives us a common future class it's
service same interface basically almost same interfaces concurrent features that we had before it's also pretty similar to tornado future that we have and there are libraries that can convert 1 future and another
so you can mix the frameworks uh and what is the future of just a quick reminder it's so it's called deferred and is that the placeholder for some of our results of probably network operation that is not available yet but will be available soon using it as a link to the future results of some operations to another block and weight but to do other things and finally quality and again it's quite
similar to proteins that we have in tornado but a not only the quality mechanism mechanics itself is updated but also all the declaration of protein is updated starting
from 3 to 5 so we can use a single label it seems so it's in text instead of
from syntax that this sort of thing so the way to do that and outside and supports it will have on the peer-review of that how can you that together and so on that and just quickly finished with this thinking production 1st yes so uh so core has a set this based on the generators can be on the query with the yield from simplex or with facing that's index it's slow their function or a generator that can be suspended and gives a control to other proteins and a very simple example that they show you just to get started this we use a new friends this thing that's index we do some processing then we want to do with blocking operations so we use think it should it be clients to write something for us matching is a blocking operations so it's initially requirement will return as the future of the real results so we don't wait and then use pictorial from syntax to points that I will dedicate this is something that we don't want to wait you control for other proteins and just the resume this current team at this place when the result is right on the soccer and then we have the more processing and return the results these so
finally we're getting closer
to the the thing that we will be showing you today about how can we go even further in optimizing always seem task so in these graph what we're showing you is some front that we have the front ends let let's say they just some piece of software that accepts a network connections and so the use of the tasks to back and part that is doing some background processing for us isn't here is 1 here on the front it's getting request number 1 does some processing and then OK we need the some data from the back and so with the request the back and make and does some processing meanwhile would have request to that is going to the front and server it is started it is executed then engages control again to the request number 1 because this result is already available here what we see here is that even though request 1 has begun before request to it'll only get responses afterward so it was waiting longer than it would be waiting because of the result from the back and that we need use already available here at this point but because there was a request to coming in and the mean of islands we have just 1 thread in which we execute everything we have to delay the processing of the request 1 even further it can get even
worse if we have a request 3 so it's included the
sites which task should be done next and even this point the sides of we have the request number 3 and we have data available from the back and here which 1 should be the next it's could decide that they would soften the request 3 and then request funding is delayed even further so even though coming 1st into the served lost and so on this and some applications can be quite critical because they're not fair in the way we're doing with client requests here and the most straightforward thing obviously what we can do is to make this times shorter so the shorter hours the times that we we need for processing from data the faster we can you responses and also the more flexible we are in switching between the fast different executed so this case by shortening the processing time on that simply aside twice we see that even even though the back and take the same time to give the data that we need even tho we still our way better in serving the front and request because of we are more efficient and switching between them and so our responses will be available fast and as you probably already guessed how can we
reduce the latency how can we how can we process I think the apostle more efficiently is only only if we reduce the pass the time it takes to process every piece of gold that is there synthesized it's not database because databases probably the booking responded to be processed and from other places it is some usually Python call that is taking time to be executed and here's a cycling comes in now let the stuff on the introduction of outside and then we talk about how can we optimize this in us of of
then you can candidates intro through its cycle and as about language 2nd is a commoditization most widely used standard has compared out there it's been the early days of type when it was still called pirates of in preparing and
2nd project itself out in 2007 for regression and variable called and it's another is that the major part of the semantic head and neck of the system so in some to go right into a the larger the lot of number crunching and on courts and the coordinates kind of for example the many many wrong tools and beta content tools are required on what gives you is so basically of a Python code were also have you 2nd code was written the back on the outputs of the from the generated code which is compatible hello and this is here the ISO to getting extension model which is important and then just use another model and I thought said this sense of having language whenever you want to do optimization
optimized according and interact with external coextensive with last code gives particle really because you know about the end of the talk coordinated by
and that's 1 the it's open source you can prevent certain words and we ended up so if you religious or more in the better of this historical OK so implements OK so is all that's going on you can add them about what you're doing over the quality as
1st thing you would do it because it's a lot of time on the net and the site magic to the rhythm of work of and allows it to execute technical so very indirect way through and through them and compiled according to the uh book when using near some you have on the through the file and the deletes type release which are reducible there go just for conference so you look and and so then what you you do is you can take em at and cell and said from the pulpit at you and you have to share it is and this is just the could just use of plane pattern save his apart from and generated use embedded in a sentence and the word was that for optimization for use in C data types in Python code to talk is to function at 1 just now value that wanted and do the same with 2 values some and to reduce the x and wine and and here is already a part of the and the the and the
allows in Europe and also needs to be clear the to see it you see the that whites former variables and so then mean what item and will do is going to optimize but the cold forming this it's sees this variable of register integer 2nd use made operations on that as fast as you cross that grows as close to as far as higher than you of which would cost in the so the sum of the of like in the their argument types looking the variables with this suggests statement from that of the global variable in here would also decisions and then you a function here any of the vertex and simple events in a policy integers the aboriginal you run out of simple problems if you add operation and that's not that interesting and this can be done directly and what the last thing is that don't have to care about this and try to use just the 2 variables and thank for generates efficiency codes for your which don't usually just like thing as a way for for um and helping you understand what's right makes of the courts and that's just same newspaper from so themselves and then segments a which and takes take my called annotated for me and you would think about it and that's what's happened the outputs and the you and tell me about this is what I've seen your code and the gonads from before and during the years of American operations and Nancy in excess object variable as of the end of the operation industrialization in them in the parade Python object operation and down here said on its strategy variables and plus signs here and that that's the proficiency conducted through the code of see what is and then developed as a hint we have to to touch a quadrilateral measure objective again selected units so always have affected that I'm just getting the functions that were different about me and my family can just call them as are and they right result looking at all the functions so reluctant problem different types and functions I have a lot more function types learning because when interacting with the cold is often necessary to them defined C functions directly the army and
certain losses in that thing to have from the functions of the and then we get this out of plane C functions that it's the functions which can also has a ransom to secure called for example which is usually called
on and so forth so that's something the news program called semantic anymore it's not object is and in fact the multitude of and exchanging and at more things from you do not do all this and also know from a Python module you can just write the present caught on and to the right in the head model and you can say that extension of the compilers for me and then the combination like she has the curve and that report time the function and that's called for you compose for you it's function by compartment this is just the just decorated can use that the kind of like to combination in the sense that it's the components in the bottom quartile messages talking at to hold your interest the causal so for each 1 seems that it can use of CEC data types variables new code the use of of an example for using external circuit what I'm doing here is I'm taking the math functions from the same and I'm using them in medical so onto the sine function for example and using the declaration of applied and divide private through the sign of the printing and this is often holds 2nd quadrature looks like so that's some of so called neural some kind of caught some objects being there and you can really makes them
freely if this effect here is just you know this this is that it's all there for you to and this is how trying that
memory location and that's examples taking is not free in society they're just the usual the usual Robertson functions use often people prefer to use the impaired memory allocation instead because then you know the high-dimensional loaded and the standard of with you and there is question that model and so yeah it's it's just interventions you can use information across the nice thing about it is that you can also have some functions around you can of
this department controlled much because all the rest of that hasn't happened and that's 1 of year and taking the mastering
function for example and just assigning intrapartum variable insight and goes OK and that's a C functions on turning object that the rabbit so that's a and and then it's it's part of my my model and so on that's so that means that from college directly from from a book the 2nd take function here and call ready into the assigned function from object refer to certain generated from the bridge the remaining Simon of research again is more involved example but often work and you integration so there's a distinction at runtime
of the form in which the and when doing here is taking a piece of code and is lower court and
CMS has been cold and know some of the relations in order to use the rest of giant and then demonstration and the runtime compiling the code it gets according to court converting lead uh the resolve arguments from dimension you never within this year that you can try finally so this exception based whenever something goes
wrong just rates had exception you I'm not getting to points code you can do that anytime the matter and you creating the runtime goes from this present memory there because you
should remember that with parameters like and it's kind of a lieutenant so just call functions I can call a group called the number 2 and coded it looks a lot of presence except that water quality within 1 codon and positive so interventions and so on it's given a lot of president of matching regulation here but this time which benchmark at that what what kind of fast enough and OK so this is the starting objects in the libraries has had has wonderful integration route of the data structures see the lights on it
makes things a lot easier than if you know if you were writing policies and see what you mean I have been using the procedure for for a number of people you
love it there is something for a lot of
things that you can remove from that so just from kind of more than 1 so this all of
a sudden you have a series of you can use ice assignments you can copy ability were in the loop over so it's of everything you would expect from Python just you know you're going to see destructive and so 1 of the things that user just press with the music of but but less
than potency and that's
us as a repetition of the and it's difficult to use language from an example sentences you from segmentation very
beautiful because you know it's also object-oriented so you've love like Python and from the right wing and so really remains in the 1st pass from from the probability you already on the little just which you can do but I would recommend that and as an example we use the cytosol sparse vector reference from library and they're getting full values in the of couple attributes to because they purchased problem over and then it can indexing near-normal have community with that I can iterate over the vector the interest the past the vector some suppose just mentioned and pass back from the past and eigenvector into and high on the this what does this it just copies of Ventura you know the obvious hiding representation which in this case this is automatic discovery of over the 2nd half of that of that expect this heightened result from the sum use has an argument against the reference books that development and OK finally
finally we have 15 minutes more to show you how it
actually works together let's get right into the cold so 1st we just have a little little helper functions that will around something for for us was missing we get the instance of that I will around the current
team with that I will we return the results using just have a map so to show you that the that we will make this site and are totally compatible with the 1 that you would do in native normal Python but show me you so let me show you the following example so we use the fancy facing that syntax now and so on this is just a very very basic function that will add 1 or something whatever you feed it in so you give the future in it will await for that future it will have results then it will say that some of the filtering the result and just for us we remark that this was done with site and then it will return this result of them facing that 1 adjusted honest 1 obviously but we wanted to be a protein that's why we define it like this showing you that in France we generate 1 and then we add 1 and then we add 1 more this is in there is all that we see printed 1 2 and the output of the industry this society I have the same thing that's now
it's done and purified from the prince and that is that I say here 5 from that so that you see that it's actually promise to fight on them you see that here in this example what they do is I generate number 1 then I use the final function and 1 and then they use the site and find function had 1 and then ironical on the I and from Prince will also see that the the first one was executive and 2nd 1 with sight which we could even the notice so it's totally easy to integrate it's easy to mix you can right side on anything right and 5 and then you can call it 1 from another and it still works next example and just a simple ping-pong game sold will make it as a function of the protein in light of the people who think that will do a similar incident brings 1 to call them the site conversions so
we use I would do the 3rd the Commission decided it's the agreement by 1 function will have a map of coroutines just some simple dictionary that tools the 1st week would have the sigh conversion them we have my commercial section 5 is found with there's this mapping in this condition is just not brings to much so to switch printing on and off based on the show were able we print on if it's sigh from protein and bring things being fight just show you the 2nd 1 and it's easier yes the same thing but now it prints things because it's the Python version because this simple see we just because the right uh quarantine based on the current value and the division by 2 if it's all of them do all the 1 protein if you and then another 1 here we have the result from from the front side environments identified sites but was for we did this talk at all is to see if it actually makes sense to me than if it gives us an advantage in the speed so now we
will find the time will we call
the same thing the 1st it's just the Python version we see that the result is a story forcefully amounts then we call the conversion it's 1 183 3 a mass which is like double faster with no effort at all let me just remind you what is the difference between 2 2 functions cycle by differences and would make it novelist and then just ahead of the 3rd example is we makes it so we use that for all its numbers cited for even number spike we find and the result is somewhere in the middle so with it's actually not that it's actually it's actually worse than the 1 you yeah also see
that it's like so now it's sort of in the middle not now is serious OK now I have to run them
all as sequencing that made it up yeah I know it's fast and that's that's how fast yes yes yes so you see it's still double faster it makes sense if it's all all you need is just the foot per cent per cent 5 0 and you
get the double of that than the of the
is buzz example would have time for that we don't want there are no what the
Bosnian as essential principle so there's kind of children's game changers division and use the same number and if it's visible by 3 you safe is in the middle of our fighters bars and everything about 4 with many states is well so that's what we're doing here in on which are the
book the that's used for him from so
what we get in as a stream of numbers such a binary code numbers so for white for integer on the
network screen and so I'm just I'm getting those going from members of the collection method their values and then if you think of printing and so on it is a bit of overhead of environment and stuff yeah that's a Python implementation of the whole thing and what is considered here the monthly values the using the array object for a happening and then run through the list here but opinion convulsive or at lower it's nothing negative about them the number that you're going into the value and then call that the which will often have on on yeah you're interested in its informal from which you know you just continues running 1 our data and it's really the future of the new world and financial have from the new isn't here it's in it's packed on the loss of the database and data processing using this for him reading and so on and make them a rigorous and taking this course hopping interpreted fundamental type cell and that was present called just a very meaning it's true of 2 functions and so on just 1 pattern version runs that in the compiled on and then that's enough my my data stream you're just kind of fake data stream in the strengths of a long long and into the stream the chance so that it can do and you know what's processing on running down building my data streams well expected for the 1st thing to notice wondering if it wasn't on 1 and so it is so and especially the works and personal versions of and then the user community remains performance comparison between the 2 of them from the 2nd function from the pattern tendency the performance differences the chief because right and so on the 2nd version and 7 ms that rejected by the floor and then depending on the chance I so e and this differ but this usually something sentiment was fostered just by compiling and then the next thing I did was rewrote the whole thing you know more and you'll see usual way and then iterating and running through it just so the data buffer and of sea charitable level here and in the same thing in most you shrivel just in of no bytes students integer reduced possibly during the reign of the Admiral conversion some text let's consider and square and that that but in terms of another you remember 1440 % of faster the present what the overall this a close to 30 times faster for the inversion that there was all that think that it's a good time for questions
no that's right to their interest in learning
and and the problem of a couple of questions you can you hear me on and I would just wondering if you're using this what and what do you mean should is that you don't
want to much about actually doing with it you me in the using site and together with simple of exactly how we're using the same there we did not compile I think the other side of the so there lots of would played with it to make this talk and it works those unity of right through the river and all these important when Americans have thank you yeah
yes still and I and I think the thinking that so so what the Bible books said that I mean if you cycle yeah so bombers and the deviation indexed with only added in and have them read of 5 arms lower on
Portland inside of site on that you were but that's the main major selling point for me and immediately and it actually is so just 1 more question and can you tell me about 9 .
mission and can I use this to cast in enquiries how is that 1 could and so the question was how well number is the way the
side on the extremely well that everyone uses its around for the 2nd what is is and scientific Python arming and we have special syntax inside and allows it to say that this a little bit about her knowledge right and then you can just iterate over advanced through as fast as the process can and yeah that's 1 of the main use cases for some right
parties a single features insights already for production or is it like experimental features like you know be done or something so the in there
is a way support inside on with the with the same time as the height support for it and weight on the work of changes recently which reports about the same level of the article and the funding is spatially influence each other and so on while the patterns of what was in the middle we develop our boards and so we had an impact on how the students and change we didn't so that both of them improves this by by working together I have a little final note that if you have any interesting getting more into detail of sites and all
oral facing various separately you are very welcome to the training set with our tomorrow and the day after tomorrow that will cover these 2 topics really in detail
and thinking about and 1
last question thanks and things sort of uh I was just wondering if it's i can take advantage of the bike and 3 type In order to comply that's about the topic we actually start discussed that
we have uh difficult times and we intention of the title of the patterns it's not really something that's meant for static combination doesn't really help us so it's it's meant for type checking for annotating a few ideas from making them machine understandable basically but it does not help in combination and that's where we are currently making use of you think you may have spent the last class