Apex Speed Test Experiment:
den här bloggen är en del av Apex Speed Test experiment.
dessa experiment kontrollerar att vi gör något fel när vi skriver kod? Vad är bra att skriva eller vad är det inte? Dödar din enda kodrad CPU-gränsen?
jag gör experiment vad jag hittade. Du är varmt välkommen här, om du har något som kan läggas till i dessa experiment
#CodeShouldNotEatCPU #CPUScientist
vårt Experiment:
i detta experiment kommer vi att kontrollera att om systemet.debug äter din CPU-tid eller inte.
du behöver:
en dator, en webbläsare, en Salesforce Org och 2000 lead records.
Låt oss börja:
vi har tagit 2000 ledande poster för detta experiment. Vi frågar dessa poster och itererar genom en slinga. Skapa den här klassen i din utvecklarorganisation.
https://gist.github.com/TheVishnuKumar/fe5b64dd906bb9964ec450f9f403a343
Experiment 1:
vi använder inga debugs i detta experiment. Öppna utvecklarkonsolen. Öppna Nu Exekvera Anonymt Fönster. (Det här alternativet finns i felsökningsmenyn.)
kopiera denna kod ApexSpeedExperiment_1.runExperiment1 (); och kör det från utvecklarkonsolen. Jag ringde den här metoden 5 gånger och här är resultaten.
resultat: genomsnittlig tid är 29,2 millisekunder.
Experiment 2:
vi använder system debugs i detta experiment. Öppna utvecklarkonsolen. Öppna Nu Exekvera Anonymt Fönster. (Det här alternativet finns i felsökningsmenyn.)
kopiera denna kod ApexSpeedExperiment_1.runExperiment2 (); och kör det från utvecklarkonsolen. Jag ringde den här metoden 5 gånger och här är resultaten.
resultat: genomsnittlig tid som tas är 110 millisekunder.
slutsats:
enligt våra experiment, System.debug konsumera CPU gräns.
1. Det är bra att vi använder nödvändiga debugs i produktionen.
2. Använd inte debugs för API-svar. Som svar på API: er kan vara för stora.
3. Skriv inte ut hela posten instans i felsökning.
4. Om stora debugs behövs sedan använda en anpassad inställning i produktionen för att skriva ut debugs. Exp:
om (isDebugOn) {
systemet.debug (’din Debug’);
}
5. Ta bort oönskade debugs innan du distribuerar koden till produktion.
Obs: Om loggning är avstängd, samtalet fortfarande händer. Om någon kodrad som skrivs i koden kommer att köras och det kommer att få räkna med exekveringstid.
enligt Salesforce Developer Document:
om MSG-argumentet inte är en sträng anropar felsökningsmetoden String.valueOf att konvertera den till en sträng. sträng.valueOf method anropar toString-metoden på argumentet, om tillgängligt, eller någon åsidosatt toString-metod om argumentet är en användardefinierad typ. Annars, om ingen toString-metod är tillgänglig, returnerar den en strängrepresentation av argumentet. Om loggnivån för Apex-kod är inställd på DEBUG eller högre, kommer meddelandet i detta debug-uttalande att skrivas till debug-loggen.
ovanstående process förbrukar CPU-tiden.
Tack för att du deltog i Apex Speed Test-experimentet. Om du har något annat experiment i åtanke. Låt mig veta. Jag kommer att göra ett experiment och kommer att dela bloggen här.
Ursprungligen postat den 0to1Code.Com