【技术实现步骤摘要】
一种编译优化方法和装置
[0001]本申请实施例涉及电子设备领域,尤其涉及一种编译优化方法和装置。
技术介绍
[0002]电子设备可以在运行的过程中,从内存将数据读入缓存,以便利用缓存的快速读写能力提升电子设备的运行效率。
[0003]可以理解的是,电子设备在运行过程中,需要调用不同的成员变量。比如,电子设备可以在需要使用成员变量时,从缓存中查找该成员变量。如果在缓存中没有查找到该成员变量,那么电子设备可以从内存中查找该成员变量,并将该成员变量读入缓存中,以便从缓存中调用该成员变量。
[0004]由于缓存的容量有限,一般无法存储大量的成员变量。因此,电子设备就会频繁地由于无法从缓存中查找到需要的成员变量,而需要从内存中进行读取操作。由此会带来显著的访问延迟以及大量读取操作引入的功耗开销。
技术实现思路
[0005]本申请实施例提供一种编译优化方法和装置,能够使得电子设备可以一次性读取多个高频访问的数据(如成员变量)的同时,降低由于填充操作导致的低效率。
[0006]为了达到上述目的,本申请实施例采用如下技术方案:
[0007]第一方面,提供一种编译优化方法,应用于电子设备,该方法包括:在安装应用程序时,或者安装该应用程序之后,在对该应用程序进行编译时,根据该访问频率,排序该应用程序的第一结构体的成员变量的存储顺序,该成员变量包括第一成员变量和第二成员变量,该第一成员变量的访问频率高于该第二成员变量,该第一成员变量的存储顺序在该第二成员变量之前。根据第一字节宽度,通过填充 ...
【技术保护点】
【技术特征摘要】
1.一种编译优化方法,其特征在于,应用于电子设备,所述方法包括:在安装应用程序时,或者安装所述应用程序之后,在对所述应用程序进行编译时,根据所述访问频率,排序所述应用程序的第一结构体的成员变量的存储顺序,所述成员变量包括第一成员变量和第二成员变量,所述第一成员变量的访问频率高于所述第二成员变量,所述第一成员变量的存储顺序在所述第二成员变量之前;根据第一字节宽度,通过填充字段对所述成员变量进行字节对齐;其中,第一填充字段用于对所述第一成员变量进行字节对齐;将所述第二成员变量存入所述第一填充字段;所述第一填充字段的大小大于或等于所述第二成员变量的大小。2.根据权利要求1所述的方法,其特征在于,在所述将第二成员变量存入第一填充字段之后,所述方法还包括:根据所述第一成员变量和/或所述第二成员变量的存储地址,调整访问所述成员变量的偏移量。3.根据权利要求1或2所述的方法,其特征在于,在所述根据所述访问频率,排序所述应用程序的第一结构体的成员变量的存储顺序之前,所述方法还包括:获取所述电子设备运行过程中,所述第一结构体中的每个所述成员变量的访问频率。4.根据权利要求1
‑
3中任一项所述的方法,其特征在于,所述第一字节宽度是根据所述电子设备的处理器的读取带宽确定的,所述处理器的读取带宽是所述处理器执行一次读取操作时,能够读取的最大数据量。5.根据权利要求1
‑
4中任一项所述的方法,其特征在于,所述获取所述电子设备运行过程中,所述第一结构体中的每个所述成员变量的访问频率,包括:对所述第一结构体中每个所述成员变量执行插桩操作,根据所述应用程序进行编译过程中,插入各个成员变量的检测标识的调用次数,确定每个所述成员变量的访问频率。6.根据权利要求1
‑
5中任一项所述的方法,其特征在于,在将所述第二成员变量存入所述第一填充字段之前,所述方法还包括:查找所述排序所述应用程序的第一结构体的成员变量的存储顺序后,未存储成员变量的第一地址,所述第一地址是所述第一填充字段的首地址;在所述第一地址之后,查找所述第二成员变量,所述第二成员变量的存储地址在所述第一地址之后,所述第二成员变量的大小小于所述第一填充字段的大小;所述将所述第一优化结果中,第一成员变量存入第一填充字段,包括:将所述第四成员变量的数据,存储的到所述第一填充字段中。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:对所述第二成员变量在所述排序所述应用程序的第一结构体的成员变量的存储顺序后的存储地址填充无效数据;或者,删除所述第二成员变量在所述排序所述应用程序的第一结构体的成员变量的存储顺序后的存储地址中的数据。8.根据权利要求6或7所述的方法,其特征在于,在将所述第二成员变量存入所述第一填充字段之后,所述方法还包括:查找未存储成员变量的第二地址,所述第二地址是当前存储顺序中的第二填充字段的首地址;在所述第二地址之后,查找第三成员变量,所述第三成员变量的存储地址在所述第二
地址之后,所述第五成员变量的大小小于所述第二填充字段的大小;将所述第三成员变量的数据,存储的到所述第二填充字段中。9.一种编译优化装置,其特征在于,应用于电子设备,所述装置包括:排序单元,用于在安装应用程序时,或者安装所述应用程序之后,在对所述应用程序进行编译时,根据所述访问频率,排序所述应用程序的第一结构体的成员变量的存储顺序,所述成员变量包括第一成员变量和第二成员变量,所述第一成...
【专利技术属性】
技术研发人员:季柯丞,李文韬,彭卓立,邱榆,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。