Skip to main content

JS Performance

How DRY impacts JavaScript performance // Faster JavaScript execution for the lazy developer presentation by: Mathias Bynens



http://speakerdeck.com/u/mathiasbynens/p/faster-javascript-execution-for-the-lazy-developer

In my opinion most important is to write maintainable code and optimize only what needs to be optimized.
http://speakerdeck.com/u/mathiasbynens/p/faster-javascript-execution-for-the-lazy-developer?slide=49

Comments

  1. Ciekawe podejście.

    Szczególnie interesujące wydaje się wywoływanie switcha jako obiektu.

    Będę musiał sprawdzić, o ile jest to szybsze od zwykłego switcha.

    Jeśli jednak chodzi o rozwiązania w stylu
    $('.aaa').length zamiast $().size()

    to mam mieszane uczucia. Nie sądzę, aby przyspieszenie było aż tak wielkie. Natomiast ryzyko tego, że kiedyś cokolwiek się zmieni i to size() będzie czymś więcej niż tylko prostym zwróceniem length wydaje mi się wystarczająco duże (nie mówię akurat, że nagle kolekcje w JS stracą takie pole, ale ogóle jestem zdania, że lepiej jest wywoływać metodę, niż pole wprost).

    ReplyDelete
  2. Ja bym nie przesadzał jeśli chodzi o optymalizację. Kod powinien być po pierwsze łatwy w utrzymaniu.
    Jeśli chodzi jednak o .length zamiast .size() to w przypadkach gdy jakaś funkcja jest wywoływana bardzo często, powiedzmy mainloop gry, czy w setInterval itd. może to mieć znaczenie.

    Powyższe w większości stosował bym tam gdzie jest konieczne choć trzeba przyznać, że niektóre z nich są tak oczywiste, że nie ma powodu by nie stosować za każdym razem :)

    var utilFun = lib.ro.util.superFun;
    utilFun(1);
    utilFun(2);
    utilFun(3);
    utilFun(4);

    będzie bardziej czytelne i szybsze niż wersja dłuższa.
    PS. (No chyba że to IE9? :)

    ReplyDelete

Post a Comment

Comments:

Popular posts from this blog

How to simulate slow connection (developer proxy in Node.js)

Update: If you use Chrome then you can use "Throttling" so simulate slow network for all your assets. This should be easier than proxy.


Toggle device modeChoose Network type.Refresh the page




https://developer.chrome.com/devtools/docs/device-mode 



Proxy:



For some time I wanted to use some proxy for development and testing of eg. slow internet connection, but it was hard to find something useful and free. I know there is Charles but buy it to use it at most one in a month is not for me.

I started thinking about Node.js, maybe I can write proxy for me? But fortunately I found one.

https://github.com/nodejitsu/node-http-proxy

With this module I can write really short code to create slow server:


var http = require('http'), httpProxy = require('http-proxy'); httpProxy.createServer(function (req, res, proxy) { var buffer = httpProxy.buffer(req); setTimeout(function () { proxy.proxyRequest(req, res, { host: 'localhost', port: 8080, …

How to use NPM packages from private repositories on bitbucket

Using Node.js you want to use NPM packages for reusable parts of the apps you create, that is a common sense. At the same time not everything makes sense as a public module unfortunately. Right now we are using Bitbucket at work for private repositories but there is a problem. How to use them as NPM modules? We do not want to publish them to the public npmjs.org but still want to have an ability to install them easily.

After googling and experimenting I have found simple solution.
First create new user in your organization with obscure password and give it read access to the repo. It is best to assign really obscure password but do not fool yourself. This is convenient but you must sacrifice security a bit. You should always consider how in your context that would be important.

Change example from below to:
user - username
PASS - password of the user
organization - owner of the project (you can find it in bitbucket url to your project)
project - your project name

"dependencies&…