问题标签 [caliper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在 Maven 的测试范围内从 Eclipse 运行 caliper
我在 Eclipse 中有一个 Java 项目,我的src/test
目录中有 JUnit 测试。我还使用 Caliper 微基准向我的测试添加了一个类,我希望能够在 Eclipse 中运行这些测试。
由于 Caliper 代码是测试代码,我已将 Caliper 添加为 Maventest
范围内的依赖项。这使得它在我运行 JUnit 测试时出现在类路径中,但是我看不到在类路径中运行具有测试依赖项的任意类的方法。我尝试做的是为 Java 应用程序添加一个新的运行配置,以为我可以CaliperMain
使用正确的类作为参数启动,但是 Caliper jar 不在类路径上,我看不到如何添加它。
我不想将我的基准代码和依赖项移动到main
范围内,因为它是测试代码!将它移到一个完全独立的项目中似乎严重过度。
java - 是否可以在 main 内部使用 IntelliJ 'run' 命令运行 caliper?
我是 caliper 的新手,我想知道我是否可以创建一个主要方法,然后右键单击并选择使用 IntelliJ 的“运行”?
当我尝试运行上述内容时,出现此错误:
另外,由于我使用的是 IntelliJ,并且我的卡尺是在 maven 中定义的(即测试范围):
我将如何从命令行运行 caliper?
java - ByteBuffer.putLong 使用非本地 ByteOrder 快 2 倍
尽管广泛阅读了 JDK 源代码并检查了内在例程,但我还是无法一概而论。
我正在测试清除 a ByteBuffer
,分配给allocateDirect
using ByteBuffer.putLong(int index, long value)
。根据 JDK 代码,如果缓冲区是“本机字节顺序”,则这会导致单个 8 字节写入,或者字节交换,如果不是,则随后是相同的。
所以我希望本机字节顺序(对我来说是小端)至少与非本机一样快。然而,事实证明,非本机的速度要快约 2 倍。
这是我在 Caliper 0.5x 中的基准:
结果是:
这是一致的。如果我换成putLong
,putFloat
本地订单的速度大约快 4 倍。如果你看看它是如何putLong
工作的,它在非本地情况下做了更多的工作:
请注意,unaligned
在任何一种情况下都是如此。本机和非本机字节顺序之间的唯一区别是Bits.swap
有利于本机情况(小端)。
java - 如何在 Java1.6 中安装证书以便从 Caliper 工具上传工作
我正在使用 Caliper 运行一些基准测试并将结果上传到https://microbenchmarks.appspot.com/
但是,由于 SSL 的证书问题,上传失败(请参阅底部的堆栈跟踪)。
我该如何解决这个问题?
操作系统:Mac OS X Mavericks 10.9 JDK:1.6.0_27-b07-395.jdk
在尝试了其他一些 SO 解决方案后,我在我的 JDK 目录中看到:/Library/Java/JavaVirtualMachines/1.6.0_27-b07-395.jdk/Contents/Home/lib/security
有一个文件 cacerts 实际上是该文件的链接:
/System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts
但是那个文件不存在。
我尝试删除链接并使用假证书创建存储文件,如另一个响应中所述。现在它失败了:
严重:无法上传试用版 c8e684d4-ee41-4366-8334-ae65a9d0626f。考虑手动上传。com.sun.jersey.api.client.ClientHandlerException:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到有效的证书路径请求的目标
java - google caliper 尝试将基准测试结果上传到 microbenchmarks.appspot.com 时出现多个 500 错误
尝试为正在运行的基准测试上传 JSON 结果文件时,我看到了多个HTTP 500
错误。Caliper
日志中充满了与以下类似的异常:
但是,我的帐户下的页面上确实显示了一份报告/runs
,因此它似乎至少可以上传其中的一些。对指定的 URL执行curl POST
任何失败的试验都会导致相同的错误。
有没有其他人遇到过这些错误?我的配置中是否缺少某些内容?
卡尺config.properties
:
卡尺版本:
系统属性:
此外,错误日志建议手动上传失败的结果。但是,我在Microbenchmarks Appspot 页面上看不到任何上传结果的选项。
编辑 1:基准启动命令:
java - caliper 基准测试中的非确定性分配行为
当通过 slf4j 使用时,我正在尝试对两种不同的 log4j 模式布局的性能进行基准测试。我正在使用卡尺(当前 HEAD 版本)。
这是我的基准课程:
当我运行它时,我得到这个错误:
我需要在基准测试中添加一些配置吗?或者我该如何解决这个问题?
java - Google Caliper:无法完成基准测试(工作人员在未生成数据的情况下退出)
当我尝试使用Caliper运行基准方法时,它会在完成任何测量之前退出。我在调试器中确认 Caliper 正在执行基准测试方法两次,当时它正在经历其试运行阶段。但是当它试图运行实验时,它在完成任何事情之前就退出了。
基准测试方法非常简单(虽然它调用了很多其他应用程序代码):
运行 with--verbose
不会产生我可以看到的任何不同的输出。整个输出是:
我在 Windows 7 上运行,使用 JDK 1.7.0_40(以防万一)。我通过调试器运行 Caliper 代码,我看到它在这里退出:
pipeReaderFuture.isDone()
返回假。我不确定为什么。没有写入 stderr 的错误。
java - Caliper test using exec-maven-plugin is saying main method signature isn't valid
I'm trying to get Caliper working with maven, I haven't successfully ran a caliper benchmark test as of yet.
Caliper version: 1.0-beta-1
My benchmark:
My maven pom.xml has:
I ran:
mvn clean install mvn compile -P benchmarks -e -X
java - 如何在maven中引用本地存储库?
我下载了源代码并像这样构建了卡尺:
现在 /target 文件夹有:
现在在我的 spring mvc 应用程序的 pom 文件中,如何引用我刚刚安装的这个本地存储库?
我使用这样的依赖关系引用卡尺:
但根据我的最后一个问题,我被建议从源代码构建以获取尚未发布的更新:Caliper test using exec-maven-plugin is say main method signature is not valid
所以我不确定如何引用我在本地构建并使用 maven 安装的这个卡尺版本。
java - 如何在没有 maven 的情况下使用 Caliper 基准测试版快照?
我被要求使用 Google 的 Caliper 项目来创建一些微基准测试。我非常想使用最新的 beta 快照的注释功能,但是除了一些小例子之外,我很难找到关于如何实际运行这个东西的好文档……有一个视频教程可以指导用户新的 Maven 集成功能,我也被要求不要使用。
现在我只是从他们的一个中剥离了一个小例子,并用我从另一个 SO 问题中收集到的一些其他信息进行了修改:
运行它会告诉我我没有设置大小的默认值。我无法追踪我应该把它放在哪里。
通过注释掉 @Param 行并为 setUp 中的数组声明赋予硬值来完全删除“大小”只会导致它决定“没有要进行的实验”,我想这是有道理的。
如果有任何最新的资源或教程可以指出我做错了什么(可能很多,老实说)我会非常感激。
编辑:
根据一些建议,我已对此进行了更新:
我正在运行 beta 快照并将 Benchmarks 类作为参数传递。我收到以下信息:
它似乎没有检测到任何仪器。我没有传入任何内容,因为它在文档中提到它只是使用默认分配、运行时(这对我的目的来说很好)。
双重编辑:发现了那个问题,愚蠢的错误。一旦我确认它会做一个快速的记录。