我不明白JMH结果的得分属性?我也没有在网上找到任何关于它的内容.
谁能告诉我,它是什么?据我所知,比较低的分数更高,但它究竟意味着什么,如何计算?
我有几个JUnit测试,需要一个昂贵的资源(一个WALA类hierachie)的参考,需要大约30秒创建.我想在我的整个测试套件中分享这个参考.
我想到了一个基类中的静态成员,它是用@BeforeClass方法启动的.运行测试后,无论如何都应该确定JVM.
有没有其他方法可以实现这一目标?或任何其他最佳做法?
我正在使用eclipse 4.2发行版并安装了来自springsource的gradle eclipse集成插件.
当我最初尝试使用向导创建一个快速java项目时,我收到以下错误:
Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.
For example, an unrecognized jvm option is used.
Please refer to the user guide chapter on the daemon at C:\devtools\gradle-1.4\docs\userguide\gradle_daemon.html
Please read below process output to find out more:
-----------------------
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program …Run Code Online (Sandbox Code Playgroud) 我遇到了一个我想了解的奇怪问题。如果有人有一个很好的解决方案,但我实际上正在寻找一种理解为什么会发生这种情况:
我写了一个自定义的 Logback 布局。我正在扩展ch.qos.logback.contrib.json.classic.JsonLayout和覆盖addCustomDataToJsonMap. 如果在日志事件参数列表中找到某种类型的参数,我想添加其他属性:
protected void addCustomDataToJsonMap(Map<String, Object> map, ILoggingEvent event) {
if (event.getArgumentArray() == null) {
return;
}
for (Object argument : event.getArgumentArray()) {
System.out.println(argument.getClass().getClassLoader()); // 1
System.out.println(JsonAttribute.class.getClassLoader()); // 2
Run Code Online (Sandbox Code Playgroud)
但是参数列表 (1) 中对象的类和静态引用一 (2) 的类由不同的类加载器加载,如输出所示:
org.springframework.boot.devtools.restart.classloader.RestartClassLoader@618157b2
sun.misc.Launcher$AppClassLoader@18b4aac2
Run Code Online (Sandbox Code Playgroud)
因此,我无法将对象强制转换为不需要的类型并访问其方法。我想到的解决方法是通过 Reflecion 访问那些,但我宁愿使用真正的价值。
我想这只是我的开发环境的问题,但正如第一部分所说,我真的很想了解发生了什么。
编辑:
正如预期的那样:在没有 spring 开发工具的“生产”模式下运行应用程序时,所有类都由同一个类加载器加载。
附录:
此函数的堆栈跟踪:
at xxx.ExtendableJsonLayout.addCustomDataToJsonMap(ExtendableJsonLayout.java:26)
at ch.qos.logback.contrib.json.classic.JsonLayout.toJsonMap(Unknown Source)
at ch.qos.logback.contrib.json.classic.JsonLayout.toJsonMap(Unknown Source)
at ch.qos.logback.contrib.json.JsonLayoutBase.doLayout(Unknown Source)
at ch.qos.logback.core.encoder.LayoutWrappingEncoder.encode(LayoutWrappingEncoder.java:115)
at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:230)
at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102)
at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421) …Run Code Online (Sandbox Code Playgroud)