【问题标题】:Predicting how long a method takes to run java [closed]预测一个方法运行java需要多长时间[关闭]
【发布时间】:2013-06-25 13:08:52
【问题描述】:

是否可以预测一个方法需要多长时间运行?由于每台机器在性能方面的能力不同,我希望能够预测加载我的游戏需要多长时间,谢谢。

【问题讨论】:

    标签: java performance loading game-engine prediction


    【解决方案1】:

    我猜他需要它来显示进度条。我再次假设他想知道它将运行多长时间,以便他可以根据时间间隔在进度条上显示进度。

    我建议做点别的:

    • 在加载代码中插入一些位置标记
    • 当加载达到这些标记时应通知进度条并显示到目前为止已执行的代码的百分比

    我建议使用Observer pattern

    【讨论】:

      【解决方案2】:
      1. 定义引导应用程序所需的步骤
      2. 测量(在运行时)它们之间的时间 - 您可以使用 Codahale Metrics 甚至 System.currentTimeMillis() 来跟踪开始和结束
      3. 根据步骤之间经过的平均时间计算剩余时间。
      4. 猜测一下 :) 正如您可能已经知道的那样,您不可能 100% 准确(大多数安装人员都没有做到这一点)

      另一种方法是为每个已完成的步骤定义特定百分比。比如:

      • [30%] 初始化界面
      • [50%] 连接到数据库
      • [70%] 执行查询
      • [90%] 解析结果

      【讨论】:

      • 谢谢,我可能会采用这个:[30%] init gui [50%] 连接数据库 [70%] 执行查询 [90%] 解析结果的方法。
      【解决方案3】:

      由于计算机可能在给定时间执行数千个任务,因此无法估计某事的执行时间。

      话虽如此,衡量它也不是不可能的。由于您使用的是 java,请尝试以毫秒为单位测量执行时间:

      System.currentTimeMillis();
      

      然后,您可以随心所欲地处理这些信息。可能使用日志文件会很棒,因此您可以在其上放置有关运行环境的更多信息。

      【讨论】:

        猜你喜欢
        • 2014-04-21
        • 1970-01-01
        • 2012-03-23
        • 1970-01-01
        • 2012-07-06
        • 2011-02-20
        • 2014-03-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多