购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3.3 增加内存大小

针对“增加内存大小”这个优化方法论,读者可能会有疑问:内存大小是设备决定的,要怎样增加内存大小呢?通过前面的基础知识我们可以知道,虽然物理内存以及系统为进程创建的虚拟内存的大小都是固定的,但是还有很多其他的内存空间是通过虚拟机或者系统库来创建的,比如默认为512MB的Java堆空间是虚拟机来创建和管理的,默认为1024 KB的线程栈空间是libc系统库来创建的,所以我们可以通过Native Hook技术来改变系统库或者虚拟机的逻辑,从而实现“改变这些空间大小,增加内存空间”的优化方案。

但是通过Native Hook改变系统库的逻辑,从而增加内存大小并不是很常规的优化方案,因为想要落地这个优化方案,我们不仅需要熟悉底层的逻辑和源码,还要熟悉Native Hook技术。比较经典的案例如字节跳动的mSponse内存优化方案,便是通过Native Hook技术将LargeObjectSpace从原有的空间中分离出来,并为其分配了512MB的独立空间。

除了扩大可用的内存空间,我们还可以通过减少内存空间中被系统所占用却并不会使用的空间,来间接提升可用的内存大小,这一方法在虚拟内存的优化中经常会用到,后文会通过实战案例来进一步讲解。 Qm0jfEbzhGgUwzyvwhl6a5CVEYB9Q9pTk2di9vzJvge9upiemoLr8YV6Zwk8X78x

点击中间区域
呼出菜单
上一章
目录
下一章
×