标签: 内存管理

14 个内容

笔记(14)

WebAssembly (Wasm) 在计算密集型任务中比 JavaScript (JS) 更快,主要因二进制格式减少解析、强类型避免运行时检查、手动线性内存消除 GC 暂停。适合视频/图像处理、3D 模拟等,与 JS 互补。

Elliot Yang·
28 浏览

本文针对FFmpeg视频剪辑/转码的K8s部署,推荐**32核CPU/32GiB内存**重型Pod配置,利用多线程并行和内存缓存加速4K处理,避免分片合并损耗。 **关键问题**:CPU调度抖动、OOM风险。 **解决方案**:设Guaranteed QoS、CPU Manager Static Policy、限制threads;对比单大Pod(低延迟)与多小Pod(高并发);示例YAML留资源裕度,建议GPU/NVMe优化。(178字符)

Elliot Yang·
25 浏览

本文介绍了使用`WeakMap`和`Proxy`实现简化版Vue3响应式系统的原理和实现。关键问题在于如何自动追踪依赖和避免内存泄漏。解决方案是利用`WeakMap`存储对象依赖关系,Proxy拦截get/set操作,实现依赖收集和触发。

Elliot Yang·
102 浏览

本文深入探讨了 WeakMap/WeakSet 的底层原理和高级应用。WeakMap/WeakSet 基于弱引用,不会阻止垃圾回收,常用于绑定私有状态、DOM 元素元数据、响应式系统和缓存。同时介绍了WeakRef/FinalizationRegistry的结合使用,并总结了使用陷阱和注意点。

Elliot Yang·
103 浏览

本文介绍了一个通用的`cleanAudio`函数,用于清理`<audio>`节点。该函数接收选择器或节点作为参数,实现停止播放、移除音源、释放资源、清理事件监听器以及移除DOM节点。通过克隆节点替换并移除的方式,有效清理了所有事件监听器,并释放资源。

Elliot Yang·
76 浏览

`free`命令用于显示内存使用情况。`free -m`虽然以MB为单位,但可读性较差。推荐使用`free -h`,它能自动选择合适的单位(B、KB、MB、GB),使输出更易于理解。此外,`-s`可设置刷新间隔,`-t`显示总计,`-w`显示buffers和cache。

Elliot Yang·
131 浏览

Go语言中,数组和切片是两种不同的数据结构。数组长度固定,是值类型,通常在栈上分配;切片长度可变,是引用类型,底层数组在堆上分配。由于内存分配和访问方式的差异,数组在某些场景下性能更好,切片更灵活。

Elliot Yang·
90 浏览

Node.js内存管理涉及V8引擎的分代垃圾回收机制,包括新生代Scavenge算法和老生代Mark-Sweep-Compact算法。手动GC应谨慎,生产环境依赖自动回收。内存泄漏需用Chrome DevTools等工具诊断,WeakRef可辅助管理。优化包括对象池、调整V8参数和利用并行/增量/并发标记。监控heap_used等指标,压力测试并拆分微服务,减少内存分配是最佳实践。未来趋势包括ML驱动的GC和异构计算内存管理。

Elliot Yang·
156 浏览

Linux SWAP是利用硬盘扩展内存的虚拟化技术,通过页面置换算法在RAM和SWAP间交换不活跃内存页。Zswap和ZRAM等新型SWAP方式性能更优。容量规划需根据内存大小调整,swappiness等参数可优化性能。故障排查可使用vmstat等工具。云原生时代,Zswap混合架构和NVMe SWAP是发展趋势。数据库系统禁用SWAP存在争议,加密SWAP可保障安全。

Elliot Yang·
202 浏览

RxJS高阶映射操作符是处理异步流的关键。switchMap取消前序,适用于实时场景;mergeMap并行处理,需限制并发;concatMap保证顺序,exhaustMap防重复提交。选择需考虑业务场景和性能,并注意内存泄漏和竞态条件。

Elliot Yang·
89 浏览

本文深入解析JavaScript核心特性与最佳实践,涵盖数学运算精度、数组操作进阶、Map与Object对比、对象属性、函数式编程、迭代器与内存管理、ES新特性、调试技巧及最佳实践,旨在提升代码质量与性能。

Elliot Yang·
109 浏览

JavaScript 类型系统区分值类型和引用类型,影响内存存储和操作。通过 `typeof` 和 `instanceof` 进行类型判断,需注意其局限性。V8引擎使用隐藏类和指针标记优化类型处理。理解类型底层机制、内存管理及关注新提案,能编写更高效的 JavaScript 代码。

Elliot Yang·
93 浏览

Node.js核心机制包括高精度计时(process.hrtime),异步资源追踪(async_hooks)和上下文管理(AsyncLocalStorage)。文件系统操作需注意同步写入风险。PowerShell假死问题可通过检查事件循环和缓冲机制解决。了解全局对象差异,掌握二进制数据处理技巧,结合性能分析工具和安全措施,能构建高性能Node.js应用。

Elliot Yang·
108 浏览

本文介绍了 JavaScript 中值类型(基本类型)和引用类型的区别。值类型存储在栈中,复制的是值本身;引用类型存储在堆中,复制的是指针。文章还讨论了使用 `typeof` 和 `instanceof` 检测类型的方法,以及内存空间分配、声明提升和严格模式等相关概念。

Elliot Yang·
110 浏览