Experimento de Prueba de Velocidad Apex:
Este blog es parte de Experimentos de Prueba de Velocidad Apex.
¿Estos experimentos comprueban que estamos haciendo algo mal mientras escribimos código? ¿Qué cosa es buena para escribir o qué no lo es? ¿Su única línea de código está matando el límite de CPU?
Estoy haciendo experimentos con lo que encontré. Eres bienvenido aquí, Si tienes algo que se pueda agregar en estos experimentos
#CodeShouldNotEatCPU # CPUScientist
Nuestro experimento:
En este experimento, comprobaremos que si el sistema.la depuración está consumiendo su tiempo de CPU o no.
Necesitará:
Un ordenador, un navegador, una organización de Salesforce y 2000 registros de clientes potenciales.
Comencemos:
Hemos tomado 2000 registros de plomo para este experimento. Estamos consultando estos registros e iterando a través de un bucle. Crea esta clase en tu organización de desarrolladores.
https://gist.github.com/TheVishnuKumar/fe5b64dd906bb9964ec450f9f403a343
Experimento 1:
no Estamos utilizando ningún depura en este experimento. Abra la consola de desarrolladores. Ahora Abra La Ventana Ejecutar Anónimo. (Esta opción está presente en el menú Depuración.)
Copie este código ApexSpeedExperiment_1.runExperiment1 (); y ejecútelo desde la consola del desarrollador. Llamé a este método 5 veces y aquí están los resultados.
Resultado: la Media de tiempo es 29.2 Milisegundos.
Experimento 2:
Estamos utilizando depuradores de sistema en este experimento. Abra la consola de desarrolladores. Ahora Abra La Ventana Ejecutar Anónimo. (Esta opción está presente en el menú Depuración.)
Copie este código ApexSpeedExperiment_1.runExperiment2 (); y ejecútelo desde la consola del desarrollador. Llamé a este método 5 veces y aquí están los resultados.
Resultado: la Media de tiempo es de 110 Milisegundos.
Conclusión:
Según nuestros experimentos, Sistema.depurar consume límite de CPU.
1. Es bueno que utilicemos los depuradores necesarios en la producción.
2. No utilice depuradores para la respuesta de la API. Como las respuestas de las API pueden ser demasiado grandes.
3. No imprima toda la instancia de registro en la depuración.
4. Si se necesitan depuraciones grandes, utilice una configuración personalizada en producción para imprimir depuraciones. Cad:
if (isDebugOn) {
sistema.depurar (‘Tu Depuración’);
}
5. Elimine los depuradores no deseados antes de implementar el código en producción.
Nota: Si el registro está desactivado, la llamada sigue ocurriendo. Si alguna línea de código que está escrita en el código se ejecutará y se contará contra el tiempo de ejecución.
De acuerdo con el Documento de desarrollador de Salesforce:
Si el argumento msg no es una cadena, el método de depuración llama a Cadena.valueOf para convertirlo en una cadena. cadena.El método valueOf llama al método toString en el argumento, si está disponible, o a cualquier método toString sobreescrito si el argumento es de tipo definido por el usuario. De lo contrario, si no hay ningún método toString disponible, devuelve una representación de cadena del argumento. Si el nivel de registro para el código de Apex se establece en DEBUG o superior, el mensaje de esta instrucción de depuración se escribirá en el registro de depuración.
Este proceso anterior consume el tiempo de CPU.
Gracias por participar en el Experimento de Prueba de Velocidad Apex. Si tienes algún otro experimento en mente. Por favor, házmelo saber. Realizaré un experimento y compartiré el blog aquí.
Publicado originalmente en 0to1Code.Com