一种内存配置方法和装置的制造方法
【技术领域】
[0001] 本发明涉及计算机领域,尤其涉及内存配置方法和装置。
【背景技术】
[0002] 随着智能终端的快速发展,可供人们下载安装的应用程序也会越来越多,体积越 来越大,单个应用程序对内存的需求是在不断的增加。终端的内存从256M、512M、1G、2G快 速变大。
[0003] 终端的性能除了与CPU(中央处理器-CentralProcessingUnit)、GPU(图形处理 器-GraphicProcessingUnit)关系很大外,内存性能,特别是分配内存的时间长短也是严 重影响终端性能的一个方面。由于技术、成本等方面的考虑,终端的物理内存也是相当有限 的。随着用户在终端上安装、运行的程序越来越多,再多的内存也显得越来越紧张,申请内 存的时间越来越长。如何在有限的终端内存上,提升终端内存的效率,特别是终端内存的分 配效率,成为各大操作系统与终端制造研发厂商竞相争夺的技术制高点之一。
[0004]内存压缩技术是在有限的硬件内存条件下,提升内存性能的一种常用方法。其主 要思想是将数据按照一定的算法压缩后存入压缩内存中,系统从压缩内存中找到压缩过的 数据,将其解压后即可以供系统使用。这样既可以增加实际可用的内存空间,又可以减少页 面置换所带来的开销,从而以较小的成本提高系统的整体性能。
[0005]例如:内存压缩技术zRAM它的前身Compcache-CompressedCachingforLinux早 在09年就在Android民间开发社区流传了。经过两年的开发与完善,Google把这一技术加 入了1(;[1:1^1:(411(11'01(14.4)更新列表中。它的优点是压缩页面(?386 03(3116),让系统内存使 用更加有效,效果相当于内存似乎扩大了一样。但ZRAM因为需要开辟一小块内存作为压缩 块(compressedblock)使用,所以在本来内存就不大的设备上反而增加了负担,这是缺点。
[0006] 由于内存压缩技术一方面需要预先分配一块内存来作为压缩存储的空间,减少了 用户可以使用的空间;另一方面,通过压缩技术,又可以间接增大内存空间,减少应用程序 读写文件系统的时间,提升系统效率。同样采用zRam技术,不同的用户由于使用软件的习 惯不同;与不采用Zram技术相比,一部分用户测试下来系统整体性能提升了了,另外一部 分系统的整体性能反而下降了。所以内存压缩由于在不同的运行场景下,作用可能是相反 的,所以目前使用的前景并不明朗,比如Android4. 4虽然已经集成了zRam,但却没有打开 这个功能,厂商也是抱有怀疑态度,大多数没有使用该功能。
【发明内容】
[0007] 有鉴于此,本发明提供了一种内存配置方法和装置,以解决现有技术中采用内存 压缩技术后,部分终端用户内存申请效率反而降低的问题。
[0008] 为解决上述问题,本发明提供了一种内存配置方法,用于一具有内存的终端,所述 内存配置方法具体包括:
[0009] 测试步骤,根据多个压缩空间配置,分别测试所述内存对应于每一个压缩空间配 置的内存使用效率;
[0010] 配置步骤,根据内存使用效率最高的压缩空间配置对所述内存进行配置。
[0011] 优选地,所述内存使用效率由内存申请时间消耗值描述,内存申请时间消耗值越 小,内存使用效率越高。
[0012] 优选地,多个所述压缩空间配置对应的待测试的压缩空间大小在区间[0,F/2]平 均分布,其中,F表示所述内存的物理空间大小。
[0013] 优选地,测试所述内存对应于每一个压缩空间配置的内存使用效率具体包括 :
[0014] 配置步骤,根据当前的压缩空间配置对所述内存进行配置;
[0015] 内存申请步骤,对配置完成的所述内存进行至少一次内存申请操作;
[0016] 效率统计步骤,获取所述内存申请操作的消耗时间,作为当前的所述压缩空间配 置对应的所述内存申请时间消耗值。
[0017] 优选地,所述内存申请步骤中,所述内存申请操作为多次,每一次所述内存申请操 作对应的内存申请量不同。
[0018] 优选地,所述多次内存申请操作对应的内存申请量在区间[0,F/2]平均分布,其 中,F表示所述内存的物理空间大小。
[0019] 优选地,所述终端处于待机闲置状态。
[0020] 本发明还提供了一种内存配置装置,用于一具有内存的终端,所述内存配置装置 具体包括:
[0021] 测试模块,根据多个压缩空间配置,分别测试所述内存对应于每一个压缩空间配 置的内存使用效率;
[0022] 配置模块,根据内存使用效率最高的压缩空间配置对所述内存进行配置。
[0023] 优选地,所述内存使用效率由内存申请时间消耗值描述,内存申请时间消耗值越 小,内存使用效率越高。
[0024] 优选地,多个所述压缩空间配置对应的待测试的压缩空间大小在区间[0,F/2]平 均分布,其中,F表示所述内存的物理空间大小。
[0025] 优选地,测试所述内存对应于每一个压缩空间配置的内存使用效率具体包括 :
[0026] 配置单元,根据当前的压缩空间配置对所述内存进行配置;
[0027] 内存申请单元,对配置完成的所述内存进行至少一次内存申请操作;
[0028] 效率统计单元,获取所述内存申请操作的消耗时间,作为当前的所述压缩空间配 置对应的所述内存申请时间消耗值。
[0029] 优选地,所述内存申请单元中,所述内存申请操作为多次,每一次所述内存申请操 作对应的内存申请量不同。
[0030] 本发明的内存配置方法和装置,可以根据每个用户运行程序的不同,动态地调整 内存压缩技术中压缩空间的大小,达到最大提升系统内存使用效率的目的,避免了现在技 术中,采用内存压缩技术后,部分用户终端内存使用效率反而降低的情况。
【附图说明】
[0031] 图1为本发明的实施例的内存配置方法的一流程示意图;
[0032] 图2为本发明的实施例的内存配置装置的一结构示意图;
[0033] 图3为本发明的实施例的内存配置方法的另一流程示意图。
【具体实施方式】
[0034] 为使本发明要解决的技术问题、技术方案和有益效果更加清楚,下面将结合附图 及具体实施例进行详细描述。
[0035] 图1为本发明的实施例的内存配置方法的一流程示意图。如图1所示,本发明提 供一种内存配置方法,用于一具有内存的终端,所述内存配置方法具体包括:
[0036] 测试步骤101,根据多个压缩空间配置,分别测试所述内存对应于每一个压缩空间 配置的内存使用效率;
[0037] 配置步骤102,根据内存使用效率最高的压缩空间配置对所述内存进行配置。
[0038] 上述实施例的内存配置方法,通过测试多个所述压缩空间配置的内存使用效率, 获取所述内存使用效率最高的压缩空间配置来进行内存配置,如此,可以动态的调整所述 终端的内存的压缩空间配置,达到最大限度提升系统内存的申请效率的目的。
[0039] 由于每个用户使用应用程序的习惯不同,所以,在使用一段时间的所述终端后,每 一用户所使用的所述终端的内存的存储状态会各有不同,通过本实施例的技术方案,可以 根据每个用户各自不同的应用使用习惯,动态的调整终端的内存的压缩空间配置,灵活,方 便,提高了终端的内存申请效率的同时,也增加了用户体验。
[0040] 优选地,所述内存使用效率由内存申请时间消耗值描述,内存申请时间消耗值越 小,内存使用效率越高。所述内存申请时间消耗值是指内存申请操作的消耗时间。当然,也 可以用其他方式来描述内存使用效率,比如内存的读写速度。
[0041] 优选地,多个所述压缩空间配置对应的待测试的压缩空间大小在区间[0,F/2]平 均分布,其中,F表示所述内存的物理空间大小。
[0042] 对于压缩空间的大小的选择上,优选为每次待测试的所述压缩空间的大小均不相 同,且具有一定的代表性。本实施例中,优选为在所述内存的物理空间的大小的一半范围 内平均分布,例如,终端的内存为512M,作为测试的所述压缩空间的大小可在区间[0,256] 平均分布,如果进行9次测试,则每次测试的压缩空间大小分别为:0、32、64、96、128、160、 192、224、256 (单位:M),其中,0标识不启动内存压缩测试。
[0043] 当然,也可以采用其他方式来确定每一次测试的所述压缩空间的大小。例如,假设 终端可用的物理内存大小为F,可以根据计算的精确度,调整需要计算的次数n,每次都将F/2平均为当前的测试剩余次数的等份,计算后可以得到数组Z(0…n)。
[0044] 例如n= 8,则Z(0. .n)的大小可以设置为:
[0045] *其中Z0 = 0,表示不启用内存压缩测试技术。数组Z(0…n)就是后续内存压缩 技术需要设置的n+1个压缩空间的大小。根据测算,n的大小不用太大,一般6~10就可 以了。
[0046] 优选地,测试所述内存对应于每一个压缩空间配置的内存使用效率具体包括:
[0047] 配置步骤,根据当前的压缩空间配置对所述内存进行配置;
[0048] 内存申请步骤,对配置完成的所述内存进行至少一次内存申请操作;
[0049] 效率统计步骤,获取所述内存申请操作的消耗时间,作为当前的所述压缩空间配 置对应的所述内存申请时间消耗值。
[0050] 上述实施例描述了对预定大小的所述压缩空间进行的一次内存使用效率的测试, 其中,对内存使用效率的描述采用内存申请时间消耗值表示。具体的,当内存压缩空间为Zi 时,在至少一次的所述内存申请操作中,可以同时运行两个以上的应用程序,所述应用程序 可为专门用于测试所编写的应用程序,各用于测试的应用程序所申请的内存的大小最好具 有一定的代表性,例如,按照所述终端的内存大小为参考,可配置有内存申请量大的程序若 干以及内存申请量小的程序若干,这样,测试的结果会比较准确。按照上述技术方案申请内 存后,将每一个所述应用程序内存申请时间进行累加计算,得到总的所述内存申请时间消 耗值。如果同时运行两个用于测试的所述应用程序,每个应用程序统
[0051]
[0052] 计的所有内存申请时间之和为Pl,P2,则压缩空间为Zi时,所