A few days ago, I gave a talk at the most recent Web Tech Talk meetup hosted by Samsung. The title is Supersonic JavaScript (forgive my little marketing stunt there) and the topic is on changing the way we think about optimizing JavaScript code.
None of the tricks presented there will make your code break the sound barrier.
Nevertheless, some of them can serve as the food for thought to provoke
our brain to look at the problem in a few different ways. If you want
to follow along, check or download the slide deck (before you ask: it was not video recorded).
I discussed four different ideas during the talk.
Short Function. Back in the old days, function calls
were expensive. These days, modern JavaScript engines are smart enough
and can do self-optimization. For some details on this optimization,
read my previous blog post Automatic Inlining in JavaScript Engines and Lazy Parsing in JavaScript Engines. There is no need to outsmart the engine and therefore stick with a concise and readable code.
Fixed Object Shape. This swings in the other
direction. How can we help the engine so that it can take the fast path
most of the time? For more information, refer to my blog post JavaScript object structure: speed matters.
Profile Guided. Related to the previous point, can
we control our own code so that it takes the fast path whenever possible
but will still fall back to the slow path everynow and then? What we
need is a set of representative data for the benchmark and the profile
can be used to tweak the implementation. More details are available in
my two other blog posts Profile Guided JavaScript Optimization and Determining Objects in a Set.
Garbage Handling. Producing a lot of object often places a burden on the garbage collector. As an illustration, check out a short video from Jake Archibald describing the situation of using +new Date.
There is no silver bullet to any performance problem. However, like I already mentioned in my Performance Calendar’s article JavaScript Performance Analysis: Keeping the Big Picture,
it is important to keep in mind: are we always seeing the big picture
or are we trapped into optimizing to the local extreme only?
Now, where’s that TOPGUN application form again…
About Metro UI Theme
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit...





0 comments:
Post a Comment