Kui võrrelda `getAllValues ()` kuni `getValue ()`, sõltuvad jõudluse mõjud suuresti nende meetodite kontekstist ja konkreetsest rakendamisest süsteemis või raamistikus. Siiski on mõned üldised põhimõtted, mis võivad meie arusaamist suunata:
Üldised tulemuslikkuse kaalutlused
1. Kõnede arv: üldiselt on andmete hankimiseks vähem kõnesid tõhusam kui mitme kõne tegemine. Kui `getAllValues ()` hangib kõik vajalikud andmed ühes kõnes, võib see olla tõhusam kui helistada iga väärtuse jaoks mitu korda getValue ().
2. Andmete otsimine: kui `getAllValues ()` toob vajadusest rohkem andmeid, võib see suurenenud andmeedastuse ja töötlemise tõttu olla aeglasem. Kui aga vajate niikuinii kõiki väärtusi, on tõenäoliselt tõhusam neid kõiki korraga hankida, mitte eraldi.
3. vahemällu salvestamine ja optimeerimine: mõned süsteemid võivad tulemusi vahemälu vahemälu vahemälu () `getValue ()` optimeerida, mis võib leevendada jõudluse erinevusi. Kui aga `getAllValues ()` on optimeeritud hulgi otsimiseks, võib see siiski pakkuda paremat jõudlust.
Konkreetsed stsenaariumid
- Google Appsi skript: Google Appsi skriptis soovitatakse `getValues ()` (sarnaselt `getAllValues ()`) kasutamine mitme "getValue ()` kõnede korral, kuna see vähendab Google'i lehtede API -ga interaktsioonide arvu, mis võib jõudlust märkimisväärselt parandada [3].
- Peegeldus ja omandile juurdepääs: .NET -i peegelduses võivad sellised meetodid nagu `getProperties ()` peegelduse enda üldkulude tõttu olla aeglane. Kuid vahemällu salvestamise tulemused võivad jõudlust dramaatiliselt parandada [1] [7].
- Servicenow: Servicenow'is on `getValue ()` üldiselt kiirem kui `getDisplayValue ()`, kuna see hangib toore väärtuse ilma täiendava töötlemiseta [5].
Järeldus
Valik `getAllValues ()` ja `getValue ()` vahel peaksid põhinema teie rakenduse konkreetsetel nõuetel ja süsteemi jõudlusomadustel. Kui vajate kõiki väärtusi ja saate neid tõhusalt hankida koos `getAllValues ()` abil, on see tõenäoliselt parem valik. Kui teil on vaja ainult väärtuste alamhulka või kui teie kasutusjuhtumi jaoks optimeeritud on optimeeritud `getValue (), võib see olla eelistatav. Selle otsuse tegemisel kaaluge alati selliseid tegureid nagu andmete suurus, võrgu latentsus ja süsteemispetsiifilised optimeerimised.
Tsitaadid:]
]
]
]
]
]
[7] http://www.mattwarren.org/2016/12/14/why-is-reflection-slow/
[8] https://www.ag-grid.com/angular-data-grid/component-cell-renderer/
]