[发明专利]代码文件的优化方法、装置、电子设备及存储介质在审
申请号: | 202211060438.X | 申请日: | 2022-08-31 |
公开(公告)号: | CN115469877A | 公开(公告)日: | 2022-12-13 |
发明(设计)人: | 周星;张磊;张英鹏 | 申请(专利权)人: | 重庆长安汽车股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F16/14 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张伟 |
地址: | 400020 重庆市*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 文件 优化 方法 装置 电子设备 存储 介质 | ||
1.一种代码文件的优化方法,其特征在于,包括以下步骤:
获取目标代码的顶点文件和像素文件;
分别加载所述顶点文件和所述像素文件得到所述顶点文件和所述像素文件对应的代码字符串,解析所述代码字符串的语法,得到语法树,并利用预设剔除策略剔除所述语法树中不满足预设条件的无用代码,得到所述顶点文件的顶点字符串和所述像素文件的像素字符串;
匹配所述顶点字符串和所述像素字符串之间的引用关系,并利用所述引用关系剔除所述顶点字符串和所述像素字符串中预设错误,得到剔除后的所述顶点字符串和所述像素字符串,基于所述剔除后的所述顶点字符串和所述像素字符串分别生成新顶点文件和新像素文件,达到优化目的。
2.根据权利要求1所述的方法,其特征在于,所述利用预设剔除策略剔除所述语法树中不满足预设条件的无用代码,得到所述顶点文件的顶点字符串和所述像素文件的像素字符串,包括:
在识别到所述语法树中存在常量定义时,进行常量折叠;
和/或者,在识别到所述语法树中存在预设相等检查时,判断所述预设相等检查对应的代码无效,并剔除所述代码;
和/或者,扫描所述语法树的所有叶子节点,剔除临时变量,将所述语法树的表达式替换所述临时变量被使用的位置;
和/或者,在识别到函数时,根据引用关系匹配调用的代码位置,判断是否内联,如果是,则剔除所述函数,并将所述函数的内容替换到函数调用位置;
和/或者,在识别到存在没有引用关系的预设局部变量、预设常量或预设结构体时,剔除所述预设局部变量、预设常量或预设结构体对应的代码;
和/或者,在识别到所述目标代码的第一预设关键字时,判断预设关键字是否处于预设条件分支代码中,如果是,则增加临时变量所述预设关键字移动值所述预设条件分支外;
和/或者,在识别到对结构体内部变量进行单步赋值时,将单步赋值替换为预设swizzle操作;
和/或者,在识别到循环的表达式时,在其内部寻找第二预设关键字,并通过定义标识符替换所述第二预设关键字的处理逻辑,并在识别到返回代码时,通过定义标识符替换将所述返回操作,并将所述返回操作移动到函数的尾部。
3.根据权利要求1所述的方法,其特征在于,所述匹配所述顶点字符串和所述像素字符串之间的引用关系,包括:
匹配所述顶点字符串和所述像素字符串的全局变量和所述目标代码的内建变量;
如果匹配到所述全局变量和所述内建变量,则基于所述全局变量和所述内建变量生成所述引用关系,否则判定匹配失败,并发送异常信息至命令行。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述分别加载所述顶点文件和所述像素文件得到所述顶点文件和所述像素文件对应的代码字符串,包括:
获取所述顶点文件和所述像素文件的文件路径;
根据所述文件路径定位所述顶点文件和所述像素文件,并读取所述顶点文件和所述像素文件对应的代码字符串。
5.一种代码文件的优化装置,其特征在于,包括:
获取模块,用于获取目标代码的顶点文件和像素文件;
第一处理模块,用于分别加载所述顶点文件和所述像素文件得到所述顶点文件和所述像素文件对应的代码字符串,解析所述代码字符串的语法,得到语法树,并利用预设剔除策略剔除所述语法树中不满足预设条件的无用代码,得到所述顶点文件的顶点字符串和所述像素文件的像素字符串;
第二处理模块,用于匹配所述顶点字符串和所述像素字符串之间的引用关系,并利用所述引用关系剔除所述顶点字符串和所述像素字符串中预设错误,得到剔除后的所述顶点字符串和所述像素字符串,基于所述剔除后的所述顶点字符串和所述像素字符串分别生成新顶点文件和新像素文件,达到优化目的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆长安汽车股份有限公司,未经重庆长安汽车股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211060438.X/1.html,转载请声明来源钻瓜专利网。