草庐IT

jvm-cucumber-parallel-plugin

全部标签

java - 如何将 Spring 集成到 Cucumber 中

我目前正在尝试将Spring集成到我的Cucumber测试中。我有一个自定义的SpringFactory,如下所述:http://www.zsoltfabok.com/blog/2012/01/cucumber-jvm-di/但是代码没有被调用。将工厂与我的测试“联系起来”的最佳方式是什么?[对已删除答案的评论澄清:主要问题是我的测试以Cucumber作为主要运行程序,即@RunWith(Cucumber.class),因此不能在此处使用SpringJUnit4ClassRunner。这在上面的链接中有描述,但没有描述如何读取cucumber.xml。我添加了一个新的SpringFac

java - 如何指示 JVM 尽可能减少内存占用?

我有一个执行5个不同任务的java程序。当我使用-Xmx512m内存参数运行程序时,任务1-4运行正常,但任务5内存不足。当我使用-Xmx1024m运行程序时,所有5个任务都运行良好,但之前使用512m堆运行良好的任务1-4现在几乎用完了所有1024m堆。如果我使用-Xms128m-Xmx1024m,也会发生同样的事情。指示JVM保持低内存利用率(例如任务1-4为512m)并且仅在实际需要时使用更多内存(例如任务5)的内存参数是什么?也许我需要一种比默认设置更频繁地激活垃圾收集器的方法? 最佳答案 这两个参数提示jvm何时需要调整其

Java "too many constants"JVM 错误

我正在开发一个在运行时生成和编译类的应用程序。这有时会产生大量的生成代码。在我们的一个测试用例中,我从JVM收到一个错误:TestClass.java:83865:toomanyconstants就是这个。我看过其他关于类似错误的报告,但在那些情况下,错误消息提示常量池。但在这种情况下它不会。如果这意味着达到了JVM常量池的限制,这意味着什么?我的意思是,就Java代码而言,这些常量是什么样的?类方法?字段?文字?我没有静态或final方法,也没有字段。你能给我一些线索吗?编辑:将代码拆分为多个类已经在计划中。虽然不是因为这个确切的原因。我知道常量池的局限性,但我的疑问正是要进入的内容

【JVM类加载】类的加载,连接与初始化

类加载在java代码中,类型的加载,连接与初始化过程都是在程序运行期间完成的(类class文件信息在编译期间已经确定好)。提供了更大的灵活性,增加了更多的可能性。类加载器java虚拟机与程序的生命周期:在如下几种情况下,java虚拟机将结束生命周期:执行System.exit()方法程序正常执行结束程序在执行过程中遇到了异常或错误向上抛出异常抛到main入口程序终止由于操作系统出现错误而导致java虚拟机进程终止类的加载流程三部分加载:查找并加载类的二进制数据连接:验证:确保被加载的类的正确性(字节码是否符合JVM的规范)准备:为类的静态变量分配内存,并将其初始化值设置为默认值如publics

java - 为什么 JVM 不在 Windows x86 上发出预取指令

如标题所述,为什么OpenJDKJVM不在Windowsx86上发出预取指令?请参阅OpenJDKMercurial@http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/c49dcaf78a65/src/os_cpu/windows_x86/vm/prefetch_windows_x86.inline.hppinlinevoidPrefetch::read(void*loc,intxinterval){}inlinevoidPrefetch::write(void*loc,intxinterval){}没有评论,除​​了源代码之外我没

java - 如何使用 maven-compiler-plugin 配置 Lombok?

我在项目的maven中有一个根模块和子模块。我正在尝试使用Lombok。我已经添加了org.projectlomboklombok1.16.12provided根pom.xml。在子模块中,我有一个带有Lombok注释的类。当我尝试构建项目时,我得到了很多cannotfindsymbol我试图调用getter和setter的地方。我尝试在根pom和子pom中以及delombok中使用具有相同版本(1.16.12)的lombok-maven-plugin并将我的注释类移动到src/main/lombok,我已经浏览了SO中几乎所有的问题,尝试了所有的变体,但没有成功。我正在使用3.6.1

java - 为高响应服务器应用程序调整 JVM (GC)

我在Linux64位上运行一个应用服务器,它有8个核心CPU和6GB内存。服务器必须高度响应。经过一些检查,我发现服务器上运行的应用程序创建了相当大量的短生命对象,只有大约200~400MB的长生命对象(只要没有内存泄漏)看完http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html我使用这些JVM选项-server-Xms2g-Xmx2g-XX:MaxPermSize=256m-XX:NewRatio=1-XX:+UseConcMarkSweepGC结果:minorGC耗时0.01~0.02秒,majorGC

java - 在同一个 JVM 上设置多个信任库

我有一个在weblogic服务器上运行的Java应用程序。该应用程序有两个不同的模块,它们使用SSL连接到外部Web服务-比如说模块A和模块B。模块A-基于Axis构建-使用信任库AMoudleB-基于Spring-ws构建-使用信任库B。模块A已存在。正在引入模块B。我需要能够根据正在调用的模块在JVM中动态设置信任库。由于某些限制,我没有选择权-创建自定义key管理器。-使用一个信任库我尝试使用System.setPropertyim模块B代码库来设置信任库。但是,它仅在首先调用模块B时才有效。例如-说我重新启动了JVM然后我调用模块A-它在JVM中设置了它自己的信任库然后我调用模

java - 从命令行在 Maven 中设置 cucumber-jvm 选项

我正在尝试为Cucumber设置“名称”选项,以便能够运行特定功能或场景。我已经输入了这个,mvntest-DCucumber.Options--name="MyFeatureName"但它只是运行了所有功能并且没有给出错误。有什么想法吗? 最佳答案 这是一个snippet来自Cucumber-JVM存储库,了解如何通过传递cucumber选项来运行java-helloworld示例:mvntest-Dcucumber.options="--formatjson-pretty--glueclasspath:cucumber/exam

java - 是什么导致 JVM 进行主要的垃圾收集?

我有一个Java应用程序,它在不同的环境中显示不同的GC行为。在一个环境中,堆使用图是一个缓慢的锯齿形,每10小时左右就会有一次主要GC,只有当堆超过90%满时才会发生。在另一个环境中,JVM每小时按时执行主要GC(此时堆通常在10%到30%之间)。我的问题是,导致JVM决定执行主要GC的因素是什么?很明显,它会在堆快满时进行收集,但还有其他原因在起作用,我猜这与我的应用程序中的每小时计划任务有关(尽管此时内存使用量没有峰值)。我认为GC行为在很大程度上取决于JVM;我正在使用:JavaHotSpot(TM)64位服务器VM1.7.0_21OracleCorporation没有特定的G