Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Onko sujuvasti sidosten ja sveitsiläisten/Tiibetin sidosten välillä MVVMCrossissa mitään suorituskykyeroja


Onko sujuvasti sidosten ja sveitsiläisten/Tiibetin sidosten välillä MVVMCrossissa mitään suorituskykyeroja


MVVMCROSS: ssä sekä sujuvia sidoksia että sveitsiläisiä/Tiibet -sidoksia käytetään tietojen sitomiseen, mutta ne eroavat lähestymistavastaan ​​ja käytöstä. Vaikka näiden kahden sidontatyyppien välillä ei ole selkeää tietoa suorituskykyeroista, voimme analysoida niiden ominaisuuksia mahdollisten vaikutusten ymmärtämiseksi:

Fluend Sidokset

Sujuva sidokset ovat C#-pohjainen syntaksi, jonka avulla kehittäjät voivat luoda sidoksia koodiin. Tämä lähestymistapa on erityisen hyödyllinen iOS: n ja OSX: n kaltaisilla alustoilla, joissa XML-asettelutiedostot eivät ole helposti ihmisen edistyviä. Fluent Sidokset tarjoavat tyyppisen tavan sitoa ominaisuuksia, jotka voivat auttaa vähentämään ajonaikaisia ​​virheitä kiinnittämällä tyypin epäsuhta käännöshetkellä. Koska ne on kuitenkin määritelty koodissa, ne saattavat vaatia enemmän yleiskustannuksia koodin ylläpidon suhteen verrattuna deklaratiivisiin sidoksiin, kuten Sveitsin/Tiibetin.

Sveitsin/Tiibetin sidokset

Sveitsiläiset ja Tiibetin sidokset ovat deklaratiivisia, mikä tarkoittaa, että ne on määritelty XML- tai merkkijono -muodoissa. Nämä sidokset ovat tiiviimpiä ja ne voidaan helposti upottaa asettelutiedostoihin. Erityisesti Tiibetin sitoutumissyntaksi tarjoaa rikkaamman lausekkeen kielen, jolla on ominaisuudet, kuten funktion kaltainen arvomuuntimen puhelu, monitaidot ja yksinkertainen operaattorin syntaksi. Tämä deklaratiivinen lähestymistapa voi olla tehokkaampi koodin luettavuuden ja ylläpidettävyyden kannalta, koska sidokset ovat selvästi näkyvissä asettelutiedostoissa.

Suorituskyvyn näkökohdat

Vaikka sujuvien ja sveitsiläisten/Tiibetin sidosten välisistä suorituskykyeroista ei ole erityistä tietoa, seuraavat tekijät voivat vaikuttaa suorituskykyyn:

-Käännös-Time vs. Runtime Resolution: Yleisesti ottaen siteet, jotka on ratkaistu käännösaikana (kuten jotkut niiden tyypin turvallisen luonteen vuoksi johtuvien sujuvien sidosten näkökohdat) saattavat tarjota paremman suorituskyvyn verrattuna ajonaikaiseen resoluutioon. MVVMCross -sidokset ratkaistaan ​​kuitenkin tyypillisesti suorituksen aikana.

- Heijastuksen yläosa: Sekä sujuva että sveitsiläinen/Tiibet -sidokset käyttävät heijastuksia todennäköisesti ominaisuuksien nimien ratkaisemiseen. Sujuvalla sidoksella voi kuitenkin olla pieni etu niiden tyyppisen luonteensa vuoksi, mikä mahdollisesti vähentäisi laajan pohdinnan tarvetta suorituksen aikana.

- Sitoutumisilmaisujen monimutkaisuus: Tiibetin sidokset sallivat monimutkaisemmat lausekkeet, jotka voivat mahdollisesti esitellä ylimääräistä yleiskustannuksia näiden lausekkeiden jäsentämisen ja arvioinnin vuoksi. Tämä monimutkaisuus tarjoaa kuitenkin myös tehokkaampia tietojen sitomisominaisuuksia.

Yhteenvetona voidaan todeta, että vaikka MVVMCrossin sujuvasti ja Sveitsin/Tiibetin sidoksia vertaamalla sujuvasti sidoksia ei ole nimenomaisia ​​suorituskyvyn vertailuarvoja, sujuvat sidokset saattavat tarjota pieniä etuja niiden tyypin turvallisesta luonteesta ja mahdollisesta vähenemisestä suorituksen heijastuksessa. Sveitsin/Tiibetin sidosten deklaratiivinen luonne voi kuitenkin parantaa koodin luettavuutta ja ylläpidettävyyttä, mikä voi epäsuorasti vaikuttaa kehityksen tehokkuuteen ja yleiseen sovellusten suorituskykyyn vähentämällä virheitä ja parantamalla koodin laatua. Viime kädessä valinnan näiden sitoutumismenetelmien välillä tulisi perustua projektin erityistarpeisiin, kuten käyttöliittymän monimutkaisuuteen, kohdennettavaan alustaan ​​ja koodipohjaisten ja deklaratiivisten sidosten suosimiseen.

Viittaukset:
[1] http://slodge.blogspot.com/2013/06/tibet-binding.html
[2] https://github.com/mvvmcross/mvvmcross/issues/1342
.
[4] https://blog.ostebaronen.dk/2018/01/mvmcross-binding-target.html
.
[6] https://www.reddit.com/r/businessIntelligence/comments/ky0dq9/is_it_a_best_practice_to_connect_with_views/
[7] https://www.mvvmcross.com/documentation/fundamentals/data-binding
.
[9] https://www.mvvmcross.com/documentation/fundamentals/value-converters
.