[发明专利]获取编译时长的方法和装置有效
申请号: | 202110579898.2 | 申请日: | 2021-05-26 |
公开(公告)号: | CN113326046B | 公开(公告)日: | 2023-09-26 |
发明(设计)人: | 石磊 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 赵昀彬 |
地址: | 310000 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 获取 编译 方法 装置 | ||
本发明公开了一种获取编译时长的方法和装置。其中,该方法包括:获取待编译的目标代码;通过运行测试脚本,多次执行清除测试对象的编译缓存并编译所述目标代码的步骤,得到多个编译时长;在多次编译结束后,利用所述多个编译时长统计得到所述目标代码的目标编译时长。本发明解决了现有技术中获取的代码编译时长不准确的技术问题。
技术领域
本发明涉及计算机领域,具体而言,涉及一种获取编译时长的方法和装置。
背景技术
在移动端项目开发过程中,随着项目不断迭代,功能逐渐增加,势必会引起编译时长或代码文件的增多;当工程师尝试对项目进行一些优化后,需要确认这些优化是否会减少项目的编译时长,因此需要统计代码的编译时长。
目前,以iOS为例,在移动端的iOS开发中,使用Xcode软件进行项目开发,在尝试对项目进行一些优化后,由于再次编译成功可能会使用到增量编译,且在编译过程中容易受到很多情况的干扰,因此可能会导致获得的编译时长并不准确。
针对现有技术中获取的代码编译时长不准确的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种获取编译时长的方法和装置,以至少解决现有技术中获取的代码编译时长不准确的技术问题。
根据本发明实施例的一个方面,提供了一种获取编译时长的方法,包括:获取待编译的目标代码;通过运行测试脚本,多次执行清除测试对象的编译缓存并编译目标代码的步骤,得到多个编译时长;在多次编译结束后,利用多个编译时长统计得到目标代码的目标编译时长。
进一步地,获取目标代码,包括:接收目标代码的属性信息,其中,属性信息包括:目标代码的路径和目标代码的标识;通过测试脚本根据目标代码的路径以及目标代码的标识查找到目标代码。
进一步地,通过运行测试脚本多次清除测试对象的编译缓存,并编译目标代码,得到多个编译时长,包括:通过测试脚本中的缓存清除命令清除测试对象的缓存;通过测试脚本根据目标代码的类型确定目标代码的编译命令,并根据编译命令编译目标代码;在编译完成目标代码之后,获得此次编译的编译时长,并判断目标代码的编译次数是否到达预设值;在目标代码的编译次数到达预设值的情况下,确定编译结束;在目标代码的编译次数未到达预设值的情况下,重新进入通过测试脚本中的缓存清除命令清除测试对象的缓存的步骤。
进一步地,利用多个编译时长统计得到目标代码的目标编译时长,包括:清除多个编译时长中的最大值和最小值,得到剩余的多个编译时长;获取剩余的多个编译时长的平均值,并确定剩余的多个编译时长的平均值为目标代码的目标编译时长。
进一步地,在通过运行测试脚本,多次执行清除测试对象的编译缓存并编译目标代码的步骤,得到多个编译时长之前,上述方法还包括:确定用于运行目标代码的测试对象的类型,其中,测试对象的类型包括:真机和模拟器;以及获取测试对象所提供的测试环境,其中,测试环境包括:机型信息和系统版本信息。
进一步地,确定用于运行目标代码的测试对象的类型,包括:在检测到测试对象的类型确定信息的情况下,根据类型确定信息确定测试对象的类型;在未检测到测试对象的类型确定信息的情况下,确定测试对象的类型为模拟器。
进一步地,在测试对象的类型为真机的情况下,获取测试对象所提供的测试环境,包括:获取真机的唯一识别码,并根据唯一识别码确定当前测试所使用的测试对象;读取测试对象的机型信息和系统版本信息。
进一步地,在测试对象的类型为模拟器的情况下,获取测试对象所提供的测试环境,包括:在接收到测试环境信息的情况下,获取测试环境信息所指示的测试环境;在未接收到测试环境信息的情况下,确定测试环境为模拟器所兼容的最新的机型和最高版本的系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110579898.2/2.html,转载请声明来源钻瓜专利网。