java代码的在线运行,对其内存限制,时间检测等问题[ga]

基本需求类似[java在线代码编译运行],多个客户都可以各自通过web浏览器输入java代码,
然后点击执行java代码,输出结果。
我是通过(Class thisClass = Class.forName(className,true,ClassLoader.getSystemClassLoader()); 来实现的)
目前比较担心某个用户输入的java代码可能是个死循环(如:while(true){xxxx}),
或者高内存使用(如:大规模的向内存里添加字符串)

这样可能会由于一个用户的代码问题,致使整个jvm宕机。

因此,请问,一个用户在执行java代码时候,可有什么方法,对这段代码的内存的使用率,
或者程序的运行时间,进行限制或者检测?
(如果超过一定内存使用量,或者一定运行时间,就终止运行)

有个在线运行的网站:http://ideone.com/
这里就可以对时间进行检测,超过一分钟就终止。

请问这是怎样检测执行操作的?

整个思路不是很清楚,请高手帮忙解答下,
谢谢。

2个回答

查看jvm进程信息,ps获取进程id,然后查看top -p pid

时间控制,最简单的可以采用超时校验,就是设定运行时间,超过规定时间,直接退出一个循环,结束执行。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