2010-07-22 26 views
31

Qual è la migliore libreria di raccolte primitive Java? (La maggior parte della memoria e del tempo efficiente)Libreria di raccolte primitive Java più efficiente

ho trovato Trove e FastUtil ad essere quelli più utilizzati, ma non ho trovato molto confronto tra di loro (o tra gli altri)

C'è un confronto disponibili?

+1

Lo farò se non ce n'è uno. :) Ma voglio anche sapere se esiste un altro benchmark di Trove e FastUtil. – Sarmun

+0

probabilmente dovresti includere le collezioni 'java.util' come punto di riferimento, insieme alle raccolte di commons di Apache e raccolte di Google commons/guava dove ci sono equivalenti. I problemi saranno 1) confrontare funzionalità simili con funzionalità simili, 2) misurare l'utilizzo della memoria e 3) evitando le trappole standard che tipicamente causano "micro-benchmark" di Java per fornire risultati fasulli. –

+2

L'utilizzo della memoria di qualsiasi raccolta non primitiva lo rende inutile nel mio caso. E in ogni caso sono anche tutti più lenti, quindi non soddisfano la richiesta. Non ho bisogno di alcuna funzionalità aggiuntiva, semplicemente mappa/set/elenco efficiente, ecc. – Sarmun

risposta

5

Non sono a conoscenza di alcun buon benchmark di riferimento primitivo. Questo sarebbe bello da vedere, oltre che da confrontare con le versioni non primitive (solo per mostrare quanto i generici di Java con autoboxing siano particolarmente efficaci in alcuni casi hardcore).

C'è un punto di riferimento from the Trove itself, penso che il modo più semplice è quello di portarlo a paio di altre biblioteche.

Inoltre - non sono sicuro che hai visto che uno - libreria Cern's Colt aveva liste primitive e matrici anche prima scrigno emerse AFAICR.

13

This comparision tra la raccolta java, tesoro e puledro potrebbe essere utile.

+1

il link è rotto ..unable per aprire in cromo/ie – Edge

+1

Un altro confronto http://java.dzone.com/articles/time-memory-tradeoff-example – leventov

4

Recentemente ho open source Banana, che è un altro libreria Java primitivi collezioni. la differenza rispetto alle altre librerie è che Banana ha la sua gestione della memoria, che sostanzialmente gli consente di implementare qualsiasi struttura di dati dinamica senza creare molti oggetti. La banana è anche molto più piccola di molte altre librerie, il barattolo è di circa 60k al momento.

E 'già supportano un LinkedList, che non credo che qualsiasi altra libreria collezioni primitivi sta fornendo, e ho intenzione di aggiungere un set e un albero più presto.

https://github.com/omry/banana

+0

Hi there, biblioteca stupefacente. Hai già fatto il Set? – bertie

+0

No, ma se vuoi dargli una pugnalata, posso aiutarti. magari passerai del tempo in poche settimane. –

+0

Grazie mille per la tua generosità, ma non ho fretta per questo supporto Set. Non ho notato che questo è per le collezioni primitive, poiché stavo cercando raccolte di oggetti arbitrarie. – bertie

Problemi correlati