ArrayList zu langsam ???
-
0,6s für ArrayList und 0,8s für LinkedList
-
Zeus schrieb:
0,6s für ArrayList und 0,8s für LinkedList
Geht ja durchaus noch. Weißt Du, wie es aussieht, wenn Du die Datenstrukturen noch ne Größenordnung größer machst? Oder sprengt das schon den Arbeitsspeicher? Dann müsste die LinkedList ihre Vorteile ausspielen können. ...falls sie welche hat.
-
Faktor ArrayList LinkedList
1x 0,6 0,8
2x 2,9 3,8
2,5x 3,6 4,4
3x 4,5 40 (Java hat sich selbst weggeschmießen)P.S. jetzt bleib nur die frage, wie gut ist die ArrayList mit ausspucken vom Element während sie auch noch Elemente hinten eingefügt werden, dazu hab ich zuzeit aber kein Lust zu coden.^^ Faktor bleibt die ArrayList wird wirklich unterschätzt
-
Servus,
naja, ich persönlich habe etwas gegen derartige Benchmarks. Sie sind sehr von der akt. Situatuion abhängig
Das Ablegen in dem Array dauert aber lange. Ist das so und wenn ja gibt es eine alterna..
Lange bezogen auf was?
Sollten dich die Sun-Implementierungen von den Standardkomponenten nicht zufrieden stellen, kannst du dir mal die Apache Collection ansehen. Diese weißen in der Regel eine klizig kleinen Performanceschub auf.Gruß,
Thomas
-
Siassei schrieb:
Servus,
naja, ich persönlich habe etwas gegen derartige Benchmarks. Sie sind sehr von der akt. Situatuion abhängig
Wieso? Diese Benchmarks sind doch sehr aufschlussreich. Nie ein dummer Vektor über den weggelaufen, der immer um 1 Element den Bereich vergrößert. Man sollte blos keine absoluten Aussagen aus diesen ziehen. Besondern, weil ich alles öffne, den Code und die art wie Benchmarke. Ein Benchmark bringt nix, wenn man nur Ergebnisse postet... dann sind Sie nichts sagend
-
Vielen Dank für die vielen Informationen .
Also ich habe ca 900.000 Elemente die der Reihe nache nach in die ArrayList geschriben werden und danach wireder infernt werden. ( Dazwischen passieren noch einige OPerationen). Das ist mein Sachverhalt. Ich habe mal gelesen, dass sich für sehr große Datenmengen ein Vector besser eigent. Stimt das ?
-
Fischkopf2009 schrieb:
Ich habe mal gelesen, dass sich für sehr große Datenmengen ein Vector besser eigent. Stimt das ?
Nein. Ein Vector ist vor allem synchronisiert. Er eignet sich also dann, wenn Du aus mehreren Threads gleichzeitig auf diese Datenstruktur zugreifst. Die Synchronisation kostet allerdings Zeit, so dass in anderen Fällen die ArrayList besser ist. Ich habe in meinem Kopf abgespeichert, dass die ArrayList eine nichtsynchronisierte Version eines Vectors ist. ...aber wie schon gesagt: Ich glaube fast, dass die ArrayList noch ein ganzes Stückchen intelligenter implementiert ist. Man müsste sich das mal im Code angucken.
-
Inzwischen bekomme ich in Netbeans die Warnung, dass Vector veraltet sei ;O
-
UNd was soll man anstelle dann nehmen
-
Abgesehen jetzt davon ob die LinkedList langsamer ist beim reinen Kopieren, hast du sie versucht?
Wenn ja, wie verhält sich dein Programm.
Wenn nein, müsst du uns mehr liefern, evtl Programmcode.
-
Fischkopf2009 schrieb:
UNd was soll man anstelle dann nehmen
Ich könnte mir Collections.synchronizedList() vorstellen.
MfG SideWinder
-
Oh das kenne ich gar nicht
-
Das ist nur gut, wenn dein Programm nebenläufig ist o.O
-
Und wenn nicht, reicht die normale (hier schon mehrfach erwähnte) ArrayList.
-
SG1 schrieb:
Und wenn nicht, reicht die normale (hier schon mehrfach erwähnte) ArrayList.
Die hat der Threadstarter schon im sein Startpost benutzt.
-
Ah, sorry, hatte Dich mit Fischkopf verwechselt.
-
Zeus schrieb:
Das ist nur gut, wenn dein Programm nebenläufig ist o.O
Sollte ja auch ein Ersatz für Vector sein!
MfG SideWinder
-
@Fischkopf
Ich warte auf deine Antwort.
-
Sorry bin gerade auf Arbeit und werde es erst heute abend ( in ca 2 Stunden ) ausprobieren.
Dann melde ichmich noch mal
erst mal danke für alle antworten
-
Zeus schrieb:
Abgesehen jetzt davon ob die LinkedList langsamer ist beim reinen Kopieren, hast du sie versucht?
Es gibt ein paar Anwendungsfälle, in denen eine LinkedList vermutlich schneller ist.
1. Hinzufügen von Elementen an beliebiger Stelle. ...zumindest, wenn man auf "natürliche Weise" zu dieser Stelle kommt und sie nicht über den Index gegeben hat.
2. Entfernen von Elementen an beliebiger Stelle. ...entsprechendes Szenario.
3. Entfernen des ersten Elements.
4. Hinzufügen von Elementen an den Anfang der Datenstruktur.
...usw.