Tapasztalat, bár a Java-s kódot nem én írtam. Azt egy olyan srác írta, aki állította magáról, hogy tud java-ban programozni. (Hihetőnek tűnt, mert jó volt C++-ban is, és ott azt mondta magáról, hogy még kell tanulnia.)
Mi végeselemes megoldókat, vagy ahhoz kapcsolódó programokat írtunk. A mi megoldónk esetén egyébként 20% különbség jött ki, de a mi esetünk elég speciális volt. Azért írtam 5-10%-ot, mert egy csomó más részén a rendszernek nem volt különbség alapvetően a sebességben. A megoldóban jellemző feladat az az volt, hogy lefoglalsz egy nagy (200MB-tól-sok GB-osig tömböt, majd a benne található mátrix-ot megoldod. Akármelyik megoldási módszert is választod, nagyon sokszor nyúlsz a ramhoz és a pointer-hez és - szerintem - e miatt lesz lassabb java alatt (és persze .net alatt is). Ráadásul a megoldóban is rendesen kell optimalizálni a kódot, amit java esetén nem csak Te magad teszel. Nálunk olyan banális apróságokon is múlt néha a megoldási idő, mint a virtuális függvények hívási overhead-je (normális programoknál gyakorlatilag nem számít). Ilyenkor újra kellett gondolni az osztály felületét a +1-5% teljesítmény érdekében.
Nem szeretnék vitatkozni Veled, mert nincs miről. Mind két rendszernek megvan a helye, alapvetően más helyen játszanak. Ahol nem kritikus szempont ez az 5-10% teljesítmény, vagy kevesebb pénz van fejlesztésre, oda sokkal jobb a java, mert nem kell vele szívni annyit (memory leak, multi platform stb.). De ismerjük el, hogy vannak olyan feladatok, ahol viszont a C/C++ játszik, sokszor beültetett gépi kóddal, 2-5x több munkaórával az adott kódon.
--
http://www.naszta.hu