- Published on
2026-第七周
- Authors

- Name
- AgedCoffee
- @__middle__child
该周报主要为各个地方内容的汇总整理
技术
在 DevTools 中查找 JavaScript 中特定对象的分配位置
本文介绍了一种在 Chrome DevTools 内存分析器中追踪特定对象创建位置的方法,适用于调试时因对象被回收或难以筛选而无法定位来源的情况。
- 🐛 调试痛点:在调试网络请求或大型代码库时,常因调用栈被隐藏或对象被回收而难以定位特定对象的创建位置。
- 📊 内存分析器限制:Chrome DevTools 的“时间轴上的分配”功能可显示对象分配位置,但对象可能已被清理,且筛选条件(如分配时间、构造函数名)往往不够精确。
- 💡 核心技巧:通过故意泄露对象使其在内存分析中可见。具体步骤包括:开启分配堆栈跟踪、在调试器中暂停并将对象保存为全局变量、在控制台创建具有独特类名的新对象来引用目标值。
- 🔍 筛选定位:停止分析后,在内存分析器中按类名(如
AAAAAAAA)筛选,即可找到目标对象及其完整的创建堆栈跟踪。
工具
prek
prek 是一个用 Rust 重写的 pre-commit 替代工具,旨在提供更快的速度、零依赖的单二进制体验,并完全兼容原有的 pre-commit 配置。它通过并行化处理、共享工具链和集成 uv 等优化,显著提升了钩子运行效率,并支持单仓库多项目配置。目前已被 CPython、Apache Airflow 等知名项目采用。
- 🚀 性能优化 – 比 pre-commit 更快,占用磁盘空间更少,支持并行克隆仓库和运行钩子。
- 📦 零依赖便携 – 仅需单个二进制文件,无需安装 Python 或其他运行时环境。
- 🔧 完全兼容 – 支持原有 pre-commit 的配置文件与钩子,可无缝迁移。
- 🏗️ 内置增强功能 – 支持单仓库多项目工作区、自动管理 Python 版本与虚拟环境,并提供 Rust 原生内置钩子。
- ⚙️ 智能工具链 – 使用 uv 管理 Python 依赖,共享 Node.js、Go 等语言工具链,减少重复安装。
- 🌍 广泛采用 – 已被 FastAPI、Ruff、Home Assistant 等众多开源项目使用或推荐。