InfoQ

InfoQ

Presentation

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Recorded at:
Recorded at

JavaScript: Measuring Performance, Games, and Distributed Testing

Presented by John Resig on Dec 23, 2009 Length 01:10:08     Download: MP3
Sections
Development
Topics
Ruby ,
Javascript ,
Java ,
.NET
Tags
jQuery ,
Performance Evaluation ,
JSConf
 

How would you like to view the presentation?

In case you are having issues watching this video, please follow these simple steps to help us investigate the issue:
1. Right click on the video player and select Copy log
2. Paste the copied information in an email to video-issue@infoq.com (clicking this link will fill in the default details in most email clients).
Note: in case your email client hasn't automatically picked up the email subject, please include in your email the URL of the video too.
3. Done.
We will investigate the issue and get back to you as soon as possible. Thanks for helping us improve our site!
Summary
John Resig touches three JavaScript issues: performance measuring – calling getTime() or using a browser extension like Firebug, plus performing complexity analysis -, creating games – should be multiplayer, hard to cheat, available on all devices, and addictive –, and performing distributed testing to evaluate how a program or game works in a real set.

Bio
John Resig is a JavaScript developer and the creator of the jQuery JavaScript library. He currently works for the Mozilla Corporation where he works as a JavaScript Evangelist. He's also the creator of a number of other popular JavaScript projects including Processing.js and Env.js. He's the author of the book 'Pro JavaScript Techniques' and the upcoming 'Secrets of the JavaScript Ninja'.

About the conference
JSConf 2009 is a conference devoted to the programming language we all love to hate and hate to love, JavaScript. This is conference will be thoughtful, content driven, and exemplify the very nature of JavaScript. The core focus of this conference is to expose some of the details about JavaScript that are often overlooked and present them more as a discussion with the audience. The content of the conference should cater to all types of JavaScript users from client interfaces to server development to testing. No matter which programming language you love, you know of the pleasure and pain of JavaScript programming.
Call Count Profiling by William Louth Posted
Re: Call Count Profiling by William Louth Posted
  1. Back to top

    Call Count Profiling

    by William Louth

    Call Count Profiling ha already been done in Java. In fact counts can represent other execution constructs such as field reads/writes, object allocs....

    williamlouth.wordpress.com/2009/05/04/execution...

  2. Back to top

    Re: Call Count Profiling

    by William Louth

    www.dzone.com/links/approaches_to_microprofilin...

    The article which was published in Mar 2008 is not available anymore but here are some excerpts.

    Micro-Tuning the Code: This approach involves scanning the code and applying standard Java micro-performance optimizations (reducing object allocation, field access, method calls, and recursion), eliminating duplication of computation across call paths (temporal caching), and using heuristics to reduce the length of call paths. With this approach it is possible to waste a lot of development time if you do not understand how the software executes and the data characteristics so you must have already a good idea of the hotspots with the software. This should should ideally be combined it with one or more of the other approaches described here.


    Micro-Benchmarking the Code: This second approach involves creating a benchmark and iteratively changing a small part of the code then measuring the change across test runs. A problem with this approach is that you can easily be lead astray by your desire to beat the clock and tune specifically for benchmark. So you must be careful to make trade-offs within the software that improve the efficiency of the software under normal operating conditions whilst not creating extreme worst cases for deviations in execution.


    Counting the Code: With the third approach I use what I learnt early on in my algorithm studies of simply counting and weighting the instructions (not necessarily byte code) executed during processing and determining how this count changes depending on the branches in the code taken which can be dependent on object state. This is a much harder approach especially as I previously did most of this by visualizing the execution in my mind and maintaining accumulators based on costs assigned to language constructs and operations. After two weeks of doing this intensely you’ll begin to think you are Neo so I created a solution....


    www.jinspired.com/images/probe.count.meter.p1.gif

Educational Content

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.