hier ist mein Problem: ich zwei Klassen haben, grundlegende Vererbung:Java Unterklasse Konstruktor ausgeführt wurde viel länger
public class Foo1 {
long a;
double b;
String c;
Foo1(long a, double b) {
this.a = a;
this.b = b;
}
Foo1(long a, double b, String c) {
this(a, b);
this.c = c;
}
...
}
public class Foo2 extends Foo1 {
Foo2(long a, double b) {
super(a, b);
}
Foo2(long a, double b, String c) {
super(a, b, c);
}
...
}
Und jetzt: - Klasse Foo1 schafft normalerweise von beiden Konstrukteure, - Klasse foo2 schafft normalerweise von 2 argument constructor, aber im Falle von 3 argument constructor erstellt es merklich länger, zum Beispiel:
Erstellung (und andere Sachen gehen) von 6k Foo1 und 6k Foo2, mit 2 Argument Konstruktor dauert 2 min, und gleich Ding, 6k und 6k mit 3 Argument Contractor nimmt li ke 1 Stunde.
Ich bin 100% sicher, dass dieser Teil mein Programm verlangsamt, aber ich habe absolut keine Ahnung warum ... Irgendwelche Ideen?
Vielleicht, weil Sie 6k Instanzen von String erstellen. long und double sind primitive Typen, während String ein Objekt ist. –
* "Ich bin 100% sicher, dass dieser Teil mein Programm verlangsamt" * Wie hast du es gemessen? –
Gut, um den Benchmark-Code zu zeigen. – rmuller