Events observation and control for performance

Hi,

I work with large markdown files (MBs). One issue I have is that after renaming headings the typing performance (which is not great as a baseline) degrades drastically (I estimate ~0.1-0.5 seconds delay on keystrokes) and I have to quit and reopen.
(I lose all the view states across all my windows and tabs when I reopen).
I suspect that there are plugins that reparse the whole file (or vault) on each keystroke.

I’d like to get a better understanding on what plugins are involved at which actions (the events each plugin listens to) and, ideally, get a plugin + event-handler statistic (e.g. histogram) so I can get an idea of what’s causing issues and be able to raise the issue accordingly.

I tried using the dev tools performance profiler but I’m getting too much cryptic low level stuff. I need something that identifies strictly at Obsidian API level (plugins, events, handlers).

Separately, it would be nice, if certain frequent events like keystrokes, scrolling, etc. could be throttled, so that a plugin that does synchronous work on each keystroke could be throttled by not getting every even t. I understand this is an advanced config, potentially causign issues, hovewever, I’d expect something like chrome://flags for stuff like this.

Alternatively if this is possible directly through the developer console, I’d appreciate some guidance on how to throttle events.

1 Like

It’s impossible to track down performance issues.
Here’s an example of how performance data looks.
In this example it took ~10 seconds to type a word (Obsidian by and large unresponsive with >80% system CPU

The performance degrades further with every heading rename, rendering Obisdian unasable after 5-10 renames.

I suspect this is always the case, but less noticeable with smaller documents.

1 Like

I have the same problem

You still can track down which plugin that causes performance bottlenecks.

Distinguished by different color in the waterfall.

2 Likes