Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Чи є наслідки для продуктивності при використанні getallvalues ​​() над getValue ()


Чи є наслідки для продуктивності при використанні getallvalues ​​() над getValue ()


Порівнюючи `getallValues ​​()` до `getValue ()`, наслідки ефективності значною мірою залежать від контексту та конкретної реалізації цих методів у системі або рамках, яку ви використовуєте. Однак є деякі загальні принципи, які можуть керувати нашим розумінням:

Загальні міркування щодо ефективності

1. Кількість дзвінків: Як правило, робити менші дзвінки для отримання даних є більш ефективним, ніж здійснення декількох дзвінків. Якщо `getallValues ​​()` отримує всі необхідні дані за один дзвінок, це може бути ефективніше, ніж дзвінок `getValue ()` Кілька разів для кожного значення.

2. Отримання даних: Якщо `getallValues ​​()` отримує більше даних, ніж потрібно, це може бути повільніше через збільшення передачі та обробки даних. Однак, якщо вам все одно потрібні всі значення, швидше за все, ефективніше отримати їх відразу, а не окремо.

3. Кешування та оптимізація: Деякі системи можуть кешувати результати або оптимізувати повторні дзвінки до `getValue ()`, що може пом'якшити відмінності щодо продуктивності. Однак, якщо `getallValues ​​()` оптимізований для об'ємного пошуку, це все одно може запропонувати кращі показники.

конкретні сценарії

- Script Apps Google: у Script Apps Google, використовуючи `getValues ​​()` (подібно до `getallValues ​​()`), як правило, рекомендується через кілька дзвінків `getValue (), оскільки це зменшує кількість взаємодій з API Google Heets, що може значно покращити продуктивність [3].

- Роздуми та доступ до властивостей: у .NET відбиття, такі методи, як `getProperties ()` можуть бути повільними через накладні витрати самого відображення. Однак результати кешування можуть значно покращити продуктивність [1] [7].

- ServiceNow: У ServiceNow, `getValue ()`, як правило, швидше, ніж `getDisplayValue ()`, оскільки він отримує необроблену цінність без додаткової обробки [5].

Висновок

Вибір між `getallValues ​​()` та `getValue ()` повинен базуватися на конкретних вимогах вашої програми та характеристик продуктивності системи, з якою ви працюєте. Якщо вам потрібні всі значення і можете їх ефективно отримати за допомогою `getallValues ​​()`, це, мабуть, кращий вибір. Однак якщо вам потрібна лише підмножина значень або якщо `getValue ()` оптимізовано для вашого випадку використання, це може бути кращим. Завжди враховуйте такі фактори, як розмір даних, затримка мережі та оптимізації, що стосуються системи, при прийнятті цього рішення.

Цитати:
[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-the-first-value
[5] https://www.servicenow.com/community/in-other-news/how-to-use-getdisplayvalue-and-getvalue-for-gliderecord-or/ba-p/2896719
.
[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