Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何实现在线判断机器人?(例如TopCoder、Uva、ACM-ICPC)_C++_Python_Algorithm_Sandbox - Fatal编程技术网

C++ 如何实现在线判断机器人?(例如TopCoder、Uva、ACM-ICPC)

C++ 如何实现在线判断机器人?(例如TopCoder、Uva、ACM-ICPC),c++,python,algorithm,sandbox,C++,Python,Algorithm,Sandbox,有许多在线评判网站可以通过比较其输出与正确答案来验证您的程序。此外,他们还会检查运行时间和内存使用情况,以确保您的程序不会超过最大限制 因此,我的问题是,由于一些在线评委网站同时运行多个测试程序,它们如何实现性能隔离?它们如何在另一时间运行的同一程序上实现相同的运行时间 我认为有些孤立的环境过程,如“VMware”或“Sandbox”,总是返回相同的结果。这是正确的吗?关于如何实现这些东西有什么想法吗 当前解决方案 我用它来装沙箱。这是一种非常简单和最安全的方法。可能过于简单,这取决于您的其他需

有许多在线评判网站可以通过比较其输出与正确答案来验证您的程序。此外,他们还会检查运行时间和内存使用情况,以确保您的程序不会超过最大限制

因此,我的问题是,由于一些在线评委网站同时运行多个测试程序,它们如何实现性能隔离?它们如何在另一时间运行的同一程序上实现相同的运行时间

我认为有些孤立的环境过程,如“VMware”或“Sandbox”,总是返回相同的结果。这是正确的吗?关于如何实现这些东西有什么想法吗

当前解决方案


我用它来装沙箱。这是一种非常简单和最安全的方法。

可能过于简单,这取决于您的其他需求,这些需求不在问题中,但是

如果算法是CPU受限的,那么简单地在一个隔离的VM(或FreeBSD监狱,或…)中运行它并使用内置的操作系统工具将是最简单的


(可以像在unix中使用“time”命令并用“limit”设置内存限制一样简单。)

不幸的是,即使在专用机器上与虚拟机上,也很难保证一致的运行时间。如果您确实想要实现前面提到的类似的东西,那么您可能希望VM保留所有将运行沙盒的代码。通常情况下,您不希望为每个核心提供超过两个请求的服务,所以我想说,对于内存和cpu受限的算法,机器的每个物理核心最多使用2个VM


虽然我只能推测为什么不尝试每个核心不同数量的虚拟机,看看它的性能如何。尝试将SLO合规率定为90%或更高(如果你真的需要的话,可以定为98-99),这样你就没事了。同样,很难准确地告诉您该做什么,因为很多这些事情都需要测试它,看看它是如何工作的。

我的服务目标是。它总是返回相同的运行时间和相同的内存使用率。我会找到你说的一些虚拟机。谢谢Joachim。你的问题几乎是邀请参加一个开放式讨论。试着把它分解成几个更具体的问题。见: