Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas võrrelda sujuvate seondumiste jõudlust Šveitsi/Tiibeti seondumise avaldistega MVVMCrossis


Kuidas võrrelda sujuvate seondumiste jõudlust Šveitsi/Tiibeti seondumise avaldistega MVVMCrossis


Võrreldes sujuvate seondumiste jõudlust Šveitsi/Tiibeti seondumise avaldistega MVVMcrossis, tulevad mängu mitmed tegurid. Siin on üksikasjalik jaotus:

Ülevaade köitmistüüpidest

- Sujuvad köited: need on C#-koodis loodud tüüpilised sidumisvaldkonnad. Need on eriti kasulikud sellistes platvormides nagu iOS ja UWP, kus XML -i paigutusfailid pole kergesti redigeeritavad. Sujuvad köited pakuvad selget, tugevalt tüüpi viisi, kuidas siduda mudeli omaduste vaatamiseks vaatamisomadusi, mis võib aidata vähendada käitusaja vigu, püüdes kompileerimise ajal tüüpi ebakõlasid [1] [4].

- Šveitsi/Tiibeti köitmise avaldised: need on stringipõhised sidumisvaldkonnad, mida tavaliselt kasutatakse XML-i paigutusfailides (nt Androidi AXML). Šveitsi köited on paindlikumad ja võimaldavad keerulisi väljendeid nagu ühendus ja tingimuslik loogika. Tiibeti seondumine laiendab seda, toetades täpsemat süntaksi, mis sarnaneb siduvate avaldiste minikeelga [1] [6].

jõudluse võrdlus

Kompileerimisaja vs käitusaja hindamine

- Sujuvad seondumised: kuna sujuvad seondumised on määratletud C#-ga, hinnatakse neid kompileerimisajal. See tähendab, et mis tahes tüüpi vigu või sidumisprobleeme püütakse varakult, parandades potentsiaalselt arengu tõhusust. Tegelik jõudlus käitusajal on aga üldiselt sarnane teiste sidumismeetoditega, kuna sidumise seadistamine teostatakse endiselt käitusajal.

- Šveitsi/Tiibeti köited: neid köiteid hinnatakse käitusajal, kuna need on määratletud kui stringid XML -failides. See tähendab, et sidumisvaldkondades olevad vead avastatakse ainult siis, kui rakendus töötab, mis võib viia aeglasema arendustsükliteni, kui seda pole korralikult testitud. Kuid käitusaja hindamine ei muuda neid oma olemuselt aeglasemaks kui sujuvad seondumised, kui seondumised on üles seatud.

Runtime pea kohal

- Sujuvad köited: sujuvate köidete üldkulud on minimaalsed, kuna need loovad koodis otse vajalikud sidumisobjektid. See otsene lähenemisviis võib olla pisut tõhusam kui stringi avaldiste parsimine käitusajal.

- Šveitsi/Tiibeti köited: need nõuavad XML -i sidumisvaldkondade parsimist käitusajal, mis tutvustab sujuva sidumisega võrreldes mõnda üldkulu. See üldkulud on tavaliselt väikesed, kui tegemist on väga keerukate või arvukate köitetega.

arengu tõhususe ja vigade käitlemine

- Sujuvad köited: tagage parema arengu efektiivsus kompileerimise ajakontrollide tõttu, mis võib kaudselt toimivust parandada, vähendades tööaja sidumisprobleemide silumiseks kulutatud aega.

- Šveitsi/Tiibeti köited: kuigi keerukate väljendite jaoks on paindlikum, vajavad need rohkem käitusajakontrolli ja võivad korralikult testida aeglasema arenguni.

Järeldus

Toore jõudluse osas on nii sujuvad kui ka Šveitsi/Tiibeti köited pärast seadistamist üldiselt võrreldavad. Sujuvad köited pakuvad siiski eeliseid arengu tõhususes ja kompileerimise aja vea tuvastamisel, mis võib kaudselt parandada rakenduse üldist jõudlust, vähendades silumisaega. Šveitsi/Tiibeti köited pakuvad keerukate stsenaariumide korral suuremat paindlikkust, kuid vajavad rohkem tööaja kontrolli. Nende vaheline valik sõltub sageli projekti konkreetsetest vajadustest ja arendaja eelistusest koodipõhiste versus XML-põhiste sidumismääratluste osas.

Tsitaadid:
[1] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
]
]
[4] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[5] https://www.youtube.com/watch?v=3-CT97SBMXM
[6] https://stackoverflow.com/questions/48824612
[7] https://github.com/mvvmcross/mvvmcross/issues/1342
[8] https://github.com/mvvmcross/mvvmcross
[9] https://www.mvvmcross.com/documentation/fundamentals/value-onverters
]
[11] https://crosscuttingconcerns.com/mvvmcross-fluent-databinding