JavaScript Performance Patterns

Stoyan Stefanov
Stoyan Stefanovengineer at Facebook
JavaScript Performance Patterns

         @stoyanstefanov
       Web Directions South
       Sydney, Oct 18, 2012
JavaScript Performance Patterns
Importance of Performance




                    http://bookofspeed.com
Importance of JavaScript Performance




                         http://httparchive.org
// todo
1. Loading JavaScript
2. Runtime / UI / DOM
   + benchmarks
   + shims
JavaScript Performance Patterns
JavaScript Performance Patterns
Loading
First things first
•   reduce # of script files
•   gzip, shave 70% off
•   minify, extra 40-50%
•   Expires headers
•   CDN


                                   http://yslow.org
                                      PageSpeed
                               http://webpagetest.org
<script src="http://…">
SPOF
• Single point of failure
• JS blocks




                                                        http://phpied.com/3po-fail
                                                                    SPOF-O-Matic:
  https://chrome.google.com/webstore/detail/plikhggfbplemddobondkeogomgoodeg
Off the critical path
Asynchronous JS
• <script defer>
• <script async>
• until then…
Dynamic script node
var js = document.createElement('script');
js.src = 'http://cdn.com/my.js';
document.getElementsByTagName('head')[0].appendChild(js);




                                  http://calendar.perfplanet.com/2011/t
                                  he-art-and-craft-of-the-async-snippet/
But…, butt…, button?
Q: <button onclick="…"?
A: To hell with it

Q: Dependencies?
A: onload event and js.onreadystatechange

load('jquery.js', 'mystuff.js', function () {
  mystuff.go();
});
Unblocking onload
• Async JS blocks window.onload in !IE
• May or may not be a problem
• There's a solution: FIF
<fif>

frame-in-frame aka friendly frames
      aka this Meebo thing
FIF
1)   create
     iframe src="js:false"
2)   in the frame doc.write a
     <body onload …
3)   …that loads JS
FIF (snippet)
var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
var doc = iframe.contentWindow.document;
doc.open().write('<body onload="'+
 'var js = document.createElement('script');'+
 'js.src = 'http://example.org/js.js';'+
 'document.body.appendChild(js);">');
doc.close();
FIF
• unblocks onload, but…
• more complex
• requires JS changes
your script (before)


// fun with window
// and document
your script (before)
(function() {

  // fun with window
  // and document
}());
FIF (after)
(function(window) {
  var document = window.document;
  // fun with window
  // and document
}(parent.window));
FIF in the wild
• experimental support in FB JS SDK
• http://jsbin.com/axibow/10/edit
</fif>
Load JS but not execute
• Use cases:
  – preload in anticipation
  – lazy
Preload, then eventually execute
1. fetch the script, but don’t run it
2. run it at some point (same as async JS)
Fetching
• IE: dynamic script node, not in the DOM
• All others: CORS (XHR2)
  – your CDN should let you specify
    Access-Control-Allow-Origin
    header or else!
Preload, then execute
// preload
var js = document.createElement('script');
if (!js.readyState || js.readyState !== 'uninitialized') { // non IE
  var xhr = new XMLHttpRequest();
  if ('withCredentials' in xhr) { // XHR2
    xhr.open('GET', url, false);
    xhr.send(null);
  }
}
js.src = url; // IE preloads! Thanks @getify

// execute
document.getElementsByTagName('head')[0].appendChild(js);
// todo
1. Loading JavaScript
2. Runtime / UI / DOM
   + benchmarks
   + shims
Benchmarks
•   Lies, damn lies and performance advice
•   Test the wrong thing
•   Measure the wrong thing
•   Even if not, still draw the wrong conclusions
Your first benchmark
var start = new Date();
// loop 100000 times
var took = new Date() – start;
Benchmark.js
• by John-David Dalton
• used in http://jsperf.com
  – calibrating the test
  – end time (ops/second)
  – statistical significance
  – margin of error
http://calendar.perfplanet.com/2010/bulletpro
                     of-javascript-benchmarks/
Benchmarking browsers?



       No, thanks
Let's test!
String concat?
var text = "";
text += "moar";

