PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : java.nio.Buffer - Effizienzproblem


instinct
2009-07-11, 11:40:04
Ich versuche mal mein Problem zu schildern:
Ich kopiere Daten und will diese Daten so effizient wie möglich manipulieren.
Meine Kopiergeschwindigkeit liegt bei etwa 3GB/s. Das Modifizieren hängt natürlich von der Datengröße ab und wird wohl nicht den obigen Wert erreichen, allerdings liegt mein derzeitiger Wert sehr weit entfernt.

Beispieldaten: 256 * 256 * 4 Floats (4 byte pro Float)
Ich gehe momentan vom Worst Case aus und will alle 256 * 256 * 4 Werte einmal überschreiben (Später muss ich wohl nur einen Teil manipulieren).
Ich bekomme die Daten als java.nio.ByteBuffer.

Meine aktuelle Vorgehensweise:
- buffer.asFloatBuffer()
- buffer.clear()
- Den Buffer einmal neu füllen
- buffer.rewind()

Damit erreiche ich sehr schlechte Werte. In C würde ich das Ganze mit memcpy lösen und hätte keinerlei Probleme, aber in Java?

Hat jemand vielleicht eine Idee, wie ich Daten schneller manipulieren kann?