解决Java运行内存限制的问题,issue #23

- 在judger中增加MEMORY_UNLIMITED的选项,不再限制Java内存分配了。刚刚提交上去 QingdaoU/Judger@2577bec
 - 将内存限制加入到Xmx等参数上,如果Java代码运行超过这个内存限制会导致异常
 - 如果没有异常,就在Python逻辑中比较题目限制的内存与judger获取Java运行时占用的内存(这个内存是准确的,比如a+b一般是20M左右),判断是否是超内存。
This commit is contained in:
virusdefender
2016-03-31 21:30:18 +08:00
parent 078170a761
commit 847c82a500
2 changed files with 26 additions and 6 deletions

View File

@@ -23,7 +23,9 @@ languages = {
"src_name": "Main.java",
"code": 3,
"compile_command": "/usr/bin/javac {src_path} -d {exe_path} -encoding UTF8",
"execute_command": "/usr/bin/java -cp {exe_path} -Djava.security.manager -Djava.security.policy==policy Main",
"execute_command": "/usr/bin/java -cp {exe_path} -Xss1M -XX:MaxPermSize=16M "
"-XX:PermSize=8M -Xms16M -Xmx{max_memory} -Djava.security.manager "
"-Djava.security.policy==policy -Djava.awt.headless=true Main",
"use_sandbox": False
}
}