Profiling PHP applications

Video in TIB AV-Portal: Profiling PHP applications

Formal Metadata

Profiling PHP applications
Alternative Title
Php And Friends - Profiling php applications
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date
Production Year

Content Metadata

Subject Area
Word Theorem Cartesian coordinate system
Slide rule Goodness of fit Software Variety (linguistics) Multiplication sign Quicksort Freeware
Peer-to-peer Process (computing) Feedback Sound effect
Web page Category of being Dependent and independent variables Observational study Structural load Average Multiplication sign Web page Speech synthesis Insertion loss Musical ensemble
Web page Home page Group action Beat (acoustics) Term (mathematics) Measurement 2 (number)
Scripting language Module (mathematics) Web page Game controller Dependent and independent variables Service (economics) Dependent and independent variables Structural load Code Bit Database Line (geometry) Cartesian coordinate system Discrete element method Different (Kate Ryan album) Speech synthesis Point cloud Traffic reporting Error message Form (programming)
Game controller Web crawler Link (knot theory) Multiplication sign Execution unit Content (media) Client (computing) Web browser Cartesian coordinate system System call Personal digital assistant Internetworking Point cloud Summierbarkeit Family
Web page Medical imaging Cross-site scripting Group action Server (computing) Cellular automaton Family Window 2 (number)
Group action Multiplication sign Sound effect Metric system Measurement Number
Protein folding Goodness of fit Befehlsprozessor Semiconductor memory Internetworking Closed set Virtual machine Web browser Cartesian coordinate system Connected space Neuroinformatik
Laptop Dialect Physical law Mereology Revision control Causality Goodness of fit Graphical user interface Internetworking Bit rate Internetworking Core dump Order (biology) Internet Explorer Figurate number Musical ensemble
Point (geometry) Web page Trail Group action Service (economics) Observational study Link (knot theory) Multiplication sign Computer-generated imagery Execution unit Online help Web browser Parameter (computer programming) Client (computing) Event horizon Wave packet Medical imaging Exclusive or Semiconductor memory Information Traffic reporting Information security Computing platform Stability theory Scripting language Pairwise comparison Enterprise architecture Dependent and independent variables Graph (mathematics) Server (computing) Physical law Graph (mathematics) Parameter (computer programming) Bit Database Cartesian coordinate system Connected space Befehlsprozessor Process (computing) Angle Vector space Hash function Internet service provider Right angle Quicksort Family Library (computing)
Web page Demon Digital filter Graph (mathematics) Computer file Information Block (periodic table) Multiplication sign Computer-generated imagery Web page Parameter (computer programming) Regulärer Ausdruck <Textverarbeitung> Cartesian coordinate system Field (computer science) Connected space Function (mathematics) Pattern language output Pattern language output Namespace
Web page Demon Group action Open source Real number Multiplication sign View (database) Source code Product (business) Causality Artistic rendering Software testing Area Dependent and independent variables Cellular automaton Projective plane Staff (military) Database Cartesian coordinate system Uniform resource locator Arithmetic mean Network topology Text editor Musical ensemble Metric system Freeware
Web page Scripting language State of matter Multiplication sign Characteristic polynomial Database Web browser Calculus Login Power (physics) Estimator Different (Kate Ryan album) Query language
Dataflow Digital filter Structural load Dependent and independent variables Chemical equation Connectivity (graph theory) Source code Client (computing) Price index Cartesian coordinate system Rule of inference Medical imaging Function (mathematics) Formal grammar Pattern language Summierbarkeit output Metric system Proxy server Computer architecture Thumbnail
Web page Service (economics) Multiplication sign Computer-generated imagery Parameter (computer programming) Information Metric system 2 (number)
Functional (mathematics) Code Software developer View (database) Virtual machine Database Cartesian coordinate system System call Measurement Arithmetic mean Profil (magazine) Semiconductor memory Order (biology) Heuristic Metric system
Point (geometry) Web page Curve Addition Functional (mathematics) Group action Information Multiplication sign Computer file Source code Electronic mailing list Bit Database Discrete element method System call Product (business) Subset Profil (magazine) Query language MiniDisc Musical ensemble Extension (kinesiology) Spacetime Social class
Point (geometry) Web page Functional (mathematics) Game controller Greatest element State of matter View (database) Multiplication sign Execution unit Principle of maximum entropy Function (mathematics) Stack (abstract data type) Tracing (software) Event horizon Profil (magazine) Internetworking Semiconductor memory Moving average Energy level Software framework Form (programming) Exception handling Scripting language Graph (mathematics) Information Witt algebra Software developer Physical law Moment (mathematics) Menu (computing) Database Extreme programming Variable (mathematics) Cartesian coordinate system System call Leak Connected space
Web page Graph (mathematics) User interface Information Assembly language Semiconductor memory Image resolution Connectivity (graph theory) Multiplication sign Moment (mathematics) Software testing Exception handling
Information Multiplication sign Connectivity (graph theory) Bit Database Cartesian coordinate system Subset Product (business) Semiconductor memory Network topology Endliche Modelltheorie Computer-assisted translation Metric system Row (database)
Information Profil (magazine) Order (biology) Source code Sampling (statistics) Speech synthesis Bit Cartesian coordinate system Rule of inference Computing platform Form (programming) Spacetime
Randomization Sine Goodness of fit Content (media) Complete metric space Discrete element method
Content delivery network Web page Service (economics) Computer file Patch (Unix) Source code Set (mathematics) Web browser Repeating decimal Web syndication Revision control Medical imaging Fluid statics Frequency Different (Kate Ryan album) Subject indexing Software testing Proxy server Content (media) Instance (computer science) Benchmark Subject indexing Cache (computing) Uniform resource locator Process (computing) Software Internet service provider Quicksort
Logical constant Web page Presentation of a group Link (knot theory) Multiplication sign Computer-generated imagery Execution unit 1 (number) Web browser Theory Web 2.0 Revision control Direct numerical simulation Medical imaging Fluid statics Mathematics Operator (mathematics) Extension (kinesiology) Data compression Task (computing) Domain name Addition Dependent and independent variables Link (knot theory) Bending Hyperlink Extreme programming Price index Jenkins CI Connected space Graphical user interface Telecommunication Cube Order (biology) Direct numerical simulation Speech synthesis Website Family Spacetime
Email Dynamical system Structural load State of matter Multiplication sign Sheaf (mathematics) Neuroinformatik Facebook Fluid statics Different (Kate Ryan album) Software framework Volumenvisualisierung Extension (kinesiology) Scripting language Email Structural load Data storage device Connected space Category of being Arithmetic mean Process (computing) Ring (mathematics) Quantum Website Summierbarkeit Right angle Annihilator (ring theory) Web page Point (geometry) Functional (mathematics) Divisor Link (knot theory) Connectivity (graph theory) Patch (Unix) Flash memory Electronic mailing list Web browser Content (media) Discrete element method Cache (computing) Causality Profil (magazine) Dependent and independent variables Forcing (mathematics) Polygon Content (media) Database Cartesian coordinate system System call Cache (computing) Logic Function (mathematics) Free variables and bound variables Wireless LAN Local ring Library (computing)
Web page Scripting language Decision theory Flash memory Sheaf (mathematics) Water vapor Menu (computing) Content (media) Neuroinformatik Facebook Estimator Goodness of fit Velocity Volumenvisualisierung Scripting language Content (media) Menu (computing) Client (computing) Line (geometry) Connected space output Right angle Figurate number Freeware Family
and I so good morning 1 and thanks to Laura and win for having me here thanks for coming to this talk in the theorem which is called my side as well what can I do and profiling PHP applications so this talk will be a bald bald he was that I mean this
speed of the whether the kitchen how you
application it's going to be fast and also maintained to be fast so we'll talk about why speed actually matters I can measure it but you at you know how fast or slow you are and how you can find out where the problems are how you can fix them so that you actually get better is before some of that a few words about me I work at a company called research paper it's a social
network of scientists and researchers over very traditional baseball and it's all about so
researchers sorry sharing the publications and data and everything was other researchers for free and we
have like fewer varieties of company and sometimes people come visit
us things we are always looking for new
people so you were interested in working in very good interesting sort of talk to me half the words in general if you have any question during the
talk just like raise your hands and interrupt me and we can handle them and also we have plenty of time for questions in the end up the slides will be on speaker that
uploaded and they also be lot in joined way also can have the feedback on the ports and all other processing in this room at this conference and this helps greatly all speakers so that they can prove the talk that also helps Lauren room to organize a peer-to-peer when the world's you actually interested in and and and it also helps you because you get better content next year when it comes the so sweet why should you actually
care about it so much because it is really
important there but In
seriousness their last couple of years there was lots of research done on how the speed and performance of revocation effects use an engagement of users and in the end also money made with the public and the results of
all these studies were that every millisecond counts and this is not a typo for Miss spoken i've speaking of music it's not sects all of this there for
example there were studies done where companies that OK we're just gonna make our side 1 2nd slow you would say OK 1 2nd the average like response human beings of flexor MS also so 1 2nd it's not that much of it's that's the 1 2nd in delay in page rendering time and everything comes out in the study then led to 7 per cent loss convergence we describe a lot 11 per cent fewer pages and 16 per cent of a decrease in consumer so and customer satisfaction and these customers are you that I'm not so certain what you don't come back they just go to the course competitor speaking in
general terms for example if you try that make the home page for MS only for a 2nd slower for a certain user group of users they just wilderness sleep for some years for many things and that actually to 9 per cent decrease in traffic and this target you and this was also were not coming back say was moved or they had so I think their homepage where they could download muzzle Firefox they spend that up at some point and for some reason measure make it 2 . 2 seconds faster that's quite a lot but you would expect we would not expect that this will and then lead into 16 million more dollars a pop In this so Speed is really important but what is the
revocation actually page beat of course the 1st
thing that get influenced by itself and this credit not quite nice because it's almost completely under your control and usually it's a request agency reports coming and then you have your big PHP application for about kind of other occasion and then in the end you send a response alt we just HTML Jason depends on what you do and when you're about OK usually no aggregation is a bit more complicated than just 1 Apache speech on indirect so a speech the you may have met several so as an open some form of them also you Beersheba cages probably only 1 script with 50 lines of code but a bit more complex so we have different controllers different services different layers in the different modules that all can influence and make more complicated long an error occurs on this so that you take and then usually it's just only an application in PHP that you're doing it but you also
have a database you're talking to some other agency piece serves as movement maybe also some API is that somewhere in the Cloud like the Facebook API also you're talking to catches to foster someone all these contribute to a page potentially getting slow so you have to think about that and measure of of
unfortunately there is more the on going after some our applications running on and that is completely under control in most cases but you also have this cloud thing called the
Internet so once you actually ran out summation or another some days in and send it back to your client it has to be transported somewhere over the internet to the browser of a kind also we have stuff like units got SSL handshakes all contribute to low times of the year this is that because the clicks on a link and then stuff happens and then you get something back once the content of which for
example is that your customers at the client side and then there's something like call the browser that can also greatly influenced speed there are very past brawls notice like new crawl new Firefox II 11 whatever that my brother very very fast but they also ponds of people who use literacy problems so like I 6 7 8 or even worse then the common then the brother the
brother surpassing reached in L has to render it has to fetch the as applied to the HTML disaffection execute
JavaScript all this also leads for the use of you you you you those to actually perceive side as slower of the images if you look at this whole thing in total you see that the anatomy of of aggregation is usually that only a very short percentage of the speed the users perceives this action due to the back into the cell having to do some competition work most of the stuff is actually transport here over the wire pitch in all those images gigabytes of season just that you have on your page and executing so what happens when it is really important because it is so it takes 5 seconds through something use probably already covered goes a window all went somewhere else but the rest as well so if you
wanna make all said past the 1st step we have to take is we have to actually measure and
how the status quo as who is doing this performance measurement that you have metrics
how long you use I actually all of Europe take this may be like this heritage hopefully after this talk next week feeding to more people going to start measuring action the low times if you stop that you'll see that it's really really
painful at 1st the numbers used because you have the effect that on your
machine ever since I have a good Internet connection your close probably to you so was the sending and you have a Paul fold new machine with lots of Matt was of memory good CPU uh modern browsers harassing as then unfortunate is
there are it was pretty all computers from was or was was 1 there are people using you
owe application all the phones especially if you some of you coming from Africa Europe people that have just small feature phones all very local smartphones and they're using the problem that's because they don't have anything else but a lot of the the extra use quite all
brawlers especially China has the like of 10 per cent 20 per cent I 6 rate so the figures are from I think about a year ago so I it may be but no of internist probably due to a core of pirated music versions of a law to upgrade and they don't know why the owners of fire for example where they don't have also the internet speed in various regions
of the world is completely different another America Europe you have pretty good latencies in parts of Asia so if you go to Africa or South America that may be completely different so in order to actually see how and measure how to we revocation is for users because it's actually count not hold you and your laptop next to us was the performance of our users seeing them you have to measure at the user side there are several solutions already for that you can just use it and pay for it for example there's lost I was doing was
offering that basically and bit of jobless and then a member of money and then you get has cross of it this report also
1 host obtuse platforms so solution and study also concluded itself it's not that hard because most modern browsers all already API so that 2 that
you can in just could actually get all the data you need all of that there's navigation timing API restaurant for a couple years already and all more all browsers support them and they basically can get all the time from the from then the user actually clicked on a link to all SS L and shakes all units look up to actually establishing a TCP connection sending the request to use of a home on the euro so that you talk to generate the response when the 1st byte was received at the client to all the dumb processing it does all the fetching of something on really the on-load event was so if you have an older brother don't support was API there are libraries all there for example or boomerang from comparative but do this by help he was doing that for all of problems by just inverting time uh just kind of the right point in duration of but for more Ambrosius's same but which is not supported by all brothers yet is a resource timing API it's really bad navigation time API but you just get all the data all similar resources that you revocation inspections by Altsys as requests image requests ages requests and so and there you also get all the data when request started they tell what redirects without etc. and also among each the and if you also takes the stability can it isn't a very nice graphs so we have all this time now in your job in Europe that obligation in the kind some we have to get back to yourself because you have to want to measure it and name it in the enterprise the way all this whole federal service providers are doing it and the only way to get there is to just send the tracking with 1st all this data vectors so we could look like something like checking off your side popcorn then maybe now identify on 1 page you are and then you can send all the time answers to this because if you are a bit more about security known 1 feels actually hacking these requests and script kiddies finding that out you can create hashes about that to make it a bit more secure or less prone to it from around this but from our experience is no way that was a new it's fine if they are like crazy values just so we have this request coming in some way of course this is just a tracking interested don't want to take like high from MS also it for the beam this request to complete by data summit with database so my experience it was solution is just to have patchy and and XOR listen to that on this post men and the just a transceiver and the response it should be 200 and then you can write all this data this parametres into the axis law which overlap so that anyways and then have locked even or something going so is X a smoke and writing the data actually to Europe tracking group grafting they can't good to hear what solution that is for example lock session not such as this small that doesn't take a lot of CPU and memory you can just in sort of some of our and is able to basically chance get data in some way transform it and put data somewhere out and there's lots of things that you can configure to actually tell them back together data from how to transform it and where to put it so it was that I would look like you have yeah application in the realm of some JavaScript that gets all the training parameters over the guys from months was so the tracking request or more checking so was just about so uh this just prices recruitment access log any of rock session this enormous axis log which then centered on well there are lots of solution to get actually checking daytime graph at a nice 1 and the flexible as called graphite that we're using and you can just put timers and counters in there and get nice graphs and can correlate all the kinds of graphs with each other have lots of not master can apply to it to really find out and get the data in the graphs like you need to the so it's just some
impressions of so search would then
just tails axis lock and send the data to graphite and this that's the thing is just a demon in there that makes graphite that scaling that somebody so confirmation license very easy in blocks you have an input which is basically a nexus file you'll have a filter which says OK I have my pattern of my axis looks so I'm just having a regular expression a wide input for example the page information in this page field and the connection times connect-time field and so on and then I have no put there's just send all this data to reference for example might connect time here and what you get a nice graph of additionally what you also care so this is actually then timings of what you do users of assuming a staged it was really awesome what a credible additionally is use something
like a web page there's also a free open-source tool you can use that holds the page test thought or I hope if not most called just what it is also a project done by Google and you can just don't ensued on any kind of source you like so we can bias the cheap also apart here somewhere in a jar and in South America and everywhere else and just run the demon there and then put it has some new URLs and you get page metrics that was a very detailed view on how long each talk with screenshots so also a very nice product of course is not real user timings and the use of metrics that you get but is also a nice indication of whole your webpage they along lot that it sticks the so so that you get complete time can be more
because actually what happens when a cell uh we had intended very much you of course have the back and response start time from the navigation timing API but maybe you want to get into more details so it's a good thing to don't stop at that and also measure the stuff was in your future applications for example how long you all database trees take in your pages in dust editor staff Micah time on top and before that end of my retirement sent the data the reference well same as a should be cause you're doing some to some other so or the amount of time Europe's ubicación takes action to render data from an area where all the data in intuition Elvis all those escaping and so on and templating you're doing and catch times and so there's lots of things you can measure their and sometimes also depending on your application that can help you see we find out what you also can all these make all these metrics more fine-grained of course is kind of interesting to say OK on my average slow-time all pages on my application is filed by farmers also but maybe you have some pages that are very very fast and very but we also have some pages over solo just the mean time doesn't if you plot so it's good to make this much more fine-grained for example
by pages course maybe also by
browsers because different roles can usually different performance characteristics especially considering dollar script agencies as maybe also by country it could be interesting to see how
is the no time of my vacation in China compared to the states probably very different and power so time
was compared to a slot in or not all users because many prominent or to the use of more important than calculus How is maybe little time for heavy users
but our estimates lots of data in there maybe there exist especially slow but there are also special important but because they're very active I could add to slow query logs from my databases
to that and again this is over there at I could add to locks off my low balance out at 1st especially 5 resource-oriented architecture usually have low balances of all places like I have maybe motels of formal
and then i've summation peaceful reasons so that I'm calling from application also flow balances in front of them if you use image a proxy you
can just take a whole lot of h a proximal or you no pencil locks values you have all these things and then also just pass all the details and old and centered to graphite as well that ever basically and the rule of thumb there is that every kind of lock 1 of the components this producing is a potential good source for getting metrics all of that that you can deduct performance indications from so in the end
you have all kinds of things on services sending data actually will Prof can't the and then if you have all the shiny metrics you should look at them and define the final
goal what you want to achieve how fast you want to get and then if I line and define the steps the what you want so
you know you are probably not as fast as you salt to like when we started this whole performance in probably a year ago we had a really really bad times unfortunately some pages row up to 6 seconds they can times also sometimes a 1 2nd so it was really bad and what do then have to somehow find out that the problem
actually it's in order to fix and that comes profile profiling means I have all these metrics of Tommy mistakes heuristic occurrence if you have more fine-grained um measurements like for example you measured the amount of database calls and ask for a song NATO and maybe have a better idea already but if 1 is needed if you the need to really detailed view and what your application is doing then you have to profile there are several tools all for PhD on the 1st that comes to mind is xt buck about written by Derek um is the really great tool to find out locally under development machine what's happening there so it doesn't only have the possibility to set breakpoints and then skip walks through the code was executing it also the possibility to create a profile of the application received so all function
calls that were done how often they were done how much memory their consumed and how long they took so
if you select survivors just apical extension you can 7 I setting profile enabled to on so that every time you have this curve Almeida profile so as you well it just on the way the profile you should not wouldn't every class because then you probably run out of the square spaces quickly they take a lot of space and it disk and then you can use a tool like for example whether grind on um
and cash Greiner something to have a look at this big profiling and then these tools could fuel list of all functions the recalled and here it's very small you with all important and following the Tobin you can also click through these functions and see OK this function to private music what will actually did this function call other functions and this can be very very useful to think of as a set use of locally on under definition only because as soon as it's not is activated and so all installed even it has a performance it hits performs a mixed performance worse so if you should never in so extreme out on production it if you'll have something that you can't really see your definitions because don't have enough data all you really don't know what how the user actually got to this point by the page was so slow there's a tool called called XH prof but he also contains on production actions it is just installed it does not make performs worse than anything else this just as is on there but again not activated for a small subset of precursor watch these requests will be a tiny bit slower like maybe 5 per cent or so and but for like 1 per cent 0 . 1 per cent of this problem additional benefit of getting this profiling data source end then as well back as a sexy about there's also a tool that gives you all the information and uh the profits of written into a database my school for example and then have X H query where you can get this nice graphs although
there were whole on everything to attend to all this function stack traces again so
basically the same output as x is h we also have the reflected and the call graph you can run out of the status of hotspots are what is called often and what calls what and also has the possibility because it's on a database to give historic data to see did I get the slowest this profiles all fast can maybe see all profits of 1 session all profiles of 1 page if memory is 0 specific problems as a tool called pitch mem informed that basically uh you can just call function at any point in a script and this and it's your memory profile what variables are actually are located at the moment how much memory they consume and you may see memory leaks and about memory extreme it who is using a framework like Symphony tools and framework tool for OK most of you most of these frameworks a symphony or allowable wasn't framework to off the buck toolbox that you see in development as symphony in it's here at the bottom the the French you have some basic data there are whole long really crosstalk here it's form a 2nd Tom memory consumed and you also can walk in stuff like doctrinally you see the kind of Crary says Gurkhas who did so you see exceptions that are happening and you can hope your caching layer and then see question questions this also gives you a nice time view was we are actually on a higher level of what control laws were executed along each control talk and more you see Rudy information how many units were sent I and this can also be a very useful tool in development to see how what is and so I urge you if you have problems and note taken looking to and then what people some people don't know is that you also easily can expenses tools especially was a symphony and you also can use easily where was maybe like carbon and how they offer was using so full symphony was it extending it might I mean there's probably lots of things in your application that could be useful to display their it could be for example that you are talking to rabbit and sending events and so you may want to debug this as well and not to the home states or any kind of of things and let's see if my internet connection holes American you show you the
example of how we extended this tool bar only
the of resolution
is a bit small but aren't you can see the True Blood on here so we have the user like for example no time and memory consumption information about the current user uh and how we look down here on all posters carries all moment occurs at all it should appear across following the to all requests to ah catch we don't time them anymore because actually everything was 1 the 1 millisecond so it's not that useful but they have to introgression press button and of course you can also click on everything we can see the request incurs happening see more details about them also ever what along the took all the time if they get for example if they were sent to Mosul slaves over and we have information about all the components that are but it and or page so how we build pages would be not all other popular very small components on the page and reassemble together dynamically if needed and here is a nice graph of all these components on page and it shows 2 of them what took how long and why it took that long and varied was called and this is also very useful information fall all specific application and other than that yeah yeah exceptions and how they were none no but also very interesting is what experiments the user was cut is currently running we are doing lots of A B testing and these B tests also can influence performance greatly so was that he look for example this is now in this follow are experiments sold we may get my information why he was low compared to other users of that it was
for yeah we sorry the screenshots
here we also extended the time and you a bit was more metrics for all applications so we also using Symphony stocks and the is it using some of the components and then also some the nice thing model also can do with this thing of course profiling all that takes also a bit of time on a bit of memory because you have to remember all this good trees all the cats repressed never him with that you're doing but you can also use it in production for a subset of records of course you should not shoulders support well then but you can still collect all the data and then dump it somewhere safe it somewhere in the database the this saving in a database you should tools maybe a shot on hand so that the user of the 15 you ago so he was already finished and does not faithful for like these 20 ms to fried this whole week collection of data but this girl is also very useful for getting more information on a few occasions of course if you
want to not put on your own and pay for something there are already other profiling tools available for source of solutions for example my principle of rule have a profile this space on X H and they extended at all this was some of it and then the the very nice formed and that shows you also all kind of bit information or that you can get all those victories and that this black fire forms and select some critical symphony that this may the same concept of just on a visual and a bit more tighter Symphony there's also no relic which also works great the speech he it regardless if you say OK I'm just going to go for the sample on my own or from using such also the platform everything is fine as long as you do so now you know why it's slow when very slow and what you have to change may be in order to make it faster but now we have to fix the
problems and unfortunate something I can't really have have you is a very specific sorting user-specific to applications the I just
can you tell you 1 thing is always
important keep up to date about performance there's lots of content all their lots of articles of their lots of best practices and his best practices change also what time as browsable especially this fund and performance so there is a 1 goods side like is perfect planet which that most of great articles also from people working for on performance and pasted who will and and at sin small companies so it's 1st is always good to have this on your future euro some with a couple of the 15 minutes less sold I can maybe still help you because you performance problems because these are just a collection of random hints what you can do to make a performance of the wreckage but is by no means complete and some stuff may not apply to you application and ask for a lot of things missing and there are few obvious
things you should think about for example in a is that
so that reduces greatly the amount of things and data that goes all the buyer for your users also it could would be good to enable use it in your own network so if you acquire knowledge service somewhere and this is transporting I don't know 5 Hurtubise of data or 1 megabyte of data it is that it's also less network traffic in on it use CDN for static files like images you don't stop a city and is basically a set of so somewhere that you can do by or rent that are located all over the world very new to you Users and then they just acidic as for you so the recurs does not therefore justify our which doesn't go to use undirected goes to the and this again consistent uh or has it already doesn't have added patches it from use of our consciousness it and then suffered so you don't have much less hits notice of all these father that never change anyways also not that much or just was every other deployment also and and this sort of a faster usually because there are no closer to constant location also it's very abide by so that you'll benchmark the CDN service regularly and maybe also test difference again so the integer other because depending on the region some steer and of way better than others from more experience for example a lot of city and source or or providers are not very good in Asia and South America so that these are important markets for you to look into look at your data is in instances look gets slow curious because this is usually a very easy thing to do just creating an index and it makes use of your page much faster minify your job was to me devices as CocoNet job to receive this together this is not new research into anymore by the way more send correct caching had asked if you have static content somewhere syndication had 0 so that it gets cashed in the browser or by proxies use not cash just activated in pitch period works great up also update to the newest PHP version because is also this not better performance think about caching data like in Memcached for example or in a perceived upgrade young and there are
some more things you should lead into for example activate it to all
speedy in your web at that so it should be 2 is the newest version is like experiment from will that is also supported by Muslims and and it makes Web performance especially if you of traffic over here there's much faster usually you can just activated so the agent was already supported by Chrome Firefox Opera are things so sorry and latest you so you should and theory all modern brothers or a support that and there is it should you do them any change will be a whole other talk the main thing is it's more efficient this communications and connections so basically what you don't need any more rization to is any kind of domain chanting the main charting means that you have fewer images acetic acids and have the maybe all of the static ones document at constant of 2 of the domain rumors that extreme but you may not come in order for the brother to fetch all these resources among peril because in H T 1 brother could only open 8 connections at most pros prettily of repulsed In addition to you don't have this imitation it really was assessed connections minimize another redirects but you have he interacts takes time it's open it is the connection is sending a Rico the sending response uh is potentially enhances the handshake don't do redirects if you don't need to check image compression there are tools of their just go all over images and recompute that are static then recompress them and make them much smaller this is like a present work and it's good to just do it maybe once a week or so when you can maybe on your Jenkins CI so in compress your HTML was that I mean you can just remove most of the white spaces there are also tools for the like past for your efforts immigrant tasks or and suggest that and this the this is small operation doesn't take much time to do it and it saves to bend check tools like why slow and page speech these are just browser extensions and they give you also would indications of what maybe not ideal in a set if you have other domains you stuff like units it's just for example of acetic domain very real images from the assessed from just add this to you had of relational and then the browser will start doing the DNS look before it actually encompass link to this image of 2 this is as far sorry coupled MS you can safely so site move as much logic as possible to as increments workers was rabbit and cube you man or something else what you don't have to do it synchronously next sending in this for example or doing cleanups any kind of things don't do it make just do stuff necessary to serve curation nowadays and there's more crazy
stuff there are reverse proxy caches like vanish for
example where you can say OK so I've said the content that is so far PHP application that is usually not exploring that often so I just added Polish cash from of that and it catches the whole a tumor response and then sums way you you but the marketing pitch p animal and also support something like ECH side includes that means if you have pages that are partly static and partly dynamic you can just catch the Polish static stuff and poly dynamic stubs and fetch all the time and you for example the user applications and everything is kind of steady but for some reason this about me in this kind of dynamic so in a back and what you're than learning out you're skipping this the about me section you and include an exercise include well where the varnish can later on patches about the components and then send all of the caching header but this good for this property which so large would get this profile page see that should include the the caching um it would catch this whole thing then resolve include those going to the annihilation cross we make and and this picture mucus also so summation I content it will replace the edge would with these session content and also respect because she had a for this request and maybe law in insane OK and then our next request to the side it would already have all this can only do the request for this and also works the other way around note content that slower as an Crossley or continent is below the fold on your browser that means instead of doing everything in the 1st 1st maybe doing Chris later on to load con that is not visible for use yet or just lower than the user's falls down or is about to score or if it's like a recommendation budget on the right hand side just from them it is about the user does not notice of all good means if you have this about me component is somewhat below the fold instead of loading directly just random maybe a placeholder and then render some JavaScript data on on some on load all on call on moles and or something that both of component and replaces a continent yeah so if you're doing not of edges successful some stuff for you can also just catch them in the browser by saving the continent local storages probably not good for everything but for some things it may be viable is that would during the request that is just saved in JavaScript called scope or move on with you repressed in flash content especially as possible on your so applications a lot of frameworks hide this from you would pitch is in PHP is actually not that you and get a request compute everything computering response and then sent to the kind you can flush content at any time while the agent the request still running that means the time to 1st bite of the user so the time the user reasons the 1st bite is much much lower it also means you can the brawler can already start wondering stuff while you're still fetching data from a database Nick me logic that you don't need to to shut down handles maybe if not this so do this as across that could be for example saving profiling data or but you just say OK and review this ring the shutdown functions and then at some point of sale OK parties are conditionally Crest or just recruits ends and then the response is sent the kind the connection is closed but you PHP script is the running and all of a sudden and execute think about using stuff like promises of future this possible in PHP for it is the cause for example this library uh cold the the in the I can't remember the name of the specular Facebook members of others also react pitch is that you can use the you can say OK I'm going to do this age appear Chris just sent it and then I'm going do something else like automobile research something there and then at some of the state up and blocking and then only then I'm waiting for the rest of which in most cases because only finished similar to the speaker factor 6 is also upholsterers extensions course also and and connect the client-side use push state of think about using forces push state means that if you have a link you can find jobs component then instead of going to the link uh and rendering the full page again you just mentioned the difference maybe just like the content in the site and then you're replacing this quantum that you're getting with what's on inside so loading much much less and was pushed state you can just then change to well in the browser so less all the wireless computing and node application in what your attention and you can also make this a more crazy was a technique called pick pi if you have a site like this
would have had a maybe left column right column may had as most important thing then you wanna at the left column right column and you have been water in there that means you don't want edges sequester fetch that because it would be maybe too slows additional connection you can also may not want to flush everything all you cannot do it what you can do is you compute everything the Computer menu had because it's most important and to place all of the left column right column flash at all to the summer the some already registered you have your whole ational already that recently who you also flush some JavaScript to already defined stuff at the menu and you and then you can actually start computing the left column and in the end Reynolds and also the best of places and content this is based on and same thing for right column and then flashes of himself this is basically the way Facebook estimate and why they appear quite fast in a very useful because they're very complex pages they just say OK in 1 http requests the prioritizing work with them and their politics was injured so remember with all that speed is really important and you should measure it and take then thank you were
few yeah and other required for lose 4 questions also with a new and yes and the question was could ethics WordPress where 1 of the middle where I come to them references I have not idea the 1st thing that of worst that work has ever for some reason I never got to it um other really so slow that the line OK yet but this would be a good thing um I'm not yeah if you have a visitor 1 input of bunch in front of it then you're not about this anymore but other than that there's a company behind WordPress maybe hopefully there we can fix something the 1 that yes the which so how can I and the question was where the user has a very old brawls on on JavaScript very if you care about this is a this is a business decision so for us it's a jealous took this mandatory so we have an old script tag and 1 the user that side will not work load of because we don't see any reason to do it the only thing is that that if you you can still read constant velocity so if you chose to be activated you have you cannot log in what you have a lot of work they can read pond and that the publication of the old problems and we are looking at the figures uh so many users was all brawls we have we add Laureano support in I E 6 and 7 and Firefox 3 and we also have a warning you is I think we have 1 for notifying agents but also for like 7 all of roles we have a warning that they should operate and I sentence you should upgrade because it's more secure as much faster it's for free and this section or reason not to Edwin rights maybe have this could be a reason the any other questions 1 even think you're much and brother of problems