Approach 07: Profiling



R.P. Churchill, CBAP, PMP, CSPO, CSM, CSD

Approach 07: Profiling


The Basics

This involves identifying where large amounts of resources are being devoted, and seeing if ways can be found to reduce the use of those resources.

I first encountered the idea as it applied to running computer code. Profilers would identify what sections of code were executed most often (or analyze usage of resources like memory), so effort could preferentially be directed to making those more efficient.

This concept can be applied in many different ways and to any kind of resource.


Approach 07: Profiling

Examples

Extreme loop unrolling is an example of making sections of code more efficient in terms of speed, in a trade-off with code size and memory and storage use. I once designed a system that needed to solve a 21x8 matrix repeatedly, and I mean this operation took up 95% of the total running time repeatedly. The solution function involved barely twenty lines of code in several, tightly nested loops. Every time a line of code runs, it has to perform multiple additions and multiplications to calculate the memory locations of all the involved variables in memory. In extreme loop unrolling, you run the code and then write out each line will all loop indices and relative memory locations precalculated. The function ran thirty percent faster, but required over ten thousand lines of code to express. (See story 2 here.)

I know one individual who noticed that stainless steel was one of the major costs in his products, so he asked around and found that he could use a different grade of stainless steel that was cheaper than the industry standard, but performed just as well. He therefore saved his company — and his customers — a lot of money and stayed ahead of his competitors.

Most efforts that try to reduce labor costs operate on the same principle.

Approach 07: Profiling

Next: Approach 08: Simplification

Prev: Approach 06: Lean and Six Sigma

Index
Introduction

    

Approaches

    

Considerations