Improving CPU time
CPU time is the amount of time spent running 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 CPU usage:
- Working on a smaller amount of data (that is, doing less work)
- Operating on 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 (there’s more on this in the Improving query selectivity section ahead) or simply reduce the amount of work we do to speed up the system? A standard synchronous transaction has 10,000 ms of CPU time available. If we process 10,000 records, that means 1 ms each. For 1,000 records, that means 10 ms each – again, not a lot of time but 10x the previous allocation. Anything we can do, therefore, to reduce the scope of the data we work on will be beneficial...