2017-06-22 4 views
-1

Ich bin neugierig, ob der mappedbytebuffer direkten Speicher in Java belegt? Wie in mentiond hereJava-Hat mappedbytebuffer direkten Speicher belegt?

Ein direkter Bytepuffer auch durch Abbilden eines Bereichs einer Datei direkt in den Speicher angelegt werden kann

Wenn ich eine Datei in den Speicher der Karte, sollte die Direktspeicher verwendet werden. Aber ich habe ein Programm mit JVM param "-XX: MaxDirectMemorySize = 200MB" gestartet und dann versucht, eine Datei von 1GB in den Speicher zu mappen, es hat funktioniert. Außerdem habe ich zuerst einen directByteBuffer mit 200MB zugewiesen und dann versucht, die Datei von 1GB in den Speicher zu mappen, und es hat immer noch funktioniert! Also, welcher Teil des Speichers belegt bytebuffer belegt?

+0

Was bedeutet das Wort "kann" in diesem Zitat? Deine Frage ist "Tut es"? Das Wort "kann" ist die Antwort: Vielleicht! Könnte sein! Könnte sein! Unbekannte! Hängt davon ab! --- Irgendwelche anderen Wörter, die dir helfen würden, es zu verstehen? – Andreas

+0

Was ist der Sinn, wenn Sie ein MMF verwenden, das größer ist als Ihr Heap? das verhindert den Zweck, die Datei in den Speicher zu verdrahten. – efekctive

Antwort

1

Ich denke, wenn Sie eine größere Datei in kleinen Speicher zuordnen, kann die Instanz mappedbytebuffer eine Region einer Datei zuordnen, die Sie gerade in Speicher verwendet haben, dann die andere Region, die Karte im Speicher wurden ausgetauscht werden SWAP (der virtuelle Speicher auf der Festplatte) von MMU

Verwandte Themen