会这么说是因为我们真的遇到过项目这些东西运行之后占用了上百 M 内存。业务代码当然是会使用引擎 api 的,所以也把引擎启动之后,游戏业务场景的内存算进来了。
内存这个没法准确计算,因为会有一部分 JS 引擎的优化编译缓存。内存的计算我们之前使用过一个插件: js-size 做初略的计算
会这么说是因为我们真的遇到过项目这些东西运行之后占用了上百 M 内存。业务代码当然是会使用引擎 api 的,所以也把引擎启动之后,游戏业务场景的内存算进来了。
内存这个没法准确计算,因为会有一部分 JS 引擎的优化编译缓存。内存的计算我们之前使用过一个插件: js-size 做初略的计算

普通模式下的GFX Buffer Mem

高性能模型下的GFX Buffer Mem
在高性能模式下,GFX Buffer值会很高,游戏玩久了,可能去到几百M,清理纹理对象时只能释放一点点,即时切换场景,资源全部释放,GFX Buffer的值也不会怎么下降。
在普通模式下,GFX Buffer的值不怎么高,通常维持在几十M。
请问是什么原因吗?
引擎的脚本内存大概占多少呢
在实际项目上,我们测试过在 3.6.1 版本,打包微信小游戏平台,发布运行在 iphone 8 设备上,加载引擎之后小游戏内存达到 191 MB。这个内存会包含小游戏基础库的内存,大概 70 MB,还有一些 JS 引擎的编译缓存。所以可以粗略定为占用 120 MB 左右。
这个测试的项目是个 2D 项目,基本把需要使用的 3D 模块都剔除了。剔除模块能有效减少引擎内存大小。
这里提醒注意,由于设备分辨率的不同,所以引擎启动时初始化的渲染内存大小也会不同。分辨率越大、游戏设置的 dpr 越大,内存占用越大。
你好,这个问题我们之前没注意到,后面我们找时间看下。
测试看,是由于sys.__isWebIOS14OrIPadOS14Env为true,mesh-buffer中执行了其他逻辑导致的
根本问题是,buffer会越来越大,释放不了。尝试过在iOS14的系统上使用共享GPU Buffer的方式,在高性能模式下,帧率掉到了个位数。额,因为我用的3.6版本,不确定2.4.10版本是不是也是这个情况
GFX Texture Mem 表示纹理内存。
GFX Buffer Mem 具体是表示什么内容的数值呢?
这个GFX Buffer Mem表示的啥呀,他会导致游戏卡顿么?
图形绘制需要的顶点数据和纹理索引数据,以及各种 GL 程序中的缓存。详情请了解一下 Webgl 程序。
不会直接造成卡顿,但是内存过高容易导致游戏崩溃。
好,多谢。
GFX Texture Mem 和 原生里跑的时候的内存值有什么关系呢?
我加载了网络图片,总内存的增值会是GFX Texture Mem增值的两倍。
是说总内存包含GFX Texture Mem的值,还是说GFX Texture Mem的值只是gpu内存的值,而原生那边总值是cpu内存的值?
这样的文章很棒
如果资源同时存在astc和png,这时候使用zip的压缩类型会导致bundle包变得更大,这时候除了不使用zip还有其他好的解决办法吗?
战略mark
MarkMarkMark
战略mark
为什么不能把 所有逻辑都自动转换成wasm
微信小游戏优化眼