Hallo an Alle,
ich kann mir folgenden Effekt nicht genau erklären. Vielleicht jemand von euch:
Ich habe zwei unterschiedliche Datentypen:
Code:
Also hat der erste Datentyp zwei byte-Felder und der zweite zwei short-Felder.
Wenn ich nun soviel Objekte wie irgend möglich von diesen Typen erzeuge, kommt die
gleiche Anzahl raus.
Soll heissen, obwohl der erste Datentyp doch eigentlich kleiner sein sollte, kann ich
nicht mehr erzeugen. Warum ? Und wie kann ich nun den genauen Bedarf pro Objekt
ermitteln ?
Routine zum maximalen Erzeugen:
Code:
Ich danke für jeden Hinweis.
Mit freundlichem Gruss
Sebastian
Edit Illuvatar: Codetags hinzugefügt!
ich kann mir folgenden Effekt nicht genau erklären. Vielleicht jemand von euch:
Ich habe zwei unterschiedliche Datentypen:
Code:
Code:
// erste Version
public class DataField {
byte value0 = 0;
byte value1 = 0;
DataField pointer0 = null;
DataField pointer1 = null;
DataField next = null;
}
// zweite Version
public class DataField {
short value0 = 0;
short value1 = 0;
DataField pointer0 = null;
DataField pointer1 = null;
DataField next = null;
}
Also hat der erste Datentyp zwei byte-Felder und der zweite zwei short-Felder.
Wenn ich nun soviel Objekte wie irgend möglich von diesen Typen erzeuge, kommt die
gleiche Anzahl raus.
Soll heissen, obwohl der erste Datentyp doch eigentlich kleiner sein sollte, kann ich
nicht mehr erzeugen. Warum ? Und wie kann ich nun den genauen Bedarf pro Objekt
ermitteln ?
Routine zum maximalen Erzeugen:
Code:
Code:
void foobar() {
int count = 0;
DataField root = new DataField();
DataField newField = null;
DataField prevField = root;
while( ++count > 0 ) {
newField = new DataField();
prevField.next = newField;
prevField = newField;
if( ++count % 1000 == 0 ){
System.out.println( "created: " + count );
}
}
}
Ich danke für jeden Hinweis.
Mit freundlichem Gruss
Sebastian
Edit Illuvatar: Codetags hinzugefügt!