当前位置:首页 > 内存 > 正文

防止申请动态内存(android内存优化实例)

  • 内存
  • 2024-08-24 08:37:24
  • 4320

一、C++为什么要申请动态内存?对于编译阶段无法确定大小的数量,必须在运行时动态确定大小并分配空间。例如,对于编译时无法确定大小的数组,必须在运行时实时计算其大小并动态分配存储空间。


二、动态内存排除动态内存故障使用动态内存时存在一些限制。首先,虚拟机的大小不能超过初始启动大小,如果内存有碎片,则调整大小可能会失败或需要很长时间。如果出现问题,必须设置新的目标来取消该过程。增加虚拟机大小需要VMHost有足够的内存。如果没有足够的可用内存,该过程可能需要很长时间甚至失败。如果ram_target和ram_dyn_target_start值超出ram_dyn_min和ram_dyn_max的范围,系统会发出警告。
HP-UX支持的大页内存管理功能可以提高性能,但限制了可以在VMHost上运行的软件类型。大页面可能会导致碎片并影响新虚拟机的性能。动态内存增加了内存碎片的风险,需要以连续大块的内存来释放内存以避免碎片。软件策略可用于确保操作发生在64MB的倍数的最小物理连续内存块中。
正在运行的来宾虚拟机可能会产生碎片,从而影响动态内存减小虚拟机大小的能力。如果ram_dyn_target_start设置得太小,则引导期间可能会发生挂起或崩溃,因为来宾操作系统可能无法获取足够的内存。通常内存减少不能超过75%(对于2GB内存不超过50%)。如果出现问题,您需要通过hpvmmodify增加内存参数并重新启动。
实际的内存分配可能不是指定值的整数倍。因此,不是64MB倍数的调整将导致目标值重置。在启用自动存储之前,来宾虚拟机必须安装来宾虚拟机管理软件,否则无法修改自动存储。升级IntegrityVM时,请确保来宾工具包和主机版本一致。否则,会报告版本不匹配,并且需要更新来宾工具包。