[发明专利]一种用于程序测试的数据流记录方法和数据流记录系统在审
申请号: | 201810002249.4 | 申请日: | 2018-01-02 |
公开(公告)号: | CN108563503A | 公开(公告)日: | 2018-09-21 |
发明(设计)人: | 李雅明 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F11/36 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 详细信息 二进制文件 缓存 数据流记录 程序测试 缓存区 解码 可读 写入 可读存储介质 数据流测试 程序运行 问题定位 形式显示 数据流 申请 调试 测试 保存 记录 分析 帮助 | ||
本申请所提供的一种用于程序测试的数据流记录方法,包括:获取程序运行时的线程个数及编号;根据编号为各线程在内存中划分相应的缓存区;将各线程每次IO操作的详细信息保存至相应的缓存区中;将缓存区中详细信息写入对应的二进制文件;将二进制文件解码以获得详细信息。为每个线程开辟一段缓存,并将线程内的IO操作都先记录到缓存中,再从缓存中将IO操作写入可读的二进制文件中,并对二进制文件进行解码得到线程中IO操作的详细信息,借此实现将IO操作的所有详细信息以可读形式显示出来供测试人员调试使用,为数据流的分析和问题定位提供帮助。本申请还提供一种用于程序测试的数据流测试系统和一种可读存储介质,具有上述有益效果。
技术领域
本申请涉及存储系统领域,特别涉及一种用于程序测试的数据流记录方法和数据流记录系统,以及一种可读存储介质。
背景技术
在分析存储系统问题时,通常关注的是IO操作的时间信息、设备信息、LBA地址信息、数据模型和数据大小、IO的速率和延时、操作是否成功等等这样的信息,这些信息对快速分析和定位问题是必需的。尤其对于程序测试而言,一旦在程序运行时发生错误,需要了解对应的IO操作信息,及时明确错误原因,以便更好的进行相关调试工作。
申请内容
本申请的目的是提供一种用于程序测试的数据流记录方法和数据流记录系统,以及一种可读存储介质,解决现有技术中无法记录线程中所有IO操作详细信息的问题。
为解决上述技术问题,本申请提供一种用于程序测试的数据流记录方法,具体技术方案如下:
获取所述程序运行时的线程个数及编号;
根据所述编号为各线程在内存中划分相应的缓存区;
将所述各线程每次IO操作的详细信息保存至相应的所述缓存区中;
将所述缓存区中所述详细信息写入对应的二进制文件;
将所述二进制文件解码以获得所述详细信息。
其中,获取所述程序运行时的线程个数及编号之前,还包括:
在所述程序运行前设置标志位;
程序运行时,判断是否存在标志位;
若是,开始获取所述程序运行时的线程个数及编号。
其中,将所述缓存区中所述详细信息写入对应的二进制文件之后,还包括:
为所述二进制文件命名并存于本地磁盘。
其中,将所述二进制文件解码以获得所述详细信息后,还包括:
将所述详细信息存为可读的文本文件。
其中,所述详细信息具体为所述IO操作的时间戳、数据速率、数据类型、延时、结果,以及当前测试的存储卷的设备名称、LBA地址、文件句柄。
本申请还提供一种用于程序测试的数据流记录系统,包括:
获取模块,用于获取所述程序运行时的线程个数及编号;
划分模块,用于根据所述编号为各线程在内存中划分相应的缓存区;
保存模块,用于将所述各线程每次IO操作的详细信息保存至相应的所述缓存区中;
写入模块,用于将所述缓存区中所述详细信息写入对应的二进制文件;
解码模块,用于将所述二进制文件解码以获得所述详细信息。
其中,还包括:
设置模块,用于在所述程序运行前设置标志位;
判断模块,用于程序运行时,判断是否存在标志位;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810002249.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种任务调度方法和装置
- 下一篇:一种资源管控方法和装置