汤果
(汤果)
1
遇到的问题
本人刚开始使用obsidian,已经有了一些笔记,想通过核心插件白板功能直观呈现笔记。但是在使用过程中发现拖动笔记和用滚轮放大缩小的时候很卡顿,白板的延时很严重。才插入了几个文档就很卡了。使用的是v1.9.14版本,天选3笔记本电脑,3060显卡。
预期的效果
我有在b站上看其他人的用白板管理的视频,他们使用的白板无论是拖拽还是缩放都很流畅没有卡顿。处理这种文本呈现工作,电脑也不应该带不动。
已尝试的解决方案
尝试了一下几种方案:
1.在网上查阅后,把所有第三方插件都关闭了,甚至把大部分的核心插件也关闭了,没有改善
2.把电脑的显卡设置打开,允许obsidian使用高性能显卡,没有改善。
3.创建新库,只导入原来库的部分文件来使用白板功能,还是没有改善
4.使用obsidian自带的沙盒库,只使用里面的笔记使用白板功能。里面的笔记全部都是中文。插入几个笔记后很丝滑,没有卡顿。然后开始意识到可能是中文的问题。
5.在方法4的基础上,加入了自己的几篇中文笔记,插入后马上拖拽缩放立马变卡。在沙盒库随便写点中文笔记,插入后也是变卡。删掉中文笔记后恢复如初。
6.回到自己的库,只插入几篇英文笔记,非常顺畅。再插入一篇自己的中文笔记又开始卡顿了。中文笔记越多越卡。
现状
现在还没有具体的解决办法,只发现中文是其中的原因之一,想问问大家伙有没有这种情况,能不能复现我的情况,有没有什么解决办法?我也打算反馈给官方了
我有个canvas文件里有1300条数据,中英文单词的。打开时缩放很卡,但是小区域加载完成后,还可以正常编辑使用,可以排除OB的问题了。
你这种情况,更应该怀疑输入法。
汤果
(汤果)
4
我在第4点尝试了使用沙盒,也试过原生主题和其他人的库,都是只要有中文缩放就会卡。
汤果
(汤果)
5
不太懂,输入法为什么会影响缩放卡顿。
还有你能帮忙尝试一下用你自己的库和沙盒库复现一下吗?
在两个库分别新建两个白板,一个白板4篇英文,一个白板4篇中文,然后滚轮缩放一下,对比一下缩放动画的流畅度。我想看看是不是我电脑的问题。
汤果
(汤果)
6
今天用控制台录制缩放过程,把日志喂给AI看了一下。AI是这么回复的:
通过分析这个性能跟踪文件,我发现了几个潜在的性能问题:
主要性能问题
1. 长时间的主线程任务
- 最严重的问题:在时间戳
20057725554 附近有一个长达 92.467ms 的 RunTask
- 这个任务阻塞了主线程(tid: 4404 - CrRendererMain),导致页面响应延迟
- 在此期间处理了鼠标移动事件
WidgetBaseInputHandler::OnHandleInputEvent,持续了 92.18ms
2. JavaScript 执行时间过长
- 在
20057725855 处有长时间的 V8 函数调用:
v8.callFunction: 91.72ms
FunctionCall: 91.67ms
- 调用的是
app://obsidian.md/enhance.js 中的函数 s
3. 频繁的垃圾回收
- 多个
V8.GC_TIME_TO_SAFEPOINT 事件,虽然单个时间不长,但频率较高
- 这表明可能存在内存分配压力
4. 合成器线程负载
- VizCompositorThread (tid: 17748) 有多个长时间任务
- 在
20057754670 处有一个 11.6ms 的合成任务
5. 丢帧现象
- 在
20057829988 处检测到 DroppedFrame,表明有帧未能及时渲染
建议的优化方向
立即优化:
- 分析
enhance.js 中的函数 s - 这是最耗时的 JavaScript 代码
- 优化鼠标移动事件处理 - 减少事件处理器的复杂度
- 检查内存使用模式 - 减少不必要的对象分配
长期优化:
- 代码分割 - 将大型 JavaScript 文件拆分成更小的模块
- 使用 Web Workers - 将复杂计算移出主线程
- 优化动画帧回调 - 确保
requestAnimationFrame 回调执行时间在 16ms 以内
这个性能问题主要集中在 JavaScript 执行和事件处理上,建议优先优化 enhance.js 中的相关代码。
我不懂js这些东西,还在问AI尝试着解决。
试了中文和英文的,没一点区别,都是秒响应。
我工作的电脑配置还算2016年的,性能还没你的笔记本好。
你看下你ob设置里,外观→硬件加速 默认是打开的,看下有没有被关闭。如果没问题,可以确定不是OB的问题,是你其他软件导致的。打开任务管理器,看下中文输入时,后台任务管理器那个软件占用内存/网络/CPU高就可以破案了。