Ver la Versión Completa : Ejercicios de verano (push/pop al principio o al final del array)
WillyWeb
04/07/18, 13:57:07
Un Taskero ha preguntado a Joao si es más rápido hacer los push/pop al principio o al final del array. Joao ha contestado que "es lo mismo y no debería haber ninguna diferencia".
:pensando:
Tengo mis dudas ... ¿lo comprobamos?
GraphicAdventure
05/07/18, 18:03:39
En recursos necesarios yo diría que más rápido al final.
En eficiencia, con pocos datos es posible que la diferencia sea inapreciable.
En la práctica no entra en juego porque uno añade/quita donde es necesario.
WillyWeb
06/07/18, 10:08:51
En recursos necesarios yo diría que más rápido al final.
En eficiencia, con pocos datos es posible que la diferencia sea inapreciable.
Viendo cómo procesa Tasker los arrays es fácil "intuir" que es mejor añadir al final. Y esa es la cuestión ... ¿realmente es mejor? ¿cuánto mejor?
En una prueba rápida (array de 500 elementos al que he añadido otros 500) he comprobado que es un 35%-40% más lento insertar al principio que añadir al final.
En mi tarea de prueba hablamos de unos 600 mseg de diferencia, y creo que eso no es precisamente inapreciable. :pensando:
En la práctica no entra en juego porque uno añade/quita donde es necesario.
Evidentemente. En determinados casos saber que puede ser mejor añadir al final que insertar al principio no tendrá utilidad práctica, pero en otros es algo que se debería tener en cuenta. Yo al menos lo tengo muy presente.
GraphicAdventure
06/07/18, 15:47:43
...array de 500 elementos al que he añadido otros 500...
Eso no son pocos datos. :D
Me referí a unos 50 máximo.
Sabes bien que para tal cantidad de información es mejor una base de datos.
WillyWeb
06/07/18, 16:06:52
He hecho pruebas con 50, 100 y 500 para verificar si la proporción se mantenía y así es. El 35%-40% no te lo quita nadie.
Y usar una base de datos no siempre es posible. Piensa en un JSON o un XML transformado en un array con el parser correspondiente, como el de AEMET, por poner ejemplos que ya hemos tratado en el foro.
GraphicAdventure
06/07/18, 19:44:53
40% es significativo.
Mejor coger buenas costumbres.
Si los datos tienen un orden, la tendencia es que se añadan al último.
Quitar depende donde esté.
Tu proyecto AEMET de 7 días, creas varios arrays locales.
Tienes que añadir/quitar (push/pop) algo en alguno?
Para extraer información no es necesario modificar.
Por cierto, trabajo muy laborioso e impecable. :thumbup:
Eres un fenómeno.
WillyWeb
06/07/18, 20:45:40
En el proyecto AMET se hacen cientos de "push", pero nos estamos desviando de la cuestión.
La pregunta es clara...
¿Es más rápido hacer los push/pop al principio o al final del array?
...y la respuesta también lo parece...
Es más rápido hacer los "push" al final del array.
Evidentemente una consideración que no tiene sentido si el proyecto no lo permite/requiere o si se usan otras estrategias.
Sobre los "pop" no me puedo pronunciar porque no he hecho pruebas ... ¿algún voluntario? :silbando:
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.