Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon GetValue () üzerinden getAllValues ​​() kullanırken performans sonuçları var mı?


GetValue () üzerinden getAllValues ​​() kullanırken performans sonuçları var mı?


`GetAllValues ​​()` ile `getValue () 'ile karşılaştırılırken, performans sonuçları büyük ölçüde kullandığınız sistem veya çerçevede bu yöntemlerin bağlamına ve özel uygulamasına bağlıdır. Ancak, anlayışımıza rehberlik edebilecek bazı genel ilkeler vardır:

Genel Performans Hususları

1. Çağrı sayısı: Genel olarak, veri almak için daha az çağrı yapmak, birden fazla çağrı yapmaktan daha verimlidir. Bir çağrıda gerekli tüm verileri alırsa, her değer için `getValue () 'adını vermekten daha verimli olabilir.

2. Veri alımı: `getAllValues ​​()` gerekenden daha fazla veri getirirse, artan veri aktarımı ve işleme nedeniyle potansiyel olarak daha yavaş olabilir. Bununla birlikte, tüm değerlere yine de ihtiyacınız varsa, hepsini ayrı ayrı yerine bir kerede getirmek daha verimlidir.

3. Önbellekleme ve optimizasyon: Bazı sistemler sonuçları önbelleğe alabilir veya performans farklılıklarını azaltabilecek 'GetValue ()' adlı tekrarlanan çağrıları optimize edebilir. Ancak, `getAllValues ​​()` toplu alım için optimize edilmişse, yine de daha iyi performans sunabilir.

Belirli senaryolar

- Google Apps Script: Google Apps Script'te, `getValues ​​()` (`getAllValues ​​() '' ye benzer) kullanma genellikle çoklu` getValue () `çağrılarına önerilir, çünkü Google sayfaları API ile etkileşim sayısını azaltır, bu da performansı önemli ölçüde artırabilir [3].

- Yansıma ve Özellik Erişimi: .NET yansımasında, `getProperties () 'gibi yöntemler, yansımanın kendisinin ek yükü nedeniyle yavaş olabilir. Bununla birlikte, önbellek sonuçları performansı önemli ölçüde artırabilir [1] [7].

- ServiceNow: ServiceNow'da, `getValue ()` genellikle `getDisplayValue () 'dan daha hızlıdır, çünkü ek işlem yapmadan ham değeri alır [5].

Çözüm

`GetAllValues ​​()` ve `getValue ()` arasındaki seçim, uygulamanızın özel gereksinimlerine ve birlikte çalıştığınız sistemin performans özelliklerine dayanmalıdır. Tüm değerlere ihtiyacınız varsa ve bunları `getAllValues ​​()` ile verimli bir şekilde alabiliyorsanız, muhtemelen daha iyi bir seçimdir. Ancak, yalnızca bir değer alt kümesine ihtiyacınız varsa veya kullanım durumunuz için `getValue ()` `optimize edilmişse, tercih edilebilir. Bu kararı verirken daima veri boyutu, ağ gecikmesi ve sisteme özgü optimizasyonlar gibi faktörleri göz önünde bulundurun.

Alıntılar:
[1] https://lotsacode.wordpress.com/2010/04/13/Reflection-type-getproperties-and-opormance/
[2] https://www.reddit.com/r/googleappsscript/comments/px959t/getrangetvalues_performance_impliction_when/
[3] https://stackoverflow.com/questions/42776311/optimizing-code-getvalue-and-looping
[4] https://drupal.stackexchange.com/questions/214036/getvalue-of-multiple-values-field-reNurn-sely-the-first-value
[5] https://www.serviceenow.com/community/in-other-news/how-to-o--getdisplayvalue-and-getvalue-for-gliderecord-or/ba-p/2896719
[6] https://www.serviceenow.com/docs/bundle/yokohama-api-referen
[7] http://www.mattwarren.org/2016/12/14/why-is-reflection-slow/
[8] https://www.ag-grid.com/angular-data-grid/component-cell-render/
[9] https://salesforce.stackexchange.com/questions/8829/getinstance-vs-getvalues-custom-setting