vs.

var parts = [];
parts.push('moar');
var text = push.join('');

                        http://jsperf.com/join-concat/
String concat
The pen is mightier than the sword! *



* Only if the sword is very small and the pen very sharp
"Don't A, B is so much faster!"



      You should check it again
Profiling
JavaScript Performance Patterns
JavaScript Performance Patterns
JavaScript Performance Patterns
Picking battles
DOM
DOM
• DOM is slow
• How slow?
• http://jsperf.com/dom-touch
DOM
// DOM
div.innerHTML = 'a';
div.innerHTML += 'b';

// string
var html = '';
html += 'a';
html += 'b';
div.innerHTML = html;
DOM
DOM + string concat
• put things in perspective   http://jsperf.com/dom-touch-concat
ECMAland   DOMland
DOM
•   caching DOM references
•   caching length in collection loops
•   "offline" changes in document fragment
•   batch style changes
•   reducing reflows and repaints
reflows
   getComputedStyle(), or currentStyle in IE


   bodystyle.color = 'red';
   tmp = computed.backgroundColor;
   bodystyle.color = 'white';
   tmp = computed.backgroundImage;
   bodystyle.color = 'green';
   tmp = computed.backgroundAttachment;




   bodystyle.color = 'red';
   bodystyle.color = 'white';
   bodystyle.color = 'green';
   tmp = computed.backgroundColor;
   tmp = computed.backgroundImage;
   tmp = computed.backgroundAttachment;
querySelectorSlow()?
<table border="1" id="test-table">
  <thead>
   <!-- ... -->
  </thead>
  <tbody>
    <tr class="rowme">
      <td>1</td><td>John</td><td><!-- ... -->
      <!-- ... -->
querySelectorSlow()?
var trs =
  tbody.getElementsByClassName('rowme');

var trs =
  tbody.getElementsByTagName('tr');

var trs =
  tbody.querySelectorAll('.rowme');
http://jsperf.com/queryinging/4
querySelectorSlow()?
for (
  var i = 0, len = trs.length;
  i < len;
  i += 2) {

    trs[i].className;

}
http://jsperf.com/queryinging/3
querySelectorSlow()?
for (
  var i = 0, len = trs.length;
  i < len;
  i += 2) {

  trs[i].className = "rowme
hilite";

}
http://jsperf.com/queryinging/2
querySelectorSlow()?
for (
  var i = 0, len = trs.length;
  i < len;
  i += 2) {

  trs[i].className = "rowme
hilite";
}
trs[0].offsetHeight;
http://jsperf.com/queryinging/
Priorities
1. Loading – drop everything, fix now
2. Reflows – fix asap
3. Writing DOM
4. Reading DOM
5. Querying DOM
6. ECMALand - later
data attributes
<div data-stuff="convenient"></div>

• div.dataset.stuff
• div.getAttribute('data-stuff')
• Data.get(div).stuff // DIY
data attributes DIY
var Data = function() {
  var warehouse = {};
  var count = 1;
  return {
    set: function (dom, data) {
      if (!dom.__data) {
        dom.__data = "hello" + count++;
      }
      warehouse[dom.__data] = data;
    },
    get: function(dom) {
      return warehouse[dom.__data];
    }
  };
}();
data attributes
data attributes
            http://jsperf.com/data-dataset
Shims and polyfills
Shims
• pick the smaller/optimized one
• one that uses native where available *
• load conditionally

e.g. JSON is non-native only for 8% of users *,
why load shim 100% of the time


                                     * http://html5please.us
Fast ECMAScript5 natives?
• JDD: "browsers optimize loops because of
  benchmarks"
• http://jsperf.com/native-for-loop-vs-array-
  foreach-and-array-map-vs-lodas/2
jQuery: the most popular polyfill
• not free (perf-wise)
• do you need it?
Cost of parsing and evaluating
                  http://calendar.perfplanet.com/2011/laz
                  y-evaluation-of-commonjs-modules/
Cost of parsing and evaluating
Experiment: jQuery vs. Zepto



What’s the cost of just dropping it on the page?
jsperf.com/zepto-jq-eval



          […]
