Improving CPU time
CPU time is the amount of time spent running our Apex code during a transaction. It is difficult to pin down exactly, as many factors can come into play that determine how much time is spent running a piece of code; however, in general, there are two ways to improve the CPU usage:
- Work on a smaller amount of data (that is, do less work).
- Operate on the data in a more efficient manner.
It is always important to consider whether the first option is possible. Can we make our query more selective (refer to the Improving query selectivity section ahead) or simply reduce the amount of work we are doing to speed up the system? A standard synchronous transaction has 10,000 ms of CPU time available. If we are processing 10,000 records, that means 1 ms each. For 1,000 records, that means 10 ms each, again not a lot of time. Anything we can do, therefore, to reduce the scope of the data we are working on will be beneficial in improving our overall performance...