Tag: 性能

运行JVM的GC参数是什么?

我还在调查GC调整的问题 (参见前面的问题 ),这涉及到大量的阅读和实验。 Sun Java5 + JVM尝试根据其环境自动选择最佳GC策略和参数,这很好,但我无法弄清楚如何查询正在运行的JVM以找出这些参数是什么。 理想情况下,我想查看VM自动选择的各种GC相关-XX选项的值。 如果我有这个,我可以有一个基线来开始调整。 有人知道从正在运行的VM恢复这些值吗?

Java API中的循环计数器

所有, 在浏览Java API中的一些文件时,我注意到许多实例,其中循环计数器正在递减而不是递增。 即在String类中的for和while循环中。 虽然这可能是微不足道的,但递减计数器而不是增加是否有任何意义?

什么是Boilerplate代码,热门代码和热点?

我知道这些术语用于表现成就。 这一天我正在研究这个问题,并试图从互联网上了解这些,但没有得到任何能够在现实世界发展情景中清楚地呈现这些概念和存在这些问题/概念的例子。 有人可以彻底解释这些术语,示例场景,以及可能使用这些概念和术语的位置。 谢谢。

JavaFx Gui与Swing的性能

我写了两个简单的程序,都绘制了相同的Sierpinski三角形: 一个程序使用swing实现,一个使用javafx。 存在非常显着的性能差异,swing实现持续快得多: (在这个测试案例中:在1秒内摆动.Javafx超过12秒) 我的javafx实现是否可以预料或存在什么问题? Swing实现 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Polygon; import java.awt.image.BufferedImage; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class SimpleSrpnskTriSw { private Triangles triPanel; SimpleSrpnskTriSw(int numberOfLevels){ JFrame frame = new JFrame(“Sierpinski Triangles (swing)”); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); triPanel = new Triangles(); frame.add(triPanel, BorderLayout.CENTER); frame.pack(); frame.setResizable(false); […]

为什么反思慢?

是因为我们应该加载类(例如通过string ),创建实例,然后搜索适当的方法,打包参数,然后只调用方法? 所以大部分时间花在这些操作上而不是对象上的显式方法调用,对吗?

Java的varargs性能

编码我来检查Java的vararg性能。 我写下面的测试代码: public class T { public static void main(String[] args) { int n = 100000000; String s1 = new String(“”); String s2 = new String(“”); String s3 = new String(“”); String s4 = new String(“”); String s5 = new String(“”); long t = System.currentTimeMillis(); for (int i = 0; i < n; i++) { […]

exception有多贵

你知道java中的exception抛出和处理是多么昂贵吗? 我们在团队中就例外的实际成本进行了几次讨论。 有些人认为通过使用例外而导致的性能损失被高估了。 今天我在软件中找到了以下代码: private void doSomething() { try { doSomethingElse(); } catch(DidNotWorkException e) { log(“A Message”); } goOn(); } private void doSomethingElse() { if(isSoAndSo()) { throw new DidNotWorkException(); } goOnAgain(); } 这个表现如何比较 private void doSomething() { doSomethingElse(); goOn(); } private void doSomethingElse() { if(isSoAndSo()) { log(“A Message”); return; } goOnAgain(); } 我不想讨论代码美学或任何东西,它只是关于运行时行为! 你有真实的经验/测量吗?

在64位java中使用long而不是int会有好处

在64位VM中,使用long而不是int会在性能方面做得更好,因为java中的long是64位,因此在64位系统中拉动和处理64位字可能更快。 (我期待很多NO,但我正在寻找详细的解释)。 编辑 :我暗示“在64位系统中拉动和处理64位字可能比在32位字中拉32位字更快”因为我假设在64位系统中,拉32位数据需要你先得到64位位字然后屏蔽前32位。

是什么触发了Java中的完整垃圾回收?

我想知道在Java中触发Full Garbage Collection的确切情况是什么。 显而易见的是: 用完了老一代 耗尽烫发 调用System.gc() 那些导致完整gc的其他病例呢? 尤其: Survivor Space中没有足够的可用空间来复制Eden中的对象。 次要集合无法应对新对象的分配率(不知道如何)。 我正在运行Sun Java 1.6并使用Concurrent Mark-Sweep和ParNew作为新一代。

java Lambda与Anonymous类之间的执行时间差异很大

我对同一个匿名类创建java8 lambda实例的性能感到好奇。 (在win32 java build 1.8.0-ea-b106上执行测量)。 我创建了一个非常简单的示例,并测量java是否在创建lambda表达式时提出了一些new运算符的优化: static final int MEASURES = 1000000; static interface ICallback{ void payload(int[] a); } /** * force creation of anonymous class many times */ static void measureAnonymousClass(){ final int arr[] = {0}; for(int i = 0; i < MEASURES; ++i){ ICallback clb = new ICallback() { @Override public void […]