Skip to content

Have You Found All the Low-Hanging Fruit?

ADMIN | 07-07-2011

As you push an algorithm’s performance, the code complexity goes up, and the performance yield gets smaller and smaller.

Hexagon pattern 1

By Kevin Tatterson

One of my strongest professional motivators is my product’s performance. Having written and tuned algorithms for over 20 years, I’ve cemented a belief that should already be intuitive: as you push an algorithm’s performance, the code complexity goes up, and the performance yield gets smaller and smaller.

With this awareness, it should be obvious that the best approach to tackling your product’s performance is to look for 'low hanging fruit'. I don’t want this blog to digress into a full lecture on every technique for tuning your app – but instead want to discuss the importance of making sure you approach your product’s performance in an orderly, sensible manner.

The following chart shows three curves. The area under each represents the 'performance potential'. The x-axis represents complexity, effort, and support cost. Observations:

  • The typical application (the area of the 'typical' curve) is only exploiting about half its performance potential (the area under the 'limit' curve).
  • 'Low-hanging fruit' efforts are on the left side of the plot. As the curves indicate, most of the performance wins are found here.
  • Complex projects for improving product performance would show up on the right side of the plot.

Performance Complexity

 

The suggestion here is simple: try to keep your performance projects in the green quads. Be exhaustive in searching out the low-hanging fruit. When moving beyond low-hanging fruit, be careful to move left-to-right – and don’t simply jump into complex projects. Staying out of the yellow and red-quads is more difficult than it sounds. Developers love a challenge and sometimes forget the golden rule to "keep it simple".

As it turns out, time is the third dimension not shown in the plot. As your application evolves, new low-hanging fruit will appear. This is simply because the code is under flux – and algorithms will 'detune' over time. As such, my suggestion is to schedule a performance study every year or so. It should only take 2-3 weeks to profile/search for new low-hanging fruit.

You might also like...

5 Min read
CGM Modeler
Software components are like the stage crew at a big concert performance: the audience doesn’t see them, but their...
8 Min read
CGM Modeler
There’s a lot of confusion around what the terms additive manufacturing and 3D printing mean.
2 Min read
CGM Modeler
WRL files are an extension of the Virtual Reality Modeling Language (VRML) format . VRML file types enable browser...
Voxel model example
3 Min read
CGM Modeler
Voxels are to 3D what pixels are to 2D. Firstly -- let’s examine what pixels actually are. Everything you see on your...
Point_cloud_torus
2 Min read
CGM Modeler
Point-cloud modeling is typically used in the process of 3D scanning objects. Rather than defining surfaces through...
Polygonal Modeling
2 Min read
CGM Modeler
Polygonal (or polyhedral) modeling is the most common type of modeling for video games and animation studios. This type...
BREP Model example
2 Min read
CGM Modeler
BRep modeling, or Boundary Representation modeling, is, in CAD applications, the most common type of modeling. BRep is...
Construction site with crane and building-1
3 Min read
3D Software Development Kits
Digital twins are changing the way the construction industry manages large building projects and infrastructure...
3 Min read
3D Software Development Kits
There is a new wave of innovative processes and solutions that improve product production throughput, and enable...
3D Product Visualization.jpg
2 Min read
3D Software Development Kits
In the 3D modeling space, application developers face a number of challenges — getting to market on time, delivering...
General PMI
4 Min read
3D Software Development Kits
It has already been a year since release 2017 1.0, which saw the introduction of a number of innovative features aimed...
Large Tolerant  Vertex
3 Min read
3D Software Development Kits
boolean operation Boolean operations on individual bodies are common functions in 3D modeling. While simple in concept,...
3 Min read
3D Software Development Kits
In much the same way as physical design has moved from paper 2D drawings to 3D models in software, so has analysis....
2 Min read
3D Software Development Kits
Today was day one of Spatial Corp.’s 3D Insiders’ Summit 2016, an educational event that focuses on technical topics...
4 Min read
3D InterOp
Part and parcel with model-based engineering is model translation. Because the model is now the specification, accurate...
3 Min read
3D Software Development Kits
In case you missed the news this week, we announced the availability of Release 2017 1.0 for Spatial software...
2 Min read
3D Software Development Kits
Augmented World Expo 2016
4 Min read
3D Software Development Kits
Make or buy is an age old question for anyone building products, whether hardware or software. For example, for a...