{"id":320,"date":"2009-06-26T16:18:19","date_gmt":"2009-06-26T20:18:19","guid":{"rendered":"http:\/\/www.webperformanceinc.com\/load_testing\/blog\/?p=320"},"modified":"2010-07-20T09:34:27","modified_gmt":"2010-07-20T13:34:27","slug":"velocity-conference-day-3","status":"publish","type":"post","link":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/2009\/06\/velocity-conference-day-3\/","title":{"rendered":"Velocity Conference &#8211; Day 3"},"content":{"rendered":"<p>A great deal of time at the Velocity Conference has been spent on client-side performance optimization. This encompasses changes to the page structure and sub-elements to speed the delivery of a usable page to the user. Here at Web Performance, we have primarily been concerned with server-side performance &#8211; due to our focus on load-testing. Client-side optimization, however, benefits the users even when the server is not under load. It is something that we would like to expend more effort on when working with our clients.<\/p>\n<p>Some of the most common client-side optimization techniques discussed were:<\/p>\n<p>1) Reducing round-trips to the server<\/p>\n<ul>\n<li>reduce the number of graphical components on the page<\/li>\n<li>combine graphics into sprites, which can then be separated via javascript after the page is loaded<\/li>\n<li>combine modular javascript files into a single file<\/li>\n<\/ul>\n<p>2) Reduce the effects of latency<\/p>\n<ul>\n<li>use multiple domains to serve image, CSS and javascript resources so multiple connections can be used<\/li>\n<\/ul>\n<p>3) Avoid single-threaded browser behaviors<\/p>\n<ul>\n<li>Load most\/all javascript at the end of the page<\/li>\n<\/ul>\n<p>There are now a number of good client-side performance analysis tools available that will analyze and <em>grade<\/em> your site, as well as recommending ways to fix the problems:<\/p>\n<ul>\n<li>YSlow<\/li>\n<li>PageSpeed<\/li>\n<li>MSFast<\/li>\n<\/ul>\n<p>A number of new technologies are on the way in the browser that will help developers do more with javascript while improving performance<\/p>\n<ul>\n<li>improved javascript engines &#8211; IE8, Firefox 3.5 and the new V8 javascript engine in Chrome all tout massive performance improvements<\/li>\n<li>web sockets<\/li>\n<li>web workers &#8211; Similar to threads in the most popular languages, web workers will allow computationally-intensive operations to run in a separate thread, rather than the GUI thread, so the responsiveness of the GUI is not compromised by these operations.<\/li>\n<\/ul>\n<p>IE8 also has a host of new features to boost client-side performance:<\/p>\n<ul>\n<li>improved js engine (some string and array ops are 100x faster)<\/li>\n<li>javascript profiler<\/li>\n<li>connection limit: 2 -> 6<\/li>\n<li>native JSON support<\/li>\n<li>javascript downloads are parallelized<\/li>\n<li>data URLs ???<\/li>\n<\/ul>\n<p>Overall, the Velocity conference was a great way to get up to speed on the latest in web performance issues. I&#8217;m looking forward to next year :><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A great deal of time at the Velocity Conference has been spent on client-side performance optimization. This encompasses changes to the page structure and sub-elements to speed the delivery of a usable page to the user. Here at Web Performance, we have primarily been concerned with server-side performance &#8211; due to our focus on load-testing. Client-side optimization, however, benefits the users even when the server is not under load. It is something that we would like to expend more effort on when working with our clients.<br \/>\nSome of the most common client-side optimization techniques discussed were:<br \/>\n1) Reducing round-trips to the server<\/p>\n<p>reduce &hellip; <a href=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/2009\/06\/velocity-conference-day-3\/\">Continue reading &raquo;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57],"tags":[],"class_list":["post-320","post","type-post","status-publish","format-standard","hentry","category-company"],"_links":{"self":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/comments?post=320"}],"version-history":[{"count":5,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/320\/revisions"}],"predecessor-version":[{"id":324,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/320\/revisions\/324"}],"wp:attachment":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/media?parent=320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/categories?post=320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/tags?post=320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}