Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Wer's selbst testen will und ggf. nicht genug Speicher hat: Einfach die "count" Variable ein wenig runterschrauben...
Creating map: 43ms
Adding key: 0
Adding key: 1000000
Adding key: 2000000
Adding key: 3000000
Adding key: 4000000
Adding key: 5000000
Adding key: 6000000
Adding key: 7000000
Adding key: 8000000
Filling map takes 10701ms
Start writing...
done writing.
File has size: 216000016
Writing takes 811 ms
Write-Speed: 266.3378742293465 mb/sec
Start reading + filling map...
map has size: 9000000
Exception in thread "Thread-4" java.nio.BufferUnderflowException
at java.nio.Buffer.nextGetIndex(Unknown Source)
at java.nio.HeapByteBuffer.getLong(Unknown Source)
at Java7FileAioTest.readSet(Java7FileAioTest.java:244)
at Java7FileAioTest.access$1(Java7FileAioTest.java:239)
at Java7FileAioTest$2.completed(Java7FileAioTest.java:51)
at Java7FileAioTest$2.completed(Java7FileAioTest.java:1)
at sun.nio.ch.Invoker.invokeUnchecked(Unknown Source)
at sun.nio.ch.Invoker.invokeUnchecked(Unknown Source)
at sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask.completed(Unknown Source)
at sun.nio.ch.Iocp$EventHandlerTask.run(Unknown Source)
at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
1. Warum muss man nach jeden Durchlauf die HashMap.dat wieder löschen, da ansonsten diese Exception hier fliegt:
2. Warum liegt bei mir die beste Schreibgeschwindigkeit um die 208 Mb/s bei etwa 7 000 000 Einträgen? Weniger und mehr Einträge geben eine schlechtere. Inwiefern hängt das mit den Cache zusammen?
3. Wow!!! Eine Schreibgeschwindigkeit von 208 Mb/s!!! CrystelDiskMark und normales Kopieren mit den Windows-Explorer erreichen in etwa 150 Mb/s!!!
Beim zweiten Start werden die Daten einfach angehängt, aber das programm geht davon aus dass dem nicht so ist.
Mein Test schreibt 1Mio Einträge á 12bytes pro Schreibaktion. macht rund 1,2MB Blockgröße. Evtl. benutzt Windows und dein Benchmark eine andere Blockgröße?
Und was will uns das Ergebnis dann sagen? Dass es auf furchtbar langsamen/alten Maschinen langsamer geht und auf super schnellen ggf. schneller? Das wissen wir mittlerweile.
Interessant wird's erst, wenn du bei gleichen Vorrauseetzungen und Parametrisierung mit einer anderen Implementierung auf der gleichen Maschine mehr hin bekommst wie mit AIO...