Bueno, acabo de hablabar en el canal de irc con Yuio sobre el tema de usar o no las STL en la programacion de juegos...
Al final lo de siempre, unos que si, otros que no, que si va lento, que si va rapido... asi que he hecho un test de velocidad de lo que mas uso de las stl, las STRING.
Los resultados son los siguientes:
REPETICIONES FUNCION TIEMPO
10000 strcpy() 288.86ns
10000 stl::= 541.41ns
10000 stcat() 912743.94ns
10000 stl::+= 69568.34ns
10000 strlen() 0.84ns
10000 stl::size() 1.12ns
10000 malloc+free 7528.33ns
10000 new+delete 9852.93ns
Que cada uno saque sus conclusiones.
Si tengo tiempo (y sobre todo ganas :triste:) hare otros test parecidos con listas, vectores y mapas.
Un saludo... udo
PDhecho en mi Athlon/ThunderBird 800mHz. 512ram con Visual C++ 6.0 SP4
Si alguien quiere el codigo para comparar, que lo diga :sonriendo:
Hombre, un dato mas para los amantes de la estadistica XDDDDDD
Tendrias ke hacercete un test del tiempo ke tardas en pelartela con la izq y con la der en diferentes condiciones XDDD
Ala
Uhm... espero que no digas que las STL son más lentas porque los std::string lo sean.
Haz pruebas con las estructuras de datos y no creo que sean más lentas que las que hagas manualmente, pero seguro :lengua: .
std::string es una clase que se usa por comodidad, pero no creo que la uses mucho en un juego, sobre todo en el loop principal...
Hombre, Eurisko, lo de las pajas depende de si me la hago solo pensando en ti, o si me la haces tu como todos los sabados cuando me paso por donde curras (chueca). :guay: Si es contigo, ya sabes que me corro enseguida porque me pones a 100!!! XDD
Grugnorr, yo no digo que sean mas lentas (que evidentemente lo son), lo dicen los datos. Y precisamente el test lo hize con las string, porque es lo que mas uso.
Cuando tenga algo de tiempo, hare pruebas con los vectores, mapas y listas para ver que tal tiran.
Y si, se usan en juegos (comerciales, me refiero). Lo que pasa es que tienen sus detractores y gente que las usa (como pasa con todo). Me gustaria pensar que bien usadas, no tienen porque ser mas lentas que sus versiones hechas a mano (evidentemente NO creo que sean igual o mas rapidas).
"Grugnorr, yo no digo que sean mas lentas (que evidentemente lo son), lo dicen los datos. Y precisamente el test lo hize con las string, porque es lo que mas uso."
.-std::string sí es más lento que manejar char* y funciones, y más typesafe y más cómodo y...
.-Espero que hagas las pruebas pertinentes con las estructuras de datos, porque no creo que tú(ni yo, ni nadie en general) las implemente más rápido.
.-Entiendes como están implementadas las STL, templates y demás?. No usa ningún método virtual ni nada que pueda ralentizar "apreciablemente" el programa.
.-Ya nos contarás...