Java的子类构造函数执行更长

问题描述:

这里是我的问题: 我有两个班,基本继承:Java的子类构造函数执行更长

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个参数的约束函数需要li可以1小时。

我100%肯定这部分是放慢我的程序,但我absolutley不知道为什么...任何想法?

+0

也许是因为你创建了6k字符串的实例。 long和double是原始类型,而String是对象 –

+0

*“我100%肯定这部分会减慢我的程序”*您是如何测量它的? –

+2

很好地显示基准代码。 – rmuller

我100%肯定,这部分被拖慢我的程序

一个“我相信”的基础上不要优化。

基准你申请profiler确定真正的瓶颈。

+0

@RBT没有什么别的回答的问题的当前状态... –

+0

是真实的,但我觉得你的文章应该是一个评论。您要求OP通过放置一个分析器来获得更多的解释。您提出的使用探查器来衡量问题范围的建议并不是解决OP的问题。 – RBT

+0

@RBT我不是说它是“请求更多信息”(我在评论中这么做),而是作为一个建议。果然,这不是OP可能预期的答案...... –