erkosone wrote:
@CicTec, no se si recuerdas el motor de fisica que hice yo en su día, la PhysicsMotionLib, con esa librería que hice yo antes de que tu hicieras tu el wrapper para gemix de la mod_ChipMunk de PRG de bennu conseguia 60 fps en un i5 3.2 GHZ con tan solo 100 objetos con fisica, los calculos ralentizaban enormemente al programa.
Esos mismos calculos realizados en java 8 practicamente no ralentizan absolutamente nada, en vez de 100 objetos puedo tener 100.000 y empiezo a notar ralentización, asi que algo hay que no va bien en Gemix. no sabría decirte que es, pero la velocidad del código no es buena.
No es que no es buena, ya te lo explique una vez cuando te recomiende de hacer la libreria de fisica nativa, es que estas haciendo miles de calculos en coma flotante (que son muy pesados) en un lenguaje interpretado, no puedess esperarte resultados excelsos, eso pasa con cualquier lenguaje interpretado, de contra java 8 como dices de usar utiliza recien tecnicas de JIT en su JVM que convierte el codigo da interpretado a nativo llegando a una velocidad igual o casi a aquella de un programa compilado nativamente en C, ademas es posible que el JIT (compilador run-time) sea capaz en el caso de ciertas operaciones enteras o coma flotante de usar las particulares istrucciones SIMD de las CPU, velocizando enormemente los calculos y de aqui los resultados que ves.
Por otro lado, tratadonse de una comparacion de game engine's o framework's para juegos, no puedes hacer el test basandote sobre un calculo matematico, porque esos programas nacen para hacer juegos, que incluyen grafica, audio, input, networking y otro, por ende debes hacer tests reales de ejemplos como crear un gran numero de procesos/objetos de clases con renderizado, sin renderizado, usando muchos sonidos, etc..., por ejemplo el test que has puesto al principio de tu post que renderiza un numero de procesos en virtual resolution, que valores obtienes comparando tu libreria con Gemix u con otros DIV-Like's ? esto ya es un test mas efectivo, otro test seria probar tu ejemplo de fisica de java (que ejecuta en nativo), contra el mismo ejemplo en Gemix u otro DIV-Like que soporte una libreria de fisica compilada en nativo y de aqui vas a tener un resultado comparativo mas realistico de la potencia efectiva del engine para hacer un juego/ejemplo completo/complejo.
Por ultimo para darte vision realistica te pongo el enlance de una pagina comparativa de calculos matematicos y de ejecucion entre Lua interpretado y LuaJIT (compilado en nativo en run-time):
http://luajit.org/performance_x86.html
Como podras ver probando, la version nativa llega hasta 64x o mas rapido, respecto a la version interpretada, eso demuestra que la version interpretada no es que no sea buena, es el precio que paga para ser interpretada y permitir la portabilidad a otras plataformas, cosa que el nativo no permite (si no se soporta JIT), pero vuelvo a repetir, son datos relativos en un game engine donde hay factores de ejecucion mucho mas importante que influencian la velocidad final.