- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2010年CNCERT大赛评选规则说明
2010-4-26
总则
正则表达式匹配算法软件大赛,是通过软件实现的方法,完成正则表达式的匹配工作,测评出在下列各个方面最优秀的软件:实现语法完整、匹配内容正确、预处理与匹配运算速度快、占用内存少。
大赛评选分为初赛评选与复赛评选。初赛只要求参赛人员提交如图二所示TXT文档格式的自测结果,复赛则遵循图三所示的现场测试流程。
正则表达式语法要求
语法要求分为2部分,详见附录1:
基本部分:这部分正则表达式的语法要求必须满足,否则不能达到参赛要求;
选择部分:这部分正则表达式的语法要求,不是必须满足,但是如果支持这些语法,将在功能测试中,加上这部分测试项的得分(详见后面的评比方法)。
正则表达式匹配软件要求
基本要求:参加大赛的软件,能够根据输入的正则表达式规则文件,对数据文件进行模式搜索,并输出满足规则的数据模式。图示如下:
图 一
环境要求:测试环境为单台设备,如下所示:
硬件:AMD 64位 CPU、内存:16G
软件:Linux ,
为了减少I/O操作引起的时间消耗,系统将开辟8G的共享内存,在测评前把数据导入到共享内存中,测评软件可以直接读取该内存数据。
注意:共享内存的ID号为:0x1234。
语法要求:见前面的基本语法、选择语法。
软件命令行参数:命令行参数如下所示:
-r:后续参数为正则表达式规则定义文件名称(格式定义下面);
-d:后续参数为测试用的数据文件名称(格式定义下面);
-s:测试数据大小,是系统提供的测试数据大小,也是共享内存的大小。数字单位为G,例如:-s 4,表示数据长度是:4×1024×1024×1024。
-p:预处理运行。当前的软件运行目的是根据规则文件,生成匹配用的状态树等内部数据,而不是进行任何匹配。如果没有该参数,则是根据预处理输出的数据,进行匹配工作。
-v:用于显示软件的版本信息;
注1:参数-d和-s不能调试出现,是为了调试中的选择方便,可以使用输入文件、也可以使用共享内存。
注2:系统测试分为2步:预处理测试和匹配测试。
软件数据输出格式:软件匹配成功的数据,使用printf语句直接打印在屏幕上,使测试人员直接观察,或者转存到指定文件中。数据格式如下:
偏移量 长度 规则序号
0123456701234567 232 453
0123456701238867 8 32
其中,各个数据项的分割符号,必须是空格(0x20),或者tab符号(0x09)。
偏移量:匹配成功的位置,距离文件开始的偏移量。为了支持大的数据文件(2-8G字节),偏移量应该是一个long int整数;偏移量的数值,从0开始(起始字节的偏移量为0)。
长度:匹配数据的开始位置、到结束位置的字节距离;该数据是一个2字节无符号整数(最大64K);
规则序号:匹配的模式,在规则文件文件中的有效行号。该规则文件中,因包含注释行(可视为无效行),所以,单以包含一个有效规则的数据行排序,得出的规则序号。该数据是一个2字节无符号整数(最大64K);
为了输出结果的自动处理,建议的打印语句如下:
printf(%16lu %6u %6u\n,offset,length,number);
完整输出:软件一次运行的完整输出,应该包含各个运行阶段的时间输出,以便提供软件的详细运行性能。
版本信息:显示软件的单位、版本、版本时间等信息;
开始时间:软件运行的开始时刻;可以是time函数返回的整数值(秒);
读取规则文件结束时间:在完成规则文件的读取后,打印当前时间,其目的是在计算时间时,除掉I/O操作时间;
预处理结束时间:在读取了规则文件后,一般会对规则进行预处理,以便生成便于匹配的内部数据结构。预处理时间也是本次大赛的一个性能点,因此需要打印预处理时间。
匹配结束时间:在所有匹配操作完成后,退出时,打印当前时间,便于计算完整的软件运行时间。
注意1:所有的时间,可以是time函数返回的整数值(秒);
注意2:如果系统还有其他的操作步骤,也必须打印出相应的时间;
注意3:评比系统会通过各个时间,自动计算各个阶段的时间差,作为各个步骤所消耗的时间。
注意4:用户打印的时间数据,只是作为参考,系统还另有独立的检测系统,能够得到具体的运行时间。
完整输出示例如下:
图 二
内存容量:在测评中,将根据系统命令top,记录程序所占
文档评论(0)