jsperf.com/zepto-jq-eval
jsperf.com/zepto-jq-eval
In closure…
• JS off the critical path
  (async, lazy, preload)
• Practice writing jsperf.com tests
  ("jsperf URL or it didn't happen!")
• Don't touch the DOM (remember the bridge)
• Use the tools (Timeline, CPU/heap profiler,
  SpeedTracer, Dynatrace)
• Think of poor mobile
  (easy with the shims)
Thank you!



http://slideshare.net/stoyan/
1 of 79

Recommended

High Performance Social Plugins by
High Performance Social PluginsHigh Performance Social Plugins
High Performance Social PluginsStoyan Stefanov
3.3K views40 slides
Progressive Downloads and Rendering - take #2 by
Progressive Downloads and Rendering - take #2Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2Stoyan Stefanov
3.3K views129 slides
JavaScript performance patterns by
JavaScript performance patternsJavaScript performance patterns
JavaScript performance patternsStoyan Stefanov
8K views69 slides
Liking performance by
Liking performanceLiking performance
Liking performanceStoyan Stefanov
2.1K views20 slides
High Performance JavaScript (Amazon DevCon 2011) by
High Performance JavaScript (Amazon DevCon 2011)High Performance JavaScript (Amazon DevCon 2011)
High Performance JavaScript (Amazon DevCon 2011)Nicholas Zakas
4.6K views155 slides
Progressive Enhancement 2.0 (Conference Agnostic) by
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Nicholas Zakas
42.5K views125 slides

More Related Content

What's hot

Browser Wars Episode 1: The Phantom Menace by
Browser Wars Episode 1: The Phantom MenaceBrowser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom MenaceNicholas Zakas
77.4K views168 slides
Mastering Grunt by
Mastering GruntMastering Grunt
Mastering GruntSpencer Handley
777 views74 slides
Node.js & Twitter Bootstrap Crash Course by
Node.js & Twitter Bootstrap Crash CourseNode.js & Twitter Bootstrap Crash Course
Node.js & Twitter Bootstrap Crash CourseAaron Silverman
28.7K views67 slides
Mobile Web Speed Bumps by
Mobile Web Speed BumpsMobile Web Speed Bumps
Mobile Web Speed BumpsNicholas Zakas
13.4K views101 slides
jQuery Conference San Diego 2014 - Web Performance by
jQuery Conference San Diego 2014 - Web PerformancejQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web Performancedmethvin
6.7K views52 slides
SocketStream by
SocketStreamSocketStream
SocketStreamPaul Jensen
3.7K views176 slides

What's hot(20)

Browser Wars Episode 1: The Phantom Menace by Nicholas Zakas
Browser Wars Episode 1: The Phantom MenaceBrowser Wars Episode 1: The Phantom Menace
Browser Wars Episode 1: The Phantom Menace
Nicholas Zakas77.4K views
Node.js & Twitter Bootstrap Crash Course by Aaron Silverman
Node.js & Twitter Bootstrap Crash CourseNode.js & Twitter Bootstrap Crash Course
Node.js & Twitter Bootstrap Crash Course
Aaron Silverman28.7K views
Mobile Web Speed Bumps by Nicholas Zakas
Mobile Web Speed BumpsMobile Web Speed Bumps
Mobile Web Speed Bumps
Nicholas Zakas13.4K views
jQuery Conference San Diego 2014 - Web Performance by dmethvin
jQuery Conference San Diego 2014 - Web PerformancejQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web Performance
dmethvin6.7K views
Ajax Security by Joe Walker
Ajax SecurityAjax Security
Ajax Security
Joe Walker42.6K views
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011) by Nicholas Zakas
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Progressive Enhancement 2.0 (jQuery Conference SF Bay Area 2011)
Nicholas Zakas10.1K views
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools by Ryan Weaver
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsCool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Ryan Weaver54.9K views
Don't make me wait! or Building High-Performance Web Applications by Stoyan Stefanov
Don't make me wait! or Building High-Performance Web ApplicationsDon't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web Applications
Stoyan Stefanov20.6K views
Keypoints html5 by dynamis
Keypoints html5Keypoints html5
Keypoints html5
dynamis 29.7K views
Avoiding Common Pitfalls in Ember.js by Alex Speller
Avoiding Common Pitfalls in Ember.jsAvoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.js
Alex Speller22.9K views
HTML5와 오픈소스 기반의 Web Components 기술 by Jeongkyu Shin
HTML5와 오픈소스 기반의 Web Components 기술HTML5와 오픈소스 기반의 Web Components 기술
HTML5와 오픈소스 기반의 Web Components 기술
Jeongkyu Shin4K views
Learning from the Best jQuery Plugins by Marc Grabanski
Learning from the Best jQuery PluginsLearning from the Best jQuery Plugins
Learning from the Best jQuery Plugins
Marc Grabanski47.6K views
HTTP 2.0 - Web Unleashed 2015 by dmethvin
HTTP 2.0 - Web Unleashed 2015HTTP 2.0 - Web Unleashed 2015
HTTP 2.0 - Web Unleashed 2015
dmethvin926 views
Web Page Test - Beyond the Basics by Andy Davies
Web Page Test - Beyond the BasicsWeb Page Test - Beyond the Basics
Web Page Test - Beyond the Basics
Andy Davies17.5K views

