Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Vannak -e teljesítmény -következmények a getAllValues ​​() használata esetén a getValue -n keresztül ()


Vannak -e teljesítmény -következmények a getAllValues ​​() használata esetén a getValue -n keresztül ()


A „getAllValues ​​()” összehasonlításakor a „getValue ()” -val, a teljesítmény következményei nagymértékben függnek a használt módszerek kontextusától és konkrét megvalósításától vagy konkrét megvalósításától vagy a használt keretrendszerben. Vannak azonban olyan általános alapelvek, amelyek irányíthatják megértésünket:

Általános teljesítmény -megfontolások

1. A hívások száma: Általában kevesebb hívás kezdeményezése az adatok lekérésére hatékonyabb, mint a több hívás. Ha a `getAllValues ​​()` az összes szükséges adatot egy hívásban letölti, akkor hatékonyabb lehet, mint a `getValue ()` hívás minden értékhez.

2. Adat -visszakeresés: Ha a `getAllValues ​​()` több adatot szerez be a szükségesnél, akkor a megnövekedett adatátvitel és feldolgozás miatt potenciálisan lassabb lehet. Ha azonban egyébként minden értékre szüksége van, akkor valószínűleg hatékonyabb, ha egyszerre, nem pedig külön -külön leszerelje őket.

3. gyorsítótárazás és optimalizálás: Egyes rendszerek gyorsítótárazhatnak vagy optimalizálhatják az ismételt hívások optimalizálását a „getValue ()” -re, amely enyhítheti a teljesítménybeli különbségeket. Ha azonban a `getAllValues ​​()` a tömeges visszakereséséhez optimalizálva van, akkor továbbra is jobb teljesítményt nyújthat.

Különleges forgatókönyvek

- A Google Apps Script: A Google Apps szkriptben a „getValues ​​()” (hasonlóan a `getAllues ()` -hez hasonlóan) használatával általában a többszörös `getValue () hívásokon keresztül ajánlott, mivel ez csökkenti a Google Sheets API -val való interakciók számát, amely jelentősen javíthatja a teljesítményt [3].

- Reflection és ingatlan -hozzáférés: A .NET reflexiójában olyan módszerek, mint a „getProperties ()”, lassú lehet a tükrözés fölött. A gyorsítótárazási eredmények azonban drasztikusan javíthatják a teljesítményt [1] [7].

- ServiceNow: A ServiceNow -ban a „getValue ()” általában gyorsabb, mint a „getDisplayValue ()”, mert további feldolgozás nélkül visszakeresése a nyers értéket [5].

Következtetés

A „getAllValues ​​()” és a „getValue ()” közötti választásnak az alkalmazás konkrét követelményein és a dolgozó rendszer teljesítményjellemzőinek kell alapulnia. Ha minden értékre szüksége van, és hatékonyan visszakeresheti azokat a `getAllValues ​​()` segítségével, ez valószínűleg a jobb választás. Ha azonban csak egy értékcsoportra van szüksége, vagy ha a „getValue ()” optimalizálódik az Ön használati esetére, akkor lehet, hogy előnyösebb. Mindig vegye figyelembe azokat a tényezőket, mint az adatméret, a hálózati késés és a rendszer-specifikus optimalizálás, amikor ezt a döntést meghozza.

Idézetek:
[1] https://lotsacode.wordpress.com/2010/04/13/reflection-type-getproperties-and-performance/
[2] https://www.reddit.com/r/googleAppssscript/comments/px959t/getRangeGetValues_performance_implication_when/
[3] https://stackoverflow.com/questions/42776311/optimizing-code-getValue-and-looping
[4] https://drupal.stackexchange.com/questions/214036/getValue-of-Multiple-values-Field-return-the--First-LUE
[5] https://www.servicenow.com/community/in-other-news/how-to-use-touse-getdisplayValue-and-getValue-for-gliderecord-or/ba-p/2896719
[6] https://www.servicenow.com/docs/bundle/yokohama-api-reference/page/app-store/dev_portal/api_reference/glideform/concept/c_glideformapi.html
[7] http://www.mattwarren.org/2016/12/14/why-is-reflection-slow/
[8] https://www.ag-grid.com/angular-data-grid/component-cell-denderer/
[9] https://salesforce.stackexchange.com/questions/8829/getInstance-vs-getValues-custom- setting