Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Gibt es Auswirkungen auf die Leistung bei der Verwendung von getAllValues ​​() über GetValue ()


Gibt es Auswirkungen auf die Leistung bei der Verwendung von getAllValues ​​() über GetValue ()


Beim Vergleich von "getAllValues ​​()` mit "getValue ()" hängen die Auswirkungen auf die Leistung weitgehend vom Kontext und der spezifischen Implementierung dieser Methoden im System oder in den von Ihnen verwendeten Rahmen ab. Es gibt jedoch einige allgemeine Prinzipien, die unser Verständnis leiten können:

Allgemeine Leistungsüberlegungen

1. Anzahl der Anrufe: Im Allgemeinen ist es effizienter, weniger Anrufe zum Abrufen von Daten zu tätigen, als mehrere Anrufe zu tätigen. Wenn "getAllValues ​​()` alle erforderlichen Daten in einem Anruf abruft, ist dies möglicherweise effizienter als für jeden Wert mehrmals "getValue ()" zu rufen.

2. Datenabruf: Wenn "getAllValues ​​()` mehr Daten als benötigt wird, kann dies aufgrund der erhöhten Datenübertragung und -verarbeitung möglicherweise langsamer sein. Wenn Sie jedoch sowieso alle Werte benötigen, ist es wahrscheinlich effizienter, sie alle gleichzeitig zu holen, anstatt einzeln.

3.. Caching und Optimierung: Einige Systeme können Ergebnisse zwischenspeichern oder wiederholte Aufrufe auf `getValue ()` optimieren, was die Leistungsunterschiede mindern könnte. Wenn jedoch "getAllValues ​​()` # für die Bulk -Abruf optimiert ist, kann dies dennoch eine bessere Leistung bieten.

Spezifische Szenarien

- Google Apps Skript: In Google Apps -Skript wird das Verwenden von "getValues ​​()" (ähnlich wie "getAllValues ​​()") über mehrere "getValue ()" -Anrufe im Allgemeinen empfohlen, da es die Anzahl der Interaktionen mit der Google Sheets -API reduziert, was die Leistung erheblich verbessern kann [3].

- Reflexions- und Eigenschaftszugriff: In .NET -Reflexion können Methoden wie "getProperties ()` aufgrund des Überkopfes der Reflexion selbst langsam sein. Caching -Ergebnisse können jedoch die Leistung drastisch verbessern [1] [7].

- Servicenow: In Servicenow ist `getValue ()` im Allgemeinen schneller als `getDisplayValue ()`, weil er den Rohwert ohne zusätzliche Verarbeitung abruft [5].

Abschluss

Die Auswahl zwischen "getAllValues ​​()" und "getValue ()" sollte auf den spezifischen Anforderungen Ihrer Anwendung und den Leistungsmerkmalen des Systems, mit dem Sie arbeiten, basieren. Wenn Sie alle Werte benötigen und sie effizient mit `getAllValues ​​()` abrufen können, ist dies wahrscheinlich die bessere Wahl. Wenn Sie jedoch nur eine Teilmenge von Werten benötigen oder wenn "getValue ()` für Ihren Anwendungsfall optimiert ist, ist dies möglicherweise vorzuziehen. Betrachten Sie bei dieser Entscheidung immer Faktoren wie Datengröße, Netzwerklatenz und systemspezifische Optimierungen.

Zitate:
[1] https://lotsacode.wordpress.com/2010/04/13/reflection-type-getproperties-and-performance/
[2] https://www.reddit.com/r/googleAppsScript/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-only-thefirst-value
[5] https://www.servicenow.com/community/in-other-news/how-those-use-getdisplayValue-tvalue-for---Liderecord-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-renderer/
[9] https://salesforce.stackexchange.com/questions/8829/getinstance-vs-getvalues-custom-setting