Similar to JavaScript Performance Patterns

Performance patterns by
Performance patternsPerformance patterns
Performance patternsStoyan Stefanov
4.1K views82 slides
Progressive downloads and rendering (Stoyan Stefanov) by
Progressive downloads and rendering (Stoyan Stefanov)Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)Ontico
1.4K views126 slides
Developing High Performance Web Apps by
Developing High Performance Web AppsDeveloping High Performance Web Apps
Developing High Performance Web AppsTimothy Fisher
1.3K views53 slides
Progressive Downloads and Rendering by
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and RenderingStoyan Stefanov
6K views91 slides
Developing High Performance Web Apps - CodeMash 2011 by
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Timothy Fisher
9.6K views69 slides
SXSW 2012 JavaScript MythBusters by
SXSW 2012 JavaScript MythBustersSXSW 2012 JavaScript MythBusters
SXSW 2012 JavaScript MythBustersElena-Oana Tabaranu
5.2K views51 slides

Similar to JavaScript Performance Patterns(20)

Progressive downloads and rendering (Stoyan Stefanov) by Ontico
Progressive downloads and rendering (Stoyan Stefanov)Progressive downloads and rendering (Stoyan Stefanov)
Progressive downloads and rendering (Stoyan Stefanov)
Ontico1.4K views
Developing High Performance Web Apps by Timothy Fisher
Developing High Performance Web AppsDeveloping High Performance Web Apps
Developing High Performance Web Apps
Timothy Fisher1.3K views
Progressive Downloads and Rendering by Stoyan Stefanov
Progressive Downloads and RenderingProgressive Downloads and Rendering
Progressive Downloads and Rendering
Stoyan Stefanov6K views
Developing High Performance Web Apps - CodeMash 2011 by Timothy Fisher
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011
Timothy Fisher9.6K views
Build Your Own CMS with Apache Sling by Bob Paulin
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache Sling
Bob Paulin15.8K views
Google I/O 2012 - Protecting your user experience while integrating 3rd party... by Patrick Meenan
Google I/O 2012 - Protecting your user experience while integrating 3rd party...Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Patrick Meenan3K views
Appsec usa2013 js_libinsecurity_stefanodipaola by drewz lin
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
drewz lin894 views
Server Side JavaScript - You ain't seen nothing yet by Tom Croucher
Server Side JavaScript - You ain't seen nothing yetServer Side JavaScript - You ain't seen nothing yet
Server Side JavaScript - You ain't seen nothing yet
Tom Croucher2.9K views
introduction to node.js by orkaplan
introduction to node.jsintroduction to node.js
introduction to node.js
orkaplan3.7K views
Building performance into the new yahoo homepage presentation by masudakram
Building performance into the new yahoo  homepage presentationBuilding performance into the new yahoo  homepage presentation
Building performance into the new yahoo homepage presentation
masudakram4.4K views
Performance on the Yahoo! Homepage by Nicholas Zakas
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage
Nicholas Zakas7.9K views
JavaScript Perfomance by Anatol Alizar
JavaScript PerfomanceJavaScript Perfomance
JavaScript Perfomance
Anatol Alizar10.1K views
JavaScript Performance (at SFJS) by Steve Souders
JavaScript Performance (at SFJS)JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)
Steve Souders22.8K views

