【发布时间】:2017-05-05 07:08:22
【问题描述】:
这是我的问题: 我有两个类,基本继承:
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);
}
...
}
现在: - Foo1 类通常从两个构造函数创建, - Foo2 类通常从 2 个参数构造函数创建,但在 3 个参数构造函数的情况下,它创建的时间明显更长,例如:
6k Foo1 和 6k Foo2 的创建(和其他工作),使用 2 参数构造函数需要 2 分钟,同样的事情,6k 和 6k 使用 3 参数构造函数需要大约 1 小时。
我 100% 确定这部分会减慢我的程序,但我绝对不知道为什么......有什么想法吗?
【问题讨论】:
-
很好地展示了基准代码。
-
创建 6k 个实例不会花费太多,您是否尝试使用分析器?事实上,我们希望看到测试代码和运行时设置(堆大小)
-
我刚刚通过创建两个类的 60k 实例来测试您的代码,它会在半秒内终止……而且我正在使用在线编译器!你在开发什么系统?
-
" 我已经测量了每个操作的时间,我已经评论了这个特定的构造函数等" 那么从该特定部分创建一个Minimal, Complete, and Verifiable example 应该很容易代码在这里发布...
-
也许检查“其他正在发生的事情”?
标签: java inheritance subclass superclass