Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





usar stl

Iniciado por Alexpi, 27 de Agosto de 2007, 10:03:46 PM

« anterior - próximo »

Alexpi

He estado hablando con un amigo que usa stl, y me ha dicho que es demasiado lenta. En una practica de la uni, usandola para una simple lista tardaba un 30% mas que si hacias el tda lista sin usar la stl.

Es cierto que es tan lenta? pq un 30%... es demasiado para usarla en proyectos y.. ogre3D la usa :S
Juego web www.goldpiece.net

Warchief

Depende. Usar una lista para recorrerla secuencialmente, sí, es "más" lento. Usa mejor un vector. Haz una prueba y verás.

Si además están los flags por defecto de VS2005, también se puede arañar un poco [_SECURE_SCL=0 y otros que no recuerdo; en inet hay info sobre el tema de lentitud en VS2005 debido a los flags esos].

AK47

Nosotros las usamos en nuestro juego y desde luego no van lentas. Por cierto que GameDev.net esta a rebosar de este tema (sale cada dos por tres), y la respuesta es siempre la misma: son lentas si las usas mal, y su rendimiento es cuando menos igual al que puedas implementar tu, sino mejor.

ethernet

Todo el mundo dice que son lentas, pero nadie es capaz de demostrarlo con hechos. Que demuestren que son capaces de implementar todos los contenedores de la STL con los mismos bugs que STL, con la misma versatilidad de STL y con más velocidad.

Hay gente que es muy lista, hacer ese tipo de afirmaciones es muy fácil, es seguro que un contenedor hecho a medida será más rápido, pero si quieres algo general, si mides el tiempo que tardarías en implementar todos los contenedores de STL, un desarrollador sin demasiada capacidad (tiempo + dinero) opta sin pensar por STL.

Lex


Pogacha

Definitivamente las STL son mas lentas que cualquier cosa que hagas directamente (contenedores intrusivos, buckets, pools), pero vale también que esa lentitud no tiene que influir en la performance de una aplicación.
La constante de iteración generalmente no debe ser preocupante, sino la complejidad de los algoritmos. En casos donde un algoritmo ocupe mas del 50% del tiempo de CPU y se requiera bajarlo, en ese caso se pueden usar contenedores especiales, pero segun mi experiencia esto ocurre cada vez menos. Lo que requiere de baja constante se lo suele llevar a hardware y lo que requiere de mucha optimización solo lo pueden hacer compañias grandes.
Saludos!

senior wapo

Lo dejé para luego y al final se me olvidó decir una cosa en este hilo.

Espero que sepáis inglés.

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html#Motivation

AK47

Muy interesante eso de las EASTL. ¿Sabes si hay alguna propuesta para que lo liberen?

Aún así yo insisto en que usamos las STL en nuestro juego y no suponen (por ahora claro) ningún problema en rendimiento ni memoria.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.