[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