Performance Tuning Motorcycle

Performance tune-up up

BottomBar getWasted Call - BeforeAt our recent engineering offsite my team took the opportunity not only to plan out and design some new features we’re starting to build but we also spent some time tuning our existing React application to make it even faster. Here are a couple of the quick wins we had and a few additional techniques that might help you spot bottlenecks and tune up your own app.

You can’t tune what you can’t measure, so a large part of any performance effort is properly instrumenting both your application and your testing environment to measure and analyze the deltas as you work. In the following examples we’ll be quantifying performance using some React-specific tools along with the great profiling tools already built into browsers.

BottomBar Timeline - BeforeGetting Wasted

React has a ready-made set of performance measuring methods available via the Perf object from the Performance Tools library. Included is a handy function called printWasted which reports where unnecessary work is happening in component render methods and the virtual DOM in JavaScript that don’t ultimately cause a change in the HTML DOM.

To get setup, install the react-addons-perf package and include it in your project.

BottomBar Timeline - Afternpm install react-addons-perf -save-dev

import Perf from "react-addons-perf"; // Expose the React Performance Tools on the`window` object window.Perf = Perf;

Exposing the tools directly on the window object will allow control of performance data collection from the browser console while your app is running. Give it a try!

window.Perf.start // ... do some stuff with the app related to whatever components you are testing window.Perf.stop window.Perf.printWasted

Layer Reordering Timeline - BeforeTMI: Oversharing Props

The printWasted reports are a great way to reveal places in your app where you might be passing too much information through your component stack, causing unnecessary render calls, even when you’re optimizing with PureRenderMixin.

As we were developing our app we initially had a small section of our Redux store tracking a couple client-side only UI states. For velocity of early development, we simply passed that entire object through to the various components that used it. As is typical though, that part of our store grew over time and as you can see from this report our components were doing a lot of unnecessary work.

After some refactoring to prune props from being passed to components where they weren’t used you can see a huge improvement in both the printWasted report and the Timeline profile.

Layer Reordering getWasted() Call - After Chrome Extension Profile Interactions

Share this article

Related Posts

Latest Posts
Truck Maker online
Truck Maker online
Tesla, makers of electric and semi-automated…
Best car Customization app
Best car Customization…
My Car is the BEST application in Store…
Design your own Lamborghini Game
Design your own…
Yes. Their names, logos, and body designs…
Coolest modified cars
Coolest modified… Stereo Stance was created…
Mod My Ride
Mod My Ride
*Note: Product ride time can be reduced…
Featured posts
  • Virtual car Customizing software free Download
  • Create and Customize your own car
  • Best car Customization app
  • Truck Maker online
  • Good street racing cars for Beginners
  • How to Tune my car?
  • Good Project Cars
  • Design your Dream car
  • Mod My Ride
Copyright © 2021 l All rights reserved.