2010-07-22 17 views
31

¿Cuál es la mejor biblioteca de colecciones primitivas de Java? (Más memoria y tiempo eficiente)Biblioteca de colecciones primitivas de Java más eficiente

que he encontrado Trove y FastUtil sean los más utilizados, pero no he encontrado mucho la comparación entre ellos (o entre otros)

¿Hay alguna comparación disponibles?

+1

Lo haré si no hay uno. :) Pero también quiero saber si hay alguna otra que valga la evaluación comparativa de Trove y FastUtil. – Sarmun

+0

probablemente debería incluir colecciones 'java.util' como punto de referencia, junto con las colecciones de Apache commons y Google commons collections/guava donde hay equivalentes. Los problemas van a ser 1) comparar la funcionalidad similar con la funcionalidad similar, 2) medir el uso de la memoria y 3) evitar las trampas estándar que normalmente provocan que los "micro-puntos de referencia" de Java den resultados falsos. –

+2

El uso de memoria de cualquier colección no primitiva lo hace inútil en mi caso. Y en cualquier caso, ciertamente son todos más lentos, por lo que no se ajustan a la solicitud. No necesito ninguna funcionalidad adicional, simplemente un mapa/conjunto/lista eficiente. – Sarmun

Respuesta

5

No conozco ningún buen benchmark marco primitivo. Este sería bueno de ver, así como también compararlo con versiones no primitivas (solo para mostrar cómo los genéricos de Java con Autoboxing absorben en algunos casos extremos).

Hay un punto de referencia from the Trove itself, creo que la manera más directa es portarlo a un par de otras bibliotecas.

Además, no estoy seguro de haber visto que la biblioteca Cern's Colt tenía listas primitivas y matrices incluso antes de que emergiera la AFAICR.

13

This comparision entre java collection, trove and colt puede ser útil.

+1

el enlace está roto .. no se puede abrir en chrome/ie – Edge

+1

Otra comparación http://java.dzone.com/articles/time-memory-tradeoff-example – leventov

4

Recientemente abrí Banana de origen, que es otra biblioteca de colecciones primitivas de Java. la diferencia con otras bibliotecas es que Banana tiene su propia administración de memoria, que básicamente le permite implementar cualquier estructura de datos dinámica sin crear muchos objetos. El plátano es también mucho más pequeño que muchas de las otras bibliotecas, jar tiene alrededor de 60k en este momento.

Ya admite una LinkedList, que no creo que esté proporcionando ninguna otra colección de colecciones primitivas, y planeo agregar pronto un Set y un Tree.

https://github.com/omry/banana

+0

Hola, increíble biblioteca. Ya has hecho el Set? – bertie

+0

No, pero si quieres darle una puñalada, puedo ayudarte. tal vez incluso pasar algo de tiempo en él en unas pocas semanas. –

+0

Muchas gracias por su generosidad, pero no tengo prisa por este soporte de Conjunto. No me di cuenta de que esto es para colecciones primitivas, ya que estaba buscando colecciones de objetos arbitrarios. – bertie

Cuestiones relacionadas