Columns CSS/columns plugin creates performance issues

When opening new files through link jumping to certain parts of the notes, using bookmarks 2 plugins (and 1 CSS) create issues.

Ordered by how severe of a lag it creates (from top to bottom):

  1. Multi-Column Markdown
  2. This multi-column CSS
  3. Advanced tables (which I easilily got rid of - the issue is fixed)

When disabling those plugins the opening time goes down from 1.5 seconds to 0.6 seconds. Here is a video:
ObsidianLag

What I’m trying to do

Is it possible to replace the multi-column plugin and CSS so that I can have better performance? Or is it the Obsidian itself has beef with multiple columns in general.

Also, if I can improve the notes opening time even more (to access them at the speed of thought) I would love to hear some suggestions.

Things I have tried

  1. Opened the vault in sanbox, started deleting files/images, turning off custom CSS, community plugins, core plugins to pinpoint those 3 issues.
  2. Having the highest priority in the Windows task manager - it made no difference.

I use:
Obsidian 1.4.16
Windows 10

P.S. I’m not sure if this fits in the “Help” or “Bug reports”

hey there. i don’t think CSS would have that performance effect. perhaps u can test those potential issues one by one instead?

Alone your CSS introduces around 0.5 seconds of lag when opening a note that has multiple columns callout block. If I open a note that uses both CSS and the multi-column plugin then it introduces 1 second lag.
P.S. it only happens in larger files when I link jump to a certain heading/block and obsidian lags on scrolling down for around 1 second.

Not sure if I can solve it for u. But I would like to take closer look. Any chance I u can share the two markdown notes? So that I can try to repro it

I created a repo with those 2 markdown files, attachments, plugins, CSS. If I have 2 linked panes (source and reding modes) then try to use the bookmark - it takes 1.5 seconds for me.

I think if you test it with turned on CSS and Multi-column-css plugin and then without them - there should be a noticeable speed increase.

1 Like

I saw your exchange on Discord earlier.

efemkay has probably seen this, but I would post an issue on their GitHub page (if you haven’t yet) so it’s in their queue.

That said, I downloaded this vault a few weeks ago when I first saw your post, and didn’t see any significant slowdown on a mac M1 pro / 32GB RAM, but did see some slowdown using a Windows 11 core i3 (something) / 16GB RAM. Some combination of system specs, note content, and the added plugins/CSS?

yeah. just read the discord thread. i’ve trying to figure out what’s what past couple of weeks and i think i know the potential cause but it’s a tricky one.

for now what i’ve able deduce is it’s the combination of some plugins (that need frequent refreshes like dataview) and my snippets where the use certain css has (not all instances of has block repainting) that’s blocking the layout repainting.

if you want to observe it, do the following

  • open obsidian and browser together
  • for the browser keep any long (5 min or so) youtube playing in the background
  • for obsidian, (a) have dataview installed and enabled, and (b) open a long note (like 2~3 screen long) with a number of formatting (think many headers, links, and so on)
  • press and hold one key so that it continuously typed for 3~4 lines (assuming you have readable line length enabled)

Note

  • it is more apparently in lower spec computer
  • it is compounded when using the snippets with certain community theme. using default theme will have less impact on performance
  • on my Windows 10 Intel(R) Core™ i5-1135G7 @ 2.40GHz and 16.0 GB (15.7 GB usable) i can only observe it with those setups and since i’ve optimised my listive theme, i notice it much less

unfortunately for me, i still need to figure out how to optimise them for MCL. i use css has to avoid using plugins like contextual typography. currently i’m exploring (a) whether css contain can help on this front or not, and (b) see how i can rewrite some of the code to optimise for performance.

p/s: css optimisation is new for me and most advices (in css tricks article and the likes) are for first loading and painting. so if anyone has tips, appreciate all the help i can get


if you need some quick fix for now, here’s what i would suggest

  • disable any plugin that triggers automatic refreshing (like dataview “automatic view refreshing” here)
    • image
  • reduce the refresh rate for plugins like various complements
1 Like

Same problem, I enabled restricted for plugins and disabled all other css snippets, I tried different combinations but always the same result.
The performance degradation happens only when MCL snippet is enabled.
I’ll try leaving only what I need in the snippet, hopefully that will help.

1 Like

Recently, I have presented the same problem. I had to try plugin by plugin and css by css to find out what the problem was, it was MCL Multi Column. I haven’t found an alternative yet either.

1 Like

Has anyone found a workaround here yet? Having the same issue, but I love the snippet.

1 Like

My solution was just stripping down the CSS file to ~20 lines (I use only the default theme, so I don’t care about compatibility issues), idk if it’s placebo but Obsidian feels faster.

div[data-callout*="multi-column"].callout > .callout-title { display: none }
div[data-callout="multi-column"].callout > .callout-content { display: contents } 

div[data-callout="multi-column"].callout { 
	display: flex;
	gap: 8px;
	background: unset; border: unset; padding: unset;
	margin-top: 8px;
	margin-bottom: 8px;
}

div[data-callout="multi-column"].callout > .callout-content > *:is(div,ul,blockquote,p) { 
	width: 50%;
	margin: 0;
}

div[data-callout*="blank"].callout > .callout-title { display: none }
div[data-callout*="blank"].callout > .callout-content {display: contents }
div[data-callout*="blank"].callout {
	border: 0; padding: 0;
	background: unset; box-shadow: unset;
}
1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.