Test De Viteză Apex – Sistem Does.Debug () cost CPU limită?

Apex Speed test Experiment:
acest blog face parte din experimentele de testare a vitezei Apex.
aceste experimente verifică dacă facem ceva greșit în timp ce scriem cod? Ce lucru este bun pentru a scrie sau ce nu este? Este singura linie de cod uciderea limita CPU?
fac experimente tot ce am găsit. Sunteți bineveniți aici, dacă aveți ceva care poate fi adăugat în aceste experimente
# CodeShouldNotEatCPU # CPUScientist

experimentul nostru:
în acest experiment, vom verifica dacă sistemul.debug mănâncă timpul CPU sau nu.

veți avea nevoie de:
un computer, un browser, un org Salesforce și 2000 de înregistrări de plumb.

să începem:
am luat 2000 de înregistrări de plumb pentru acest experiment. Interogăm aceste înregistrări și repetăm printr-o buclă. Creați această clasă în org Dezvoltator.

https://gist.github.com/TheVishnuKumar/fe5b64dd906bb9964ec450f9f403a343

experimentul 1:
nu folosim niciun fel de depanare în acest experiment. Deschideți consola pentru dezvoltatori. Acum Deschideți Executați Fereastra Anonimă. (Această opțiune este prezentă în meniul Debug.)
copiati acest cod ApexSpeedExperiment_1.runExperiment1 (); și rulați-l de la consola pentru dezvoltatori. Am sunat această metodă de 5 ori și aici sunt rezultatele.

rezultat: timpul mediu luat este de 29,2 milisecunde.

experimentul 2:
folosim depanări de sistem în acest experiment. Deschideți consola pentru dezvoltatori. Acum Deschideți Executați Fereastra Anonimă. (Această opțiune este prezentă în meniul Debug.)
copiati acest cod ApexSpeedExperiment_1.runExperiment2 (); și rulați-l de la consola pentru dezvoltatori. Am sunat această metodă de 5 ori și aici sunt rezultatele.

rezultat: timpul mediu luat este de 110 milisecunde.

concluzie:
conform experimentelor noastre, Sistem.debug consumă limita procesorului.
1. Este bine că ar trebui să folosim depanările necesare în producție.
2. Nu utilizați depanare pentru răspuns API. Ca răspunsuri ale API-urilor pot fi prea mari.
3. Nu imprimați întreaga instanță de înregistrare în depanare.
4. Dacă sunt necesare debug-uri mari, utilizați o setare personalizată în producție pentru a imprima debug-uri. Exp:
dacă (isDebugOn) {
sistem.debug (‘depanarea ta’);
}
5. Eliminați depanările nedorite înainte de a implementa codul în producție.

Notă: Dacă înregistrarea în jurnal este dezactivată, apelul se mai întâmplă. În cazul în care orice linie de cod care este scris în codul va fi executat și va primi conta împotriva timpului de execuție.
conform documentului dezvoltatorului Salesforce:
dacă argumentul msg nu este un șir, metoda de depanare apelează șirul.valueOf să-l transforme într-un șir. Sfoara.metoda valueOf numește metoda toString pe argumentul, dacă este disponibil, sau orice metodă toString suprascrisă în cazul în care argumentul este un tip definit de utilizator. În caz contrar, dacă nu este disponibilă nicio metodă toString, aceasta returnează o reprezentare șir a argumentului. Dacă nivelul jurnalului pentru codul Apex este setat la depanare sau mai mare, mesajul acestei instrucțiuni de depanare va fi scris în Jurnalul de depanare.
acest proces de mai sus consumă timpul procesorului.

Vă mulțumim că ați participat la experimentul de testare a vitezei Apex. Dacă aveți orice alt experiment în minte. Te rog să mă anunți. Voi face un experiment și voi împărtăși blogul aici.

postat inițial pe 0to1Code.Com

You might also like

Lasă un răspuns

Adresa ta de email nu va fi publicată.