嵌入式Linux系统内存优化使用方法研究
2017-07-16宋睿
宋睿
【摘要】 嵌入式系统功能的提高,占用了较大内存空间,继而时常出现运行无响应。基于用户方面看,由于系统内存问题影响运行,针对系统内存与进程应用状态研究,可以调整系统数值与执行文件elf分析,进行系统优化进而确保响应运行。并且经过实践证明,嵌入式系统内存优化使用,能够提升系统空间5%内存,确保系统顺利运行。
【关键词】 嵌入式 Linux系统 内存优化 使用方法研究
现如今,嵌入式系统软件被广泛应用于各行业发展中,小至人们生活,大到科技军事。随着智能设备功能的增加,造成嵌入式系统时常出现内存不足问题,继而降低系统运行。怎样降低软件所占空间,成为软件设计中的重要课题。
一、内存应用
1.1内存存在形式
嵌入式系统中,内存主要分为几种形式:Kernel bootstrapping时期,主要为临时内存。在系统启动后,内存能够自动回收为今后系统应用。在系统正常运行时期,内存分为几种存在形式:系统作为代码,数据信息划分永久内存,在系统中无法变化,一些硬件I/O将有关文件映射在固定空间中。
动态内存分配:其内存无法固定划分,需要结合系统进行划分。若通过非虚拟空间管理体制,通常变化动态为内存划分体制,进而提升性能。
1.2检查内存运行状态
/proc目录内主要为一些系统核心与運行内容,其内容在空间中根据系统运行生成。在目录文件中,能够看到目前空间内存状态,以及不同程序应用状态。
在meminfo文件内,标记了当下系统空间全部应用状态。在文件中利用不同参数能够得出当下系统已用内存和空间内存占用。
/proc目录中,不同程序都能够建立相应的文件,在文件中记录相关文件,利用一些文件查找系统应用内存状态。
1.3空间内存回收
Kswapd作为Linux后台关键程序,内核初始化过程中通过init构成。在系统内存在无运行状态下小于某一个阀值后,kswapd被起动进行系统扫描并通过有效机制,释放空闲页。
二、嵌入式Linux系统内存优化使用方法
2.1系统总体优化
更改Linux内核数值。在proc/sys/vm文件中储存着不同Linux数值,这其中一些与磁盘缓存关联,通过参数优化系统内存。比如:dirty ratio数值控制系统缓冲大小,单位为百分比,说明使用系统内存的百分比,其概念为在缓冲应用在系统空间多少时,逐渐向磁盘写出数值。
定制守护进程。Linux在运行过程中要起动较多系统,为本地与网络用户创造了Linux系统功能窗口,进而直接应对程序与用户。其服务程序主要通过守护进程运行。守护进程命名形式为xxxd,生存时间较长并长留于空间中,具有稳定高的特点。相对于开放源代码的Linux为用户创造了另一种模式,能够结合自身软件条件,制定与管理Linux守护进程。因为守护进程具有一定的特殊性,所以需要降低数量。
2.2一般进程内存优化
Linux系统中,ELF是其二进制文件格式。ELF文件能够进行文件的关联与运行,编译器与连接器视为section集合,加载器将其视为segment集合。从elf文件中能够得出segmen是通过多个构成。在其执行时可以将无用的文件进行删除,进而增加储存空间。
第一,内存池优化。嵌入式系统中,内存池内trunk最小容纳字节为16bytes,从系统自身来说有些多余。怎样能够有效的应用内存池,可以重组内存池,根据应用大小,多分配有关trunk进而实现优化。
内存泄漏检查其主要在于拦截分配内存与释放空间函数调用。所以,想要检测堆内存泄漏,可以拦截free即可,进而了解动态运行应用状态。可以通过虚拟化平台进行检测,这样一来无需进行变更,并且其性能消耗只有10%。
第二,代码和数据段。两端和系统源代码有着直接联系,通常优化方法为:通过有效数据结构进行优化。科学设计编译选项,应用相关软件进行优化。在代码优化过程中,如无法与系统要求相符,则可以通过有关代码修改。嵌入式系统Neri,代码位置只读储存器,数据去与栈区在RAM内,能够将数据移动到代码位置。降低运算强度、循环处理。
第三、优化检验。检测条件为RHEL5系统,编译器是arm-linux-gcc4.3.2。编写代码,代码需要包含读写内存,同时形成多个进程;利用参数进行优化。及经过实验数据显示,优化程序相对于修改前减少了5%。
三、结语
嵌入式系统优化,还需要从内存管理、应用等多方面入手,以及软件自身,掌握软件在运行时占用内存状态,通过有关方法减少内存应用,提升系统运行效果。
参 考 文 献
[1]郭翠娟,盛雨晴,武志刚.基于DaVinci技术的嵌入式Web视频监控系统的设计[J].天津工业大学学报,2016(02).
[2]孙明刚.基于嵌入式Linux的用电信息采集终端存储数据的方法[J].中国新技术新产品,2016(12).
[3]葛吴超,周亦敏.基于ARM9体系架构的编译优化研究[J].电子科技,2016(09).