[Modelinterpreter] EMF speed
kmate at caesar.elte.hu
kmate at caesar.elte.hu
Mon Jan 26 22:23:30 CET 2015
Sziasztok!
Gyanús volt nekem ez az eltérés, ezért megmértem én is.
Elsőre ilyesmik jöttek ki a saját, linuxos gépemen jdk1.8_25-el:
Phase:Java:EMF:Slowdown
GEN:368:48056:130.58695652173913
M2M:4426:12024:2.7166741979213738
M2T:391:437:1.1176470588235294
OUT:622:362:0.5819935691318328
Sok futtatás után elkezdtem gyanakodni, hogy az első mérés nem jó,
mert nagyon fluktuált 300 és 50 között az első sor végén lévő szorzó.
Aztán megléptem a következőt:
EmfspeedFactory fact = EmfspeedFactory.eINSTANCE;
Ezt beraktam a Main elejébe, az EMF méréseken kívülre. Ez ugyanis
kikényszerít egy csomó inicializációt, amit elég egyszer megtenni, és
felesleges mérni. Így ez jött ki:
GEN:705:3373:4.784397163120567
M2M:3267:7458:2.282828282828283
M2T:428:676:1.5794392523364487
OUT:221:360:1.6289592760180995
Megjegyezném, hogy ezek a szorzó értékek is eléggé változnak: az első
sornál 1.5 és 10 között, a másodiknál 1 és 3 között, a maradék kettő
0.5 és 2 között.
Felemeltem hát az iterációk számát 10-ről 1000-re, és kicsit
stabilabban is mért, a jellemző értékek nálam ilyesmik:
Phase:Java:EMF:Slowdown
GEN:12:46:3.8333333333333335
M2M:440:999:2.2704545454545455
M2T:172:201:1.1686046511627908
OUT:833:547:0.6566626650660264
Bár nem néztem meg teljesen tüzetesen a kódot, ez nem tűnik nagy
eltérésnek egyelőre ahhoz képest, hogy az EMF adhat egy csomó
alapszolgáltatást (pl. notification, modellek közötti hivatkozás),
amit ha manuálisan leimplementálunk, talán mi is leszünk ilyen
lassúak. Talán érdemes ezen vitatkozni egy jót, meg megnézni még
mélyebben a témát. A végére egy mérés 10k iterációval:
Phase:Java:EMF:Slowdown
GEN:3:9:3.0
M2M:354:699:1.9745762711864407
M2T:174:163:0.9367816091954023
OUT:1016:706:0.6948818897637795
Üdv,
Máté
Idézet (Dévai Gergely <deva at caesar.elte.hu>):
>
> Sziasztok!
>
> Az inkrementalis architektura szempontjabol kritikus, hogy mennyire
> gyors az EMF, ezert csinaltam egy kiserletet:
> https://plc.inf.elte.hu/modelinterpreter/trac/browser/experiments/EMFSpeed
>
> Generalok egy 20 allapotu, 20 tranzicioju allapotgepet (pontosabban
> iranyitott grafot), a kovetkezo lepesben tranzitivan lezarom (eleket
> adok hozza), vegul szovegge alakitom, es kiirom a szoveget. Ket
> verzio van: az egyikben egy EMF modell a belso reprezentacio, amit
> generalok es amin a transzformaciokat vegzem, a masik sima Java.
> Az EMF kb. 40-szer lassabb....
>
> / Gergo
>
More information about the Modelinterpreter
mailing list