Igen egyébként és is csináltam már primkó C vs Java benchmarkokat és tényleg meglepő, hogy mennyire jól optimalizál a jre jit compilere. Igazából ritkán tud a c-s megoldás 2x gyorsabb lenni a java-snál, többnyire csak 20-30% a C előnye. Egyetlen kivétel az új objektum példányosítás, ahol a c-ben a malloc több mint 10x gyorsabb a java new-nál. (Object pooling nem is olyan hülyeség, mint aminek elsőre hangzik.)
Ami viszont igazán meglepett, hogy a memóriafoglalás mindössze asszem 8 byte-tal több egy java class példány esetén, mint egy vele azonos attribútumokat tartalmazó c struct esetén.
Szóval a lényeg az, hogy a java alkalmazások nem azért lassabbak a c-seknél, mert a natívra fordított c lényegesen gyorsabb a jit fordítóval run-time fordított java-nál, hanem azért mert java-ban máshogy "szokás" kódolni. Több a kódban a dinamikus példányosítás, gyakran sok interface, sok absztrakciós szint van stb. Persze általában valami framework köti az ember kezét, annak az apiját kell használni, aztán az vagy gyors vagy lassú.
---
Apparently the human mind is not unlike cookie dough.