我目前正在尝试在具有4GB RAM的32位Windows计算机上运行大约100,000次测试。我已使用命令-usedefaultlisteners false
禁用了默认侦听器,并且我没有配置任何自定义侦听器/报告器。但是,该套件因以下堆栈跟踪而失败:
Exception in thread "pool-2-thread-5" Exception in thread "pool-2-thread-7" java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
Exception in thread "pool-2-thread-2" java.lang.OutOfMemoryError: Java heap space
Exception in thread "pool-2-thread-6" java.lang.OutOfMemoryError: Java heap space
Exception in thread "pool-2-thread-4" java.lang.OutOfMemoryError: Java heap space
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
即使没有听众,TestNG配置是否可能需要超过4GB的RAM?
什么过程需要这么多内存?
是否有任何优化/解决方法让这些测试运行?
答案 0 :(得分:1)
你的硬件有4GB Ram的事实并不意味着它全部用于JVM堆。堆大小具有由参数<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<style>
form{
width: 98.5%;
height: 90%;
}
div{
position: absolute;
}
#leftContent, #rightContent{
width: 50%;
height: 80%;
}
#bottomContent{
bottom: 5%;
width: 99%;
height: 10%;
}
textarea{
width: 100%;
height: 100%;
}
#rightContent{
right: 10px;
}
input[type="submit"]{
width: 100%;
height: 100%;
font-weight: bold;
font-size: 76px;
}
</style>
</head>
<body>
<form id="form" onsubmit="return false;">
<div id="leftContent"><textarea id="textarea" class="left" name="insertText">Insert text</textarea></div>
<div id="rightContent"><textarea readonly id="textarea" class="right" name="resultText">Result</textarea></div>
<div id="bottomContent"><input id="submit" type="submit" name="submit" value="Process Text"/></div>
</form>
<script type="text/javascript">
//Short code
function matchRuleShort(str, rule) {
return new RegExp("^" + rule.split("*").join(".*") + "$").test(str);
}
//Form send
$("form").submit(function(e){
var insert = $(".left").val(); //left field
if(insert == "Vul tekst in" || insert == ""){ //Check if inserted text
$(".right").html("Please change the text!");
}else{
var result = $("<div>" + insert + "</div>");
result.find('h2')
.replaceWith(function(){ return this.childNodes }); //This removes the entire <h2> tag
var res = result.html();
$(".right").html(res);
//alert(matchRuleShort(insert, '<h2*')); //returns true: h2 tag found
//$(".right").html(result);
}
});
</script>
</body>
</html>
定义的最大值。
在您的情况下,如果有4GB可用,我会尝试使用此选项运行测试:
-Xmx
这将允许堆最多2GB。