Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用eclipse测量简单java程序的性能_Java_Eclipse - Fatal编程技术网

如何使用eclipse测量简单java程序的性能

如何使用eclipse测量简单java程序的性能,java,eclipse,Java,Eclipse,我想确定哪个程序在长期记忆和使用时间方面更好更快。 我遇到了一个问题,我需要声明一个变量。我有两个方法 使用静态变量 使用默认变量 我想测试哪个程序更快,消耗更少的时间和内存 可能差别很小,但我还是想知道哪个是fast程序 我可以用它来衡量简单和复杂程序的性能。你需要的是使用分析器 看这里 祝你好运 你做一个非常简单的基准测试怎么样 long start = System.currentTimeMillis(); // do your operation System.out.println(

我想确定哪个程序在长期记忆和使用时间方面更好更快。 我遇到了一个问题,我需要声明一个变量。我有两个方法

  • 使用静态变量
  • 使用默认变量
  • 我想测试哪个程序更快,消耗更少的时间和内存

    可能差别很小,但我还是想知道哪个是fast程序


    我可以用它来衡量简单和复杂程序的性能。

    你需要的是使用分析器

    看这里


    祝你好运

    你做一个非常简单的基准测试怎么样

    long start = System.currentTimeMillis();
    // do your operation
    System.out.println("operation took " + System.currentTimeMillis() - start + "milliseconds");
    

    这将输出操作所用的时间。通常,如果操作不是那么耗时,它不会检测到任何差异。因此,您应该将要进行基准测试的操作循环10000次。

    您只需在操作前后使用
    System.currentTimeMillis()
    ,即可找到差异

    但是,如果时差太小,您可能无法实现它。(由于操作过程中所花费的时间取决于各种其他因素。)您可能希望使用循环大量(例如100万次)运行同一操作,并找到所花费的平均时间

    或者您可以使用上面@wa11a所述的一些外部分析器

    然而,请注意 静态变量在类加载时加载,在需要时(类加载后)加载普通变量

    因此,静态变量的性能会更好,因为它们已经加载了类并在那里停留了很长时间

    然而,生成静态变量有其自身的缺点。它不能通过使用OOPs的概念来扩展


    静态变量和默认变量有自己的用法。使用适合您的情况的方法。

    可能。答案可能取决于您使用的JVM。或者,如果您正在运行客户端或服务器模式。或者,如果你指的是解释模式或JIT'ed,可能还有你正在使用的操作系统。以及您正在运行的体系结构。我的建议是:不要考虑让变量变为静态是否有意义。@aioobe感谢您的回复和时间。对于静态变量和默认变量,我有一个通用的OS(Window10)和Jvm(JDK1.7.60)。因此,我认为提供的输入不会影响性能。我真的很感谢你们提供任何笔记链接的书,我可以找到更多关于它。我还有一个问题。编译和处理时间取决于(不同的)操作系统。如果ans是肯定的,那么java是如何独立于平台的呢?对于这些简单的事情,请做正确的事情。只有当您知道为什么需要使用静态变量时,才应该使用静态变量!我认为10000不足以确保JVM已预热并且测试中的代码段已(JIT)编译。编写JVM微基准测试。是的——我只是假设,他想要基准测试类似‘static int x=5;针对
    int x=5并且没有一些复杂的计算静态变量在类加载时加载并长时间保持它们的状态。这表明静态变量在处理时间上很好,但它比默认变量长时间增加了编译时间并消耗了更多内存。