Solo contamos eventos que requieren uso de la CPU del servidor de aplicaciones. Hay algunas cosas que utilizan tiempo de CPU del servidor de aplicaciones que no contamos, porque están fuera de su control como programador. Por ejemplo, el tiempo empleado en la base de datos recuperando registros no cuenta, ni el tiempo empleado en esperar el regreso de una llamada. Usted no controla el momento en que su código necesita compilación, así que no contamos eso.
Contaremos casi todo lo demás que ocurra en el servidor de aplicaciones, incluyendo las acciones declarativas. Si DML en su código encuentra una regla de validación con una fórmula, contaremos el tiempo empleado en evaluar esa fórmula. El tiempo de CPU se calcula para todas las ejecuciones en los servidores de aplicaciones de Salesforce que se producen en una transacción de Apex: para la ejecución del código Apex, y cualquier proceso al que se llame desde este código, como el código de paquetes y los flujos de trabajo. El tiempo de CPU es privado para una transacción y se aísla de otras transacciones. Las operaciones que no consumen tiempo de CPU del servidor de aplicaciones no se cuentan en el tiempo de CPU.
Ahora pasemos por algunas de las mejores prácticas en el código para ayudar a reducir el tiempo de espera de CPU.
List<Account> lstacc=[Select Id from Account limit 10000]; Set<Id> setIds=new Set<Id>(); for(Account a:lstacc){ //Más tiempo de CPU debido al bucle setIds.add(a.id); } //Emplear la consulta Map ahorra tiempo de CPU //Obteniendo todas las cuentas en la asignación Map<id,account> aMap = new Map<id,account>([Select Id,Name from Account limit 50000]); //Creando lista de cuentas List<account> accList = aMap.values() ; //Creando conjunto de ids Set<id> accIds = aMap.keySet() ;
En algunos casos los procesos de negocio pueden no ser en tiempo real y por ello si hay una oportunidad de que el código se ejecute en @future; esto interrumpirá el contexto y también el límite de tiempo de espera de CPU para procesos asíncronos en 60 segundos (6 veces el proceso síncrono). De este modo, considere esto si tiene problemas alcanzando el límite.
Ya que el tiempo de la base de datos no se calcula en el tiempo de CPU, siempre es mejor explorar el uso de SOQL agregado para su caso de uso de negocio.
Digamos que desea la suma del valor de los campos de algunos registros; si utiliza un bucle normal para obtenerla obviamente gastó ahí tiempo de CPU. En su lugar intente realizar su cálculo utilizando las funciones agregadas SUM,AVG en la capa de la base de datos en sí de modo que reduzca el tiempo de CPU realizando el proceso en la capa de la base de datos. Explore opciones para agrupar o crear algún tipo de filtrado en la capa de la base de datos y realice sus cálculos ahí para reducir los posibilidades de tener el problema de alcanzar el límite de tiempo de CPU.
Ahora es esencial filtrar únicamente los datos específicos realizando una lista de los registros, ya que demasiados bucles aumentarán el tiempo de CPU. Lo mismo se aplica con el límite de declaraciones de secuencias de comandos.
000387833

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.