Java反射性能

<p>是否使用反射创建一个对象,而不是调用类的构造导致任何显著的性能差异? P&gt;
</p>

96 浏览 1 回复
  gt   反射   优化   一个   性能  

回复

    <p> <strong>是 - 。绝对 STRONG&gt;通过反射仰望一类是,<em>按震级 em&gt;的,更昂贵 P&gt; <p> 对反射文档: p&gt; </p>

    <p>由于反射涉及动态解析的类型,特定Java虚拟机的优化不能进行。因此,反射操作具有比它们的非反光的对应性能较慢,并应在其中被频繁调用的性能敏感的应用的代码段来避免。 P&gt; 块引用&gt; </p><p>下面是一个简单的测试,我在5分钟内砍死了我的机器上,运行Sun JRE 6u10中: p&gt;</p><p>使用这些结果: P&gt;</p><p>记住的查找和实例化被一起做,而且在某些情况下,该查找可重构远,但是这仅仅是一个基本的例子 P&gt; </p><p>即使你只是实例,你仍然可以获得一个性能命中: P&gt;</p><p>再次因人而异。 P&gt; </p><p>是的,这是比较慢。 P&gt; </p><p>但要记住这该死的#1规则 - 不成熟的优化是万恶之源 P&gt; </p><p>(当然,也可以用#1 DRY并列) P&gt; </p><p>我发誓,如果有人在工作中向我走来,问我这个,我会在他们对未来数月的代码非常警惕。 P&gt; </p><p>您千万不要优化,直到你确定你需要它,在那之前,只写良好,可读的代码。 P&gt; </p><p>哦,我不是说任何愚蠢的编写代码。只是想着你都不可能做到最彻底的方法 - 没有复制和粘贴等(仍持谨慎态度的东西,如内部循环,并使用最适合您需要的集合 - 忽略这些不是“未优化”的编程,它的“坏”节目) p&gt; </p><p>这让我乐不可支,当我听到这样的问题,但我忘了,每个人都必须经过自己学习所有的规则,他们真正得到它之前。你会得到它,你已经花了一个人月调试东西的人“优化”了。 P&gt; </p><p>编辑: P&gt; </p><p>这是有趣的事情发生在这个线程。检查#1的答案,它的编译器是多么强大,在优化的事情的例子。测试是完全无效的,因为非反射实例可以完全分解出来。 P&gt; </p><p>课程?永远不要优化,直到你写一个干净,整洁的编码解决方案,并证明它是太慢了。 P&gt;
    </p></blockquote></em></strong></p>

    爱娘

相关提问


友情链接: