远程测量经过的时间

时间:2011-12-22 16:41:58

标签: network-programming timing

我有一个程序来衡量学生执行任务所需的时间。 该程序连接到互联网,最低时间的学生在网站上获得奖品。

鉴于PC可以不正确地测量时间(我已经看到它发生)或者学生可以预加载共享库来拦截操作系统调用并给出虚假时间,因此需要在服务器端执行时间。

目前我的逻辑是这样的:

  1. 客户端指示服务器启动。
  2. 服务器记录时间并将ACK发送回客户端。
  3. 客户端在收到ACK后启动任务。
  4. 客户端完成任务并向服务器发送通知。
  5. 服务器记录时间并计算已用时间。
  6. 问题是,这包括从服务器发送ACK到客户端收到ACK的时间+客户端完成到服务器收到消息的时间之间的延迟。如果延迟为400毫秒且任务长达6秒,则它占总时间的相当大的百分比。

    当学生或个人电脑可能不值得信任时,有没有更好的方法来衡量任务的时间?

1 个答案:

答案 0 :(得分:0)

某些比赛要求学生或竞争对手将他的二进制程序(或mayb源代码)上传到您控制的服务器中。你可以这样做。特别是,如果是学生代码,您可能需要上传源代码,并限制某些API,例如在chroot环境中运行它。