首页 > 系统相关 >对 Chrome/V8 堆内存限制的研究

对 Chrome/V8 堆内存限制的研究

时间:2023-08-09 14:33:29浏览次数:39  
标签:限制 Chrome 32 64 内存 1G V8

https://zhuanlan.zhihu.com/p/567115829

 

开局直接放结论,具体的验证过程比较无聊,有兴趣的可以翻到后面细看。

  • 堆内存的限制是由 V8 来设置的。
  • 早期的时候,V8对堆内存的限制大约是 800MB(32位)/ 1400MB(64位),但那是非常早期的情况了。
  • 针对最新的 Chrome 和 Node 来说,V8设置了一个最终的限制,无论你物理内存多大,在不特殊设置的情况下,都不得超过下列值。
64位系统
 物理内存 > 16G  => 最大堆内存限制为4G
 物理内存 <= 16G  => 最大堆内存限制为2G

32位系统
 最大堆内存限制为1G
  • 上述结论依赖于设备有充足的物理内存。内存不足时,实际的计算公式如下
  堆内存限制 = min([ 物理内存 / 4 * 调整系数 ],  V8最大限制 )

// 其中调整系数为 sizeof(void*) / 4 ,sizeof(void*)是系统指针长度,64位是8 , 32位是4.

// 位数取决于软件的位数,比如你是64位系统,但是PC的QQ还是32位的,还是视作32位的.
// 其webview的堆内存上限就是1G,不因你系统位数而改变

// 例:假如你是64位系统但只有2G内存(非常罕见的情况),你的最大堆内存限制为 2 / 4 * 2 = 1G
  • 设置 max_heap_size 或者 max-old-space-size 可以更改V8的堆内存限制。具体验证方法可以参考这里

标签:限制,Chrome,32,64,内存,1G,V8
From: https://www.cnblogs.com/chinasoft/p/17616799.html

相关文章

  • 本地内存跟踪NMT详解
    \本地内存跟踪NMT详解​1.Overview为什么java程序消耗的内存,远超-Xms、-Xmx的限制?因为各种原因,或是为了进行某些优化,JVM会额外分配内存。这些额外的分配,会导致java程序占用的内存,超出-Xmx的限制。本文档列举了通常情况下,JVM会分配哪几部分内存,以及各部分调整大小的方法。......
  • 内存管理
    目标多进程并发的场景下如何安全高效的共享内存提高内存利用率和内存寻址效率主要的内存管理技术引入虚拟内存,使进程对内存地址的访问从直接变为间接,实现了进程地址空间的隔离引入分页机制,实现细粒度的动态内存分配和管理,有效减少了内存碎片,提高了内存利用率通过TLB(地址......
  • 《CUDA编程:基础与实践》读书笔记(2):CUDA内存
    1.全局内存核函数中的所有线程都能够访问全局内存(globalmemory)。全局内存的容量是所有设备内存中最大的,但由于它没有放在GPU芯片内部,因此具有相对较高的延迟和较低的访问速度,cudaMalloc分配的就是全局内存。此外,当处理逻辑上的二维或者三维问题时,还可以使用cudaMallocPitch和......
  • 04-非连续内存分配
    04-非连续内存分配为什么需要非连续内存分配连续内存分配的缺点1)分配给一个程序的物理内存是连续的2)内存利用率较低3)有外碎片、内碎片的问题非连续内存分配的优点一个程序的物理地址空间是非连续的更好的内存利用和管理允许共享代码与数据(共享库)支持动态加载和动态链接......
  • 安装指定版本的chrome浏览器,并在selenium中指定浏览器和驱动
    一、安装指定版本的chrome浏览器UI自动化,常需要使用到较低版本的chrome浏览器如果不想删除已有chrome浏览器的前提下,可以在本机安装chromium,即开发者内部版本的chrome浏览器下载地址:ChromiumHistoryVersionsDownload↓(vikyd.github.io)在页面中选择win或者mac版本,并选择......
  • 【JVM技术指南】「GC内存诊断-故障问题排查」一文教你如何打印及分析JVM的GC日志(实战
    当我们在开发Java应用程序时,JVM的GC(垃圾回收)是一个非常重要的话题。GC的作用是回收不再使用的内存,以便程序可以继续运行。在JVM中,GC的日志记录了GC的详细信息,包括GC的类型、时间、内存使用情况等。在本文中,我们将介绍JVMGC日志的格式、含义和分析方法。JVMGC日志格式JVMGC日志的......
  • JVM学习之:堆(Heap)和非堆(Non-heap)内存
    JVM学习之:堆(Heap)和非堆(Non-heap)内存 堆(Heap)和非堆(Non-heap)内存:堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在Java虚拟机启动时创建的。“在JVM中堆之外的内存称为非堆内存(Non-heapmemory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来......
  • 苹果正在测试新款Mac mini:搭载M3芯片 配备24GB大内存
    据悉苹果目前正在测试新的Mac机型,亮点是采用最新的M3芯片。据报道,首款搭载M3芯片的设备应该是13英寸的MacBookPro和重新设计的MacBookAir,Macmini机型并不在名单上。M3和M2同样拥有最多8个核心,分别为4个性能核和4个能效核,以及最多10核心的GPU,支持最大24GB的统一内存。基本款......
  • 深入理解Linux内核——内存管理(1)
    提要:系列文章主要参考MIT6.828课程以及两本书籍《深入理解Linux内核》``《深入Linux内核架构》对Linux内核内容进行总结。内存管理的实现覆盖了多个领域:内存中的物理内存页的管理分配戴爱内存的伙伴系统分配较小内存的slab、slub、slob分配器分配非连续内存块的vmalloc分配......
  • 国标GB28181视频平台LntonGBS(源码版)国标视频平台内存错误导致崩溃的问题解决方案
    LntonGBS国标视频云服务通过支持国标GB28181协议,实现了设备接入、实时监控直播、录像、语音对讲、云存储、告警、级联等功能。同时,它还支持将接入的视频流以多种格式(包括RTSP、RTMP、FLV、HLS、WebRTC)进行全终端、全平台分发,实现了无插件播放在Web浏览器、手机浏览器、微信端、PC客......