[发明专利]程序优化方法及装置在审
申请号: | 201610210366.0 | 申请日: | 2016-04-06 |
公开(公告)号: | CN107273175A | 公开(公告)日: | 2017-10-20 |
发明(设计)人: | 王洪虎;高翔;胡庆海 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 陶敏,刘芳 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 优化 方法 装置 | ||
1.一种程序优化方法,其特征在于,包括:
根据待优化的计算机程序获得程序执行结果,所述待优化的计算机程序使用第一编程语言编写;
根据所述程序执行结果,检测所述待优化的计算机程序中的热点程序;
将所述热点程序替换为优化程序,形成优化后的所述计算机程序;其中,所述优化程序的功能与所述热点程序的功能相同,所述优化程序使用第二编程语言编写,所述第二编程语言的执行效率大于所述第一编程语言的执行效率。
2.根据权利要求1所述的方法,其特征在于,所述将所述热点程序替换为优化程序,形成优化后的所述计算机程序,包括:
删除所述热点程序;
在所述待优化的计算机程序的第一位置插入第二编程语言封装程序,其中,所述第一位置为所述热点程序在所述待优化的计算机程序中的位置,所述第二编程语言封装程序包括程序起始标识以及程序结束标识,所述第二编程语言封装程序使用第一编程语言编写;
将所述优化程序增加到所述程序起始标识和所述程序结束标识之间。
3.根据权利要求1所述的方法,其特征在于,所述根据待优化的计算机程序获得程序执行结果,包括:
运行所述待优化的计算机程序对应的预设测试用例,获得所述程序执行结果。
4.根据权利要求1所述的方法,其特征在于,所述根据所述程序执行结果,检测所述待优化的计算机程序中的热点程序,包括:
根据所述程序执行结果,使用性能分析工具检测所述待优化的计算机程序中的热点程序。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述第二编程语言为支持单指令多数据SIMD的编程语言。
6.根据权利要求5所述的方法,其特征在于,所述第二编程语言为汇编语言,所述第一编程语言为可以封装所述第二编程语言的编程语言。
7.根据权利要求6所述的方法,其特征在于,若所述热点程序为执行循 环数学计算功能的程序,则所述优化程序中至少包括内存读取语句和执行数学计算语句;其中,所述内存读取语句和所述执行数学计算语句为SIMD语句,所述内存读取语句用于每次从内存中读取64位或128位数据,并将读取到的所述64位或128位数据存储到寄存器中,所述执行数据计算语句用于对所述64位或128位数据进行64位运算。
8.一种程序优化装置,其特征在于,包括:
执行模块,用于根据待优化的计算机程序获得程序执行结果,所述待优化的计算机程序使用第一编程语言编写;
检测模块,用于根据所述程序执行结果,检测所述待优化的计算机程序中的热点程序;
替换模块,用于将所述热点程序替换为优化程序,形成优化后的所述计算机程序;其中,所述优化程序的功能与所述热点程序的功能相同,所述优化程序使用第二编程语言编写,所述第二编程语言的执行效率大于所述第一编程语言的执行效率。
9.根据权利要求8所述的装置,其特征在于,所述替换模块包括:
删除单元,用于删除所述热点程序;
插入单元,用于在所述待优化的计算机程序的第一位置插入第二编程语言封装程序,其中,所述第一位置为所述热点程序在所述待优化的计算机程序中的位置,所述第二编程语言封装程序包括程序起始标识以及程序结束标识,所述第二编程语言封装程序使用第一编程语言编写;
增加单元,用于将所述优化程序增加到所述程序起始标识和所述程序结束标识之间。
10.根据权利要求8所述的装置,其特征在于,所述执行模块具体用于:运行所述待优化的计算机程序对应的预设测试用例,获得所述程序执行结果。
11.根据权利要求8所述的装置,其特征在于,所述检测模块具体用于:根据所述程序执行结果,使用性能分析工具检测所述待优化的计算机程序中的热点程序。
12.根据权利要求8-11任一项所述的装置,其特征在于,所述优化程序中包括单指令多数据SIMD语句。
13.根据权利要求12所述的装置,其特征在于,所述第二编程语言为汇 编语言,所述第一编程语言为可以封装所述第二编程语言的编程语言。
14.根据权利要求13所述的装置,其特征在于,若所述热点程序为执行循环数学计算功能的程序,则所述优化程序中至少包括内存读取语句和执行数学计算语句;其中,所述内存读取语句用于每次从内存中读取64位或128位数据,并将读取到的所述64位或128位数据存储到寄存器中,所述执行数据计算语句用于对所述64位或128位数据进行64位运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610210366.0/1.html,转载请声明来源钻瓜专利网。