2012-07-13 12 views
5

Hallo an alle, Ich habe beobachtet, während Einstellung Heap Größe Menschen die Werte bevorzugen 64,128,256,1024 ... Wenn ich einen Wert zwischen diesen Zahlen (etwa 500) gebe, akzeptiert jvm diesen Wert nicht? Warum sind diese Zahlen wichtig und bevorzugt? Warum wir RAM auch in diesem Muster aufrüsten.JVM Heap Einstellung Muster

Bitte helfen Sie mir zu verstehen.

Vielen Dank im Voraus, Habin

+0

weil voll von Menschen ihre Speichermodule an Bord haben, bevorzugen sein kann von JVM :) –

+1

Runde Zahlen sind hübsch. Soweit RAM-Upgrades, versuchen Sie ein 743 MB-Modul zu finden. –

Antwort

4

JVM einen beliebigen Wert annehmen, kein Problem damit. Die Verwendung von 2^n Werten ist nur eine "Konvention", die Verwendung anderer wird in der Praxis keine negativen Auswirkungen haben.

0

Wenn es den Wert nicht akzeptiert wird, überprüfen Sie, ob Sie ein megabytes (M oder m) oder gigabytes (G oder g) Modifikator nach der Menge setzen.

Beispiel: java -Xms500M -Xmx500M -jar myJavaProgram.jar

Auch in diesem link einen Blick darauf werfen.

2

Nun, wenn man darüber nachdenkt, auf diese Weise:

  • 1 Byte 8 Bits

  • 1 kb = 1024 Bytes

  • 1 mb = 1024 kb

  • 1 gb = 1024 mb

  • ... und so weiter ...

Es ist nicht nur 2^n. Dinge in Bezug auf Speicher in der Computerarbeit sind eng mit der Nummer acht verbunden - die Zahl, die ein Byte in den meisten modernen Computern definiert.

Der Hauptgrund, warum Bits gruppiert sind, besteht darin, Zeichen darzustellen. Wegen der binären Natur aller Rechenvorgänge kommen ideale "Klumpen" von Bits in Zweierpotenzen, d.h. 1, 2, 4, 8, 16, 32.... (im Grunde, weil sie immer in kleinere gleiche Pakete aufgeteilt werden können (es schafft auch Verknüpfungen zum Speichern der Größe, aber das ist eine andere Geschichte)). Offensichtlich können 4 Bits (nybble in einigen Kreisen) uns 2^4 oder 16 einzigartige Zeichen geben. Da die meisten Alphabete größer sind, ist 2^8 (oder 256 Zeichen) eine geeignetere Wahl.

Es existieren Maschinen, die andere Längenbytes (insbesondere 7 oder 9) verwendet haben. Das hat nicht wirklich überlebt, hauptsächlich weil sie nicht so einfach zu manipulieren sind. Sie können eine ungerade Zahl natürlich nicht halbieren, was bedeutet, dass Sie, wenn Sie Bytes teilen, die Länge der Bitfolge verfolgen müssen.

Schließlich ist 8 auch eine bequeme Zahl, viele Leute (Psychologen und dergleichen) behaupten, dass der menschliche Verstand im Allgemeinen nur 7-8 Dinge sofort erinnern kann (ohne Gedächtnistricks zu spielen).

+0

vielen Dank für die wertvollen Informationen. – Habin

0

Warum wir auch RAM in diesem Muster aktualisieren.

Das ist, weil Speicherchips/Karten/in Größen kommen, die eine Leistung von 2 Bytes sind. Und der Hauptgrund dafür ist, dass es die Elektronik einfacher macht. Und einfacher heißt billiger, zuverlässiger und (wahrscheinlich) schneller.

0

Abgesehen von nicht geschriebenen Konventionen hat dies auch Auswirkungen auf die Leistung - abhängig von der Architektur der Maschine.

Zum Beispiel, wenn eine Maschine ternären basiert, wäre es mit einem Heap-Größe auf einen Wert besser arbeiten, die eine Potenz von 3.

Verwandte Themen