Apex Speed Test-Does System.Debug () kustannus CPU raja?

Apex Speed Test Experiment:
tämä blogi on osa Apex Speed Test Experiments-ohjelmaa.
nämä kokeet tarkistavat, että teemmekö jotain väärin koodia kirjoittaessamme? Mikä asia on hyvä kirjoittaa tai mikä ei? Tappaako yksi koodirivi suorittimen rajan?
teen kokeita mitä vain löysin. Olet erittäin tervetullut tänne, jos sinulla on mitään, mitä voidaan lisätä näihin kokeisiin
#CodeShouldNotEatCPU #CPUScientist

Kokeemme:
tässä kokeessa tarkistetaan, että if-järjestelmä.debug syövät suorittimen aikaa tai ei.

tarvitset:
tietokoneen, selaimen, Salesforce Org: n ja 2000 lead Recordsin.

aloitetaan:
tässä kokeessa on otettu 2000 lyijyennätystä. Kyselemme näitä tietoja ja iteroimme silmukan läpi. Luo tämä luokka omassa Kehittäjä org.

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

Koe 1:
emme käytä mitään debugeja tässä kokeessa. Avaa Kehittäjä konsoli. Avaa Nyt Nimetön Ikkuna. (Tämä asetus on Debug-valikossa.)
kopioi tämä koodi ApexSpeedExperiment_1.runExperiment1 (); ja suorita se kehittäjäkonsolista. Kutsuin tätä menetelmää 5 kertaa ja tässä ovat tulokset.

tulos: keskimääräinen aika on 29,2 millisekuntia.

Koe 2:
tässä kokeessa käytetään järjestelmän debugeja. Avaa Kehittäjä konsoli. Avaa Nyt Nimetön Ikkuna. (Tämä asetus on Debug-valikossa.)
kopioi tämä koodi ApexSpeedExperiment_1.runExperiment2 (); ja suorita se kehittäjäkonsolista. Kutsuin tätä menetelmää 5 kertaa ja tässä ovat tulokset.

tulos: keskimääräinen aika on 110 millisekuntia.

Conclusion:
According to our experiments, System.debug kuluttaa CPU raja.
1. On hyvä, että tuotannossa käytetään tarvittavia debugeja.
2. Älä käytä DEBUGEJA API-vastaukseen. Sovellusliittymien vasteet voivat olla liian suuria.
3. Älä tulosta koko tietueen esiintymää vianetsinnässä.
4. Jos tarvitaan suuria debugeja, käytä tuotannossa mukautettua asetusta debugien tulostamiseen. Käyt. viim.:
if (isDebugOn ){
system.debug (’Debug’);
}
5. Poista ei-toivotut debugit ennen koodin käyttöönottoa tuotantoon.

Huom: jos kirjaus on pois päältä, kutsu tapahtuu silti. Jos jokin koodirivi, joka on kirjoitettu koodiin, suoritetaan ja se saa lukua suoritusaikaa vastaan.
mukaan Salesforce Developer Document:
jos msg-argumentti ei ole merkkijono, debug-menetelmä kutsuu merkkijonoa.arvo muuttaa sen merkkijonoksi. merkkijono.value of method kutsuu argumentin toString-menetelmää, jos se on käytettävissä, tai mitä tahansa ohitettua toString-menetelmää, jos argumentti on käyttäjän määrittelemä tyyppi. Muussa tapauksessa, jos toString-menetelmää ei ole käytettävissä, se palauttaa argumentin merkkijonoesityksen. Jos Apex-koodin lokitaso on asetettu VIANETSINTÄLOKIIN tai korkeammalle, tämän vianetsintälausunnon viesti kirjoitetaan vianetsintälokiin.
tämä edellä mainittu prosessi kuluttaa suoritinaikaa.

Kiitos Apex Speed Test-kokeeseen osallistumisesta. Jos sinulla on jokin muu koe mielessä. Kerro minulle. Aion suorittaa kokeen ja jakaa blogin täällä.

julkaistu alun perin 0to1Code.Com

You might also like

Vastaa

Sähköpostiosoitettasi ei julkaista.