是否可以在log4j xml配置文件中引用系统环境变量(而不是Java系统属性)?
我希望能够做到这样的事情:
<level value="${env.LOG_LEVEL}" />
Run Code Online (Sandbox Code Playgroud)
并从系统环境变量中获取它,因此我可以避免使用-D参数传递这么多东西.
我正在尝试确定一种存储一组对象的快速方法,每个对象都有一个x和y坐标值,这样我就可以快速检索某个矩形或圆形内的所有对象.对于小型对象集(~100),简单地将它们存储在列表中并通过它迭代的简单方法相对较快.然而,对于更大的群体来说,预计会很慢.我已经尝试将它们存储在一对TreeMaps中,一个在x坐标上排序,一个在y坐标上排序,使用以下代码:
xSubset = objectsByX.subSet( minX, maxX );
ySubset = objectsByY.subSet( minY, maxY );
result.addAll( xSubset );
result.retainAll( ySubset );
Run Code Online (Sandbox Code Playgroud)
这也有效,并且对于较大的对象集更快,但仍然比我想要的慢.部分问题还在于这些对象四处移动,需要插回到此存储中,这意味着将它们从树中删除并重新添加到树/列表中.我不禁想到那里必须有更好的解决方案.我在Java中实现这个,如果它有任何区别,虽然我希望任何解决方案都会以有用的模式/算法的形式出现.
我有一系列性能测试,我想以图表的形式显示.我有一组测试(大约10个),我在一组组件(目前为3)上运行,并获得吞吐量结果.
Y轴将是测试的吞吐量结果,X轴应该具有测试的缩写名称,以及我正在测试的各种组件的结果.因此,对于每个X标签(例如,retrieve20Items,store20Items),在它上面将有3个不同的结果,一个用于我正在测试的三个组件中的每一个,每个组件在图例中进行颜色编码和引用.
这是非数字x轴,我可以使用gnuplot吗?这是在Linux平台上完成的,因此仅限Windows的工具对我不起作用.
我正在开发一个Eclipse插件,需要构建一个可以访问Eclipse中项目类路径中所有内容的类加载器.我有一个IJavaProject,我正在尝试构建一个URL列表以传递给URLClassLoader:
final IClasspathEntry[] resolvedClasspath = javaProject.getResolvedClasspath(true);
for (IClasspathEntry classpathEntry : resolvedClasspath) {
urls.add(classpathEntry.getPath().makeAbsolute().toFile().getCanonicalFile().toURL());
}
Run Code Online (Sandbox Code Playgroud)
但是任何项目依赖项(手动添加,或者来自Maven插件的"Maven Dependencies"容器)都显示为刚刚"file:/ projectName",而不是绝对路径.
其他实验涉及使用javaProject.getAllPackageFragmentRoots(),但这似乎不包括"Maven依赖关系"容器内的项目依赖项.