在eclipse中退出之前的输出/日志变量值

时间:2010-12-07 03:10:47

标签: java eclipse eclipse-plugin

我需要知道在我在进程终止之前,eclipse是否可以向log或console输出值。

假设我有一种方法可以做到这一点:

 long cnt = 0;
 while(true)
      {
        cnt ++;
      }

我会点击运行它会增加它然后我会点击[在eclipse运行选项中]终止程序。在它退出之前我想让eclipse输出/记录cnt的值。

如果没有可用的至少eclipse可以记录/输出值说每分钟或几秒..所以最后我只会在一分钟范围内的值。

我正在尝试对某些内容进行基准测试,并且我想知道在运行测试之前我的硬件速度有多快。因此,我不希望程序中的任何条件语句等减慢速度。

任何指针?

由于

3 个答案:

答案 0 :(得分:1)

不,当JVM终止时,您无法打印任何值。

为了经常打印价值,您可以添加以下内容:

long l = System.currentTimeMillis();
long cnt = 0;
while (true) {
  cnt++;
  if((System.currentTimeMillis()-l) > 2000L) {
    l = System.currentTimeMillis();
    System.err.println(cnt);
  }
}

答案 1 :(得分:0)

实现这一目标的一种方法 - 与Eclipse实际上没有多大关系 - 是在代码的运行时添加ShutdownHooklink)。关闭钩子的基本目的是为应用程序提供一种机制,以便在JVM退出时执行一些清理操作。

但是,事先警告您,这不是一种强烈推荐的做事方式,但只应用于执行低风险操作,这不会影响应用程序再次启动时的整体神圣性。这是因为无法保证操作系统允许JVM进程退出多长时间。

在你的情况下,我认为你可以继续使用它,因为打印变量的值不应该花费太多时间。

答案 2 :(得分:0)

Eclipse在点击大红色终止按钮时不会调用shutdownHooks: https://bugs.eclipse.org/bugs/show_bug.cgi?id=38016

设计代码不需要关闭钩子,如果它是一个问题。