oxdc / obsidian-vertical-tabs

An Obsidian plugin that displays open tabs vertically, allowing users to group and organize tabs for a better navigation experience.
MIT License
89 stars 0 forks source link

Performance issue of Drag and Drop #55

Open ifulou opened 2 weeks ago

ifulou commented 2 weeks ago

See the picture. Vertical tab bug

oxdc commented 2 weeks ago

Thank you for reporting the problem. Since I cannot reproduce on my side, I need further information.

It seems that you are drag&drop files in Obsidian's native File Browser, not in Vertical Tabs. May I ask if this issue exists in Vertical Tabs? And could you please disable all CSS snippets and switch to the default theme temporarily and see if the problem still happens?

spiritualgeek commented 2 weeks ago

Hi @oxdc

I love the plugin but have the same issue.

I went through plugin by plugin and when I switched off Vertical Tabs the issue went away

As per the above, this is in the native file browser

Thanks

oxdc commented 2 weeks ago

Hi! Thank you guys! My guess is probably some performance issue regarding CSS zoom. I cannot reproduce this on my Mac even after opening dozens of tabs šŸ¤£šŸ¤£ bad luck šŸ¤£ maybe can be reproduced on some older machines. To pinpoint the exact cause, I need your help. Could you please try to downgrade to v0.10.0 and see if the same issue persists? You can downgrade by using the BRAT plugin by adding a beta plugin with frozen version, then enter the repo URL (https://github.com/oxdc/obsidian-vertical-tabs) and release tag (0.10.0). In addition, could you also provide the debug info? Instructions are available here.

spiritualgeek commented 2 weeks ago

Can do so tomorrow if time permits. My main driver presently is an M1 Studio with 32GB of RAM - Not that old :)

oxdc commented 2 weeks ago

@spiritualgeek Thank you!

Can do so tomorrow if time permits.

That's great! Thank you again!

M1 Studio with 32GB of RAM

Whoa that's not what I expected šŸ¤£ I will try to reproduce this on my own.

oxdc commented 2 weeks ago

Hi @ifulou @spiritualgeek ! The latest version includes a fix that might resolve this performance issue. Please upgrade and test. Thank you!

spiritualgeek commented 2 weeks ago

I appreciate the feedback, but I started using a feature of Another Quick Switcher that I was not before, so I'm no longer using V-Tabs

Note someone on discord is reporting the same - https://discord.com/channels/686053708261228577/694233507500916796/1305653312653099111

I may return to using it in future :)

oxdc commented 1 week ago

Hi @spiritualgeek ! Thank you for providing useful information. I'll try to fix this issue.

Bigmanvst commented 1 week ago

Hi, Great plugin, thanks a lot. But I keep just your plugin installed, and I have this lag. I have Macos / M3 pro, I deactivated for the moment until the update / fix. Thanks Regards.

oxdc commented 1 week ago

Hi @Bigmanvst ! I know this is frustrating. I'm trying very hard to find the cause and get this fixed. This is the first priority now. May I ask if you have time to help me debugging? I desperately need some feedback and useful information from someone who has this issue. Thanks!

oxdc commented 4 days ago

Hi everyone! Some updates on this issue: I can only reproduce it under some extreme conditions. I got access to an old PC and opened about fifty tabs. After few clicks in the file browser, I tried to move a file to some folder, the lag happened, but the issue disappeared a few seconds later. My observation is that when you try to drag and drop a file, Obsidian makes the file browser into focus (or active), which triggers the ā€œactive-leaf-changedā€ event. Vertical Tabs then gets notified to make some updates, which triggers a full rerender of the vertical tab list. While this process is resource demanding and happens immediately when you click and drag the file, there might not be enough CPU power for the render process, thus producing the lag.

For anyone who wants to help me fix this bug, all you need to do is a few clicks and 1 min of your time! Please read the instructions:

Note: There is need to disable or change other plugins and CSS snippets.

image

Thank you for your help!

The official guide on recording can be found in the section "Record runtime performance" here.

oxdc commented 17 hours ago

Hi everyone! Some updates:

The lag is caused by CSS recalculation micro tasks fired when drag&drop files. These tasks are fired even without Vertical Tabs installed, probably to be some design issue of Obsidian. When you use some complex themes or CSS snippets, these micro tasks will take up a huge amount of CPU power. Besides, Vertical Tabs needs to update the states at the same time, since the focus has moved to the File Browser, which causes the appearance of the lag.