我有一个程序来衡量学生执行任务所需的时间。 该程序连接到互联网,最低时间的学生在网站上获得奖品。
鉴于PC可以不正确地测量时间(我已经看到它发生)或者学生可以预加载共享库来拦截操作系统调用并给出虚假时间,因此需要在服务器端执行时间。
目前我的逻辑是这样的:
问题是,这包括从服务器发送ACK到客户端收到ACK的时间+客户端完成到服务器收到消息的时间之间的延迟。如果延迟为400毫秒且任务长达6秒,则它占总时间的相当大的百分比。
当学生或个人电脑可能不值得信任时,有没有更好的方法来衡量任务的时间?
答案 0 :(得分:0)
某些比赛要求学生或竞争对手将他的二进制程序(或mayb源代码)上传到您控制的服务器中。你可以这样做。特别是,如果是学生代码,您可能需要上传源代码,并限制某些API,例如在chroot
环境中运行它。