More from Stoyan Stefanov

Reactive JavaScript by
Reactive JavaScriptReactive JavaScript
Reactive JavaScriptStoyan Stefanov
5.1K views41 slides
YSlow hacking by
YSlow hackingYSlow hacking
YSlow hackingStoyan Stefanov
3.1K views27 slides
Social Button BFFs by
Social Button BFFsSocial Button BFFs
Social Button BFFsStoyan Stefanov
2.1K views33 slides
JavaScript навсякъде by
JavaScript навсякъдеJavaScript навсякъде
JavaScript навсякъдеStoyan Stefanov
2.2K views35 slides
JavaScript is everywhere by
JavaScript is everywhereJavaScript is everywhere
JavaScript is everywhereStoyan Stefanov
4.6K views48 slides
JavaScript shell scripting by
JavaScript shell scriptingJavaScript shell scripting
JavaScript shell scriptingStoyan Stefanov
6.1K views52 slides

More from Stoyan Stefanov(20)

JavaScript навсякъде by Stoyan Stefanov
JavaScript навсякъдеJavaScript навсякъде
JavaScript навсякъде
Stoyan Stefanov2.2K views
JavaScript for PHP developers by Stoyan Stefanov
JavaScript for PHP developersJavaScript for PHP developers
JavaScript for PHP developers
Stoyan Stefanov15.6K views
Voices that matter: High Performance Web Sites by Stoyan Stefanov
Voices that matter: High Performance Web SitesVoices that matter: High Performance Web Sites
Voices that matter: High Performance Web Sites
Stoyan Stefanov1.6K views
CSS and image optimization by Stoyan Stefanov
CSS and image optimizationCSS and image optimization
CSS and image optimization
Stoyan Stefanov26.8K views
High-performance DOM scripting by Stoyan Stefanov
High-performance DOM scriptingHigh-performance DOM scripting
High-performance DOM scripting
Stoyan Stefanov2.7K views
Ignite Velocity: Image Weight Loss Clinic by Stoyan Stefanov
Ignite Velocity: Image Weight Loss ClinicIgnite Velocity: Image Weight Loss Clinic
Ignite Velocity: Image Weight Loss Clinic
Stoyan Stefanov1.9K views
High Performance Kick Ass Web Apps (JavaScript edition) by Stoyan Stefanov
High Performance Kick Ass Web Apps (JavaScript edition)High Performance Kick Ass Web Apps (JavaScript edition)
High Performance Kick Ass Web Apps (JavaScript edition)
Stoyan Stefanov41.9K views
Beginning Object-Oriented JavaScript by Stoyan Stefanov
Beginning Object-Oriented JavaScriptBeginning Object-Oriented JavaScript
Beginning Object-Oriented JavaScript
Stoyan Stefanov17.1K views
Image Optimization for the Web at php|works by Stoyan Stefanov
Image Optimization for the Web at php|worksImage Optimization for the Web at php|works
Image Optimization for the Web at php|works
Stoyan Stefanov29.8K views

Recently uploaded

CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TShapeBlue
112 views34 slides
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueShapeBlue
176 views20 slides
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITShapeBlue
166 views8 slides
Kyo - Functional Scala 2023.pdf by
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
449 views92 slides
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...ShapeBlue
85 views10 slides
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...ShapeBlue
138 views18 slides

Recently uploaded(20)

CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue112 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue176 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue166 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue85 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue138 views
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue120 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue117 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue179 views
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ by ShapeBlue
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericConfidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
ShapeBlue88 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue103 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue98 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue210 views
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... by ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue101 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue79 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue84 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE69 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson156 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue94 views

JavaScript Performance Patterns