在使用核心插件白板过程中遇到的中文笔记卡顿问题


遇到的问题

本人刚开始使用obsidian,已经有了一些笔记,想通过核心插件白板功能直观呈现笔记。但是在使用过程中发现拖动笔记和用滚轮放大缩小的时候很卡顿,白板的延时很严重。才插入了几个文档就很卡了。使用的是v1.9.14版本,天选3笔记本电脑,3060显卡。

预期的效果

我有在b站上看其他人的用白板管理的视频,他们使用的白板无论是拖拽还是缩放都很流畅没有卡顿。处理这种文本呈现工作,电脑也不应该带不动。

已尝试的解决方案

尝试了一下几种方案:

1.在网上查阅后,把所有第三方插件都关闭了,甚至把大部分的核心插件也关闭了,没有改善

2.把电脑的显卡设置打开,允许obsidian使用高性能显卡,没有改善。

3.创建新库,只导入原来库的部分文件来使用白板功能,还是没有改善

4.使用obsidian自带的沙盒库,只使用里面的笔记使用白板功能。里面的笔记全部都是中文。插入几个笔记后很丝滑,没有卡顿。然后开始意识到可能是中文的问题。

5.在方法4的基础上,加入了自己的几篇中文笔记,插入后马上拖拽缩放立马变卡。在沙盒库随便写点中文笔记,插入后也是变卡。删掉中文笔记后恢复如初。

6.回到自己的库,只插入几篇英文笔记,非常顺畅。再插入一篇自己的中文笔记又开始卡顿了。中文笔记越多越卡。

现状

现在还没有具体的解决办法,只发现中文是其中的原因之一,想问问大家伙有没有这种情况,能不能复现我的情况,有没有什么解决办法?我也打算反馈给官方了

有关主题试试吗?或者到沙盒库试试呢?

我有个canvas文件里有1300条数据,中英文单词的。打开时缩放很卡,但是小区域加载完成后,还可以正常编辑使用,可以排除OB的问题了。
你这种情况,更应该怀疑输入法。

我在第4点尝试了使用沙盒,也试过原生主题和其他人的库,都是只要有中文缩放就会卡。

不太懂,输入法为什么会影响缩放卡顿。
还有你能帮忙尝试一下用你自己的库和沙盒库复现一下吗?
在两个库分别新建两个白板,一个白板4篇英文,一个白板4篇中文,然后滚轮缩放一下,对比一下缩放动画的流畅度。我想看看是不是我电脑的问题。

今天用控制台录制缩放过程,把日志喂给AI看了一下。AI是这么回复的:


通过分析这个性能跟踪文件,我发现了几个潜在的性能问题:

主要性能问题

1. 长时间的主线程任务

  • 最严重的问题:在时间戳 20057725554 附近有一个长达 92.467msRunTask
  • 这个任务阻塞了主线程(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,表明有帧未能及时渲染

建议的优化方向

立即优化:

  1. 分析 enhance.js 中的函数 s - 这是最耗时的 JavaScript 代码
  2. 优化鼠标移动事件处理 - 减少事件处理器的复杂度
  3. 检查内存使用模式 - 减少不必要的对象分配

长期优化:

  1. 代码分割 - 将大型 JavaScript 文件拆分成更小的模块
  2. 使用 Web Workers - 将复杂计算移出主线程
  3. 优化动画帧回调 - 确保 requestAnimationFrame 回调执行时间在 16ms 以内

这个性能问题主要集中在 JavaScript 执行和事件处理上,建议优先优化 enhance.js 中的相关代码。


我不懂js这些东西,还在问AI尝试着解决。

试了中文和英文的,没一点区别,都是秒响应。
我工作的电脑配置还算2016年的,性能还没你的笔记本好。
你看下你ob设置里,外观→硬件加速 默认是打开的,看下有没有被关闭。如果没问题,可以确定不是OB的问题,是你其他软件导致的。打开任务管理器,看下中文输入时,后台任务管理器那个软件占用内存/网络/CPU高就可以破案了。