System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及编程竞赛,具体为一种用于编程竞赛的计算机程序性能评测方法。
技术介绍
1、编程竞赛的评测主要有三项:程序输入输出须正确一致、程序的内存占用少则优、程序的cpu占用少则优。其中程序的cpu占用属于程序的时间复杂度指标,在同等硬件配置、相同的输入输出内容下,程序的耗时越少意味着程序的算法越优。在常规的编程竞赛中,如noi、csp-j/s等,海选赛的参赛人数多,若评测系统是统一部署在云服务上,采用并发方式对每个选手提交的程序进行评测,则程序获得的cpu资源是动态分配的,程序的cpu占用耗时统计不可信。若评测系统采用单机而且以队列方式处理每个程序,一个程序从编译到执行至少也需要接近500毫秒,等待评测的程序多的情况下,毫无实时性可言。因此需要一种能用于大规模海选赛中实时地对选手提交的程序进行执行性能快速评测的方法。
2、现有常规的做法是放弃评测的实时性,通过移动存储设备拷贝选手的代码到指定的计算机上,评测系统以队列方式处理每个程序,因为每个程序从编译到运行都是对cpu进行独占,从而较为精确地计算出程序的耗时。
3、现有技术存在的缺点:
4、(1)牺牲实时性,大型赛事的结果往往需要一周甚至更久才能公布;
5、(2)不能并发对程序进行评测,则意味着无法做大规模的海选;
6、(3)单机长时间运行评测系统,对软硬件的稳定性和运行环境要求高;
7、(4)因为竞赛所用设备配置需一致,限制了编程竞赛的推广和实施。
技术实现思路
...【技术保护点】
1.一种用于编程竞赛的计算机程序性能评测方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的用于编程竞赛的计算机程序性能评测方法,其特征在于,所述步骤B中所述插桩工具可以使用开源指令执行分析工具进行二次开发获得,其主要任务是监听程序的执行,当CPU执行该程序的二进制指令时候,激活一个中断子程序。
3.根据权利要求1所述的用于编程竞赛的计算机程序性能评测方法,其特征在于,所述步骤C中,可执行文件在每次执行一条二进制指令之前,激活中断子程序,在中断子程序中通过全局变量自增的方式记录执行二进制指令的次数,全局变量是一个长整型变量,初始值为0,CPU每次执行该程序的二进制指令之前,该变量通过自增运算符进行加1操作,当程序执行结束后,其值即为程序的二进制指令执行的总次数。
4.根据权利要求1所述的用于编程竞赛的计算机程序性能评测方法,其特征在于,所述步骤D中,读取本插桩的全局变量count,通过CPU时钟速度进行换算,获得该程序执行的所需耗时,换算公式:
【技术特征摘要】
1.一种用于编程竞赛的计算机程序性能评测方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的用于编程竞赛的计算机程序性能评测方法,其特征在于,所述步骤b中所述插桩工具可以使用开源指令执行分析工具进行二次开发获得,其主要任务是监听程序的执行,当cpu执行该程序的二进制指令时候,激活一个中断子程序。
3.根据权利要求1所述的用于编程竞赛的计算机程序性能评测方法,其特征在于,所述步骤c中,可执行文件在每次执行一条二进制...
【专利技术属性】
技术研发人员:罗杰武,王志懿,马启亮,
申请(专利权)人:长讯通信服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。