【问题标题】:Running caliper commandline运行 caliper 命令行
【发布时间】:2014-02-04 08:14:04
【问题描述】:

好的,卡尺又出现了一些问题。

我现在在 Linux 上运行,尝试使用 beta 快照。我正在尝试仅使用 jar 通过命令行运行 Google 的卡尺。 (测试版快照)

没有可以访问这台机器上的 maven,安装它是不可能的。我只想使用一个罐子,也许一旦它起作用了,我就可以编写一个脚本或其他东西。

这是我正在做的:

1。使用小示例 Benchmark:

import com.google.caliper.Benchmark;

public class Tutorial {

  public static class Benchmark1 {
    @Benchmark void timeNanoTime(int reps) {
      for (int i = 0; i < reps; i++) {
        System.nanoTime();
      }
    }
  }
}

2。用javac -cp caliper-1.0-beta-SNAPSHOT-all.jar Tutorial.java编译

3。 (尝试)使用

运行

java -cp caliper-1.0-beta-SNAPSHOT-all.jar com.google.caliper.runner.CaliperMain Tutorial.Benchmark1,接收消息Benchmark class not found: Tutorial.Benchmark1

我试图从各种来源的点点滴滴的信息中解决这个问题,但我真的很喜欢这个。如有任何意见,我将不胜感激。

【问题讨论】:

    标签: java caliper


    【解决方案1】:

    我相信你真的不需要 maven,这应该可以。

    找不到您自己的类,我认为这是您的类路径的问题。因为它们通常对嵌套类有更多问题,请尝试简单

    java -cp caliper-1.0-beta-SNAPSHOT-all.jar com.google.caliper.runner.CaliperMain Tutorial
    

    如果消息更改为“类不包含基准”之类的内容,那么您将了解更多信息。如果您坚持使用嵌套类,您可能需要调用Tutorial$Benchmark1(不太可能,但可能;java 类命名有问题)。

    请也试试

    java -cp caliper-1.0-beta-SNAPSHOT-all.jar Tutorial.Benchmark1
    

    查看您的类是否位于类路径中(消息应更改为“无主方法”之类的内容)。

    另见this older post

    【讨论】:

    • 我已经尝试过教程的变体(Tutorial$Benchmark1.class 等),但它们都不起作用。我也尝试过取消嵌套类。作为记录,jar 和编译的类共享一个目录。第二个命令导致“找不到主类”。我不明白为什么教程显然是不可见的......它只在罐子里看吗?如何确保它在类路径中?
    • 其实,明白了。你是对的,这是一个类路径问题。结束了 export CLASSPATH=/path/to/jar:. 并从包含 .class 文件的目录中运行 java com.google.caliper.runner.CaliperMain Tutorial ......它发现类很好。请注意,它仍然无法工作,因为它在没有输出的情况下崩溃,但在技术上它正在运行。
    • @KristineRichard:根本没有输出?那很奇怪。也许-v 可以帮助,不知道。我找不到您正在使用的教程,所以我无法尝试。也许您可以创建一个SSCCE 的 ZIP 文件形式?
    • 好吧,不是“根本没有”(抱歉),但在下载并重建最新版本后,我实际上得到了一些结果——我认为这个问题已经在一月份得到解决。在分配测量期间存在崩溃问题,但运行时测试到目前为止工作正常,这对我来说已经足够了。我不再受阻,我提交了一个问题:其他崩溃。
    猜你喜欢
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 2018-07-18
    • 2017-05-05
    • 2013-04-11
    • 2020-07-12
    • 2015-04-18
    相关资源
    最近更新 更多