For heavy Canvas users (from hundreds of thousands to millions of words), which computer components should be upgraded?

Hello everyone, I would like to upgrade my computer.

My current computer has a CPU: 3700x, GPU: 3060, Memory: 3200 32G,OS: Win10

Compared to traditional linear documents, Canvas can provide two-dimensional documents that are more convenient for reading and processing. I often write hundreds of thousands of words in Canvas or Markdown notes, which include a large number of LaTeX mathematical formulas and various callout references.
I clearly feel the lag as the word count increases (although on Canvas, creating new cards can alleviate this, but if they are arranged horizontally instead of vertically, it will still be very laggy).

So, I want to upgrade my computer.
I have upgraded the GPU but felt almost no improvement.
I think I should upgrade the CPU, especially in terms of single-core performance. Because I have adjusted the Windows scheduling to utilize all CPUs. It seems that Obsidian is not very well optimized for multi-core. So, what kind of CPU should I choose? Intel or AMD? And what parameters should I look at? Such as AVX512? Or L3 cache? And for AMD, should I choose the X3D version or the non-X3D version? I am currently leaning towards Zen5 (because there have been stability issues with the 13th and 14th generations of Intel).

It would be great if we had a performance testing program or benchmark for Markdown or Obsidian. Or what kind of indicators should we care about? As a heavy Canvas user like myself, I desperately need a smooth Canvas and Markdown experience that can support hundreds of thousands to millions of words, because I often write a lot for a chapter of notes (I am a Chinese user).

My current vault is on an SSD. So far, I have tried the following methods:

  1. Disabling AMD’s Simultaneous Multithreading (SMT), which has stabilized and improved the single-core performance of my CPU. My CPU-Z single-core score has become stable, increasing by 10 points. The stuttering has been somewhat alleviated, but I’m not sure if this is just a placebo effect or if it’s real. It would be great if there were a dedicated performance test standard for Obsidian. (However, since I urgently need the S3 sleep function, I have to enable it. I’m not sure if this is the case for all AMD CPUs or just AM4, but disabling SMT results in the loss of S3 sleep.)
  2. Increasing the memory frequency from 3000 to 3200 didn’t result in a noticeable difference.
  3. Updating to the latest BIOS, chipset drivers, and enabling the hardware-accelerated GPU scheduling in Windows did not bring any perceptible improvements, or perhaps a little, but it’s not quantifiable.
  4. Using the following commands: powercfg -attributes SUB_PROCESSOR 93b8b6dc-0698-4d1c-9ee4-0644e900c85d -ATTRIB_HIDE and powercfg -attributes SUB_PROCESSOR bae08b81-2d5e-4688-ad6a-13243356654b -ATTRIB_HIDE. I selected the power plan ‘AMD Ryzen High Performance’ and changed both the ‘Heterogeneous Thread Scheduling Policy’ and ‘Heterogeneous Short Running Thread Scheduling Policy’ to all processors. I feel there’s a slight improvement, but again, since it’s not quantifiable, I don’t know if it’s just a placebo effect.

P.S.: I think Canvas is much more user-friendly than Markdown, but it seems like not many people use it? I haven’t tested documents entirely in English yet, so I don’t know if the stuttering is caused by Chinese characters

You talked about word count. Can you mention the approximate number of canvas cards you have, as an example?

I also wonder how number of cards vs. number of words would impact performance.

I opened a canvas file that I’m currently using with Vscode. For instance, this could be an excerpt, summary, and reflection of a chapter from a book I’m reading. There are 35 lines starting with {"id":"xxxxxx","type":"text","text":" , which I think should correspond to 35 cards.
The total word count is 230,880.
未命名.zip (3.8 KB)

I have a test canvas file here, and my notes are generally like this. You can noticeably feel it’s very laggy.
The first line demonstrates that if two cards are displayed side by side, it exacerbates the lag.
The second line shows that if you write too much in one card, then editing afterward, whether typing in Chinese or English, will have a significant delay.
The third line shows that if you split the content that can be divided into two different cards, the lag will ease.
Typically, I write about several hundred thousand words for one chapter, and for some content that is difficult to split, such as due to indentation or formatting issues, the content of one card is about 11,548 words (for example, if you’ve imported images, selecting all the cards and stretching them will scale proportionally. Moreover, the handling of indentation for quoted content is very poor, one reason is the lag, and the other is the lack of shift+tab functionality within quotes).
Because Canvas doesn’t have a good quoting feature, I’ve also created a separate directory canvas to extract meaningful content from each chapter. This way, it forms a canvas of a million-word level. However, I think the total word count doesn’t have a significant impact on canvas performance. The key point is, you cannot display cards side by side, and you cannot write too much in one card

I tested it again, and for a card with a word count in the tens of thousands, such as 12,960 words, there is a noticeable lag on a 3700x processor.
Therefore, I think there are two current issues.
First, when a card contains tens of thousands of words, it results in editing lag.
Second, the lag caused by the side-by-side display of cards in Canvas—I’m not sure if it uses multi-core processing or if it’s all handled by the same core. But clearly, if Canvas can’t properly support the horizontal arrangement of two cards, then its two-dimensional display functionality will be halved, turning into just a more convenient vertical display.

Lastly, thank you very much for reading.
P.S.: I think ‘words’ here might be more appropriately changed to ‘characters’.

1 Like

I turned off SMT and tested again, but for a card with 12,960 characters, it still lags, and the situation doesn’t seem to have improved. I’m a bit curious, would the large L3 cache of the X3D improve this situation? Or would a CPU with a higher main frequency improve it? At least when I turned off SMT, the single-core score in CPU-Z increased by 10 points, but it seems that the highest main frequency is only 4.3GHz (the same as when it’s on).

I read online that it seems to be related to the optimization of the editor and the performance of the parser? ‘The marked syntax parsing is too slow, and there is also the blockage caused by DOM rendering.’ Because I don’t know much about computers, I am now very confused about which hardware I should upgrade, what hardware to choose. In my understanding, a markdown file is only a few hundred KB, so a 32MB L3 cache should be enough, right? And I also have 32GB of RAM at 3200.
I also have a MacBook Pro 2020 2GHz i5, and the experience is very bad. So I’m sure it should have nothing to do with my own system, software, or plugins.

I heard that Intel desktop CPUs have higher clock speeds. Should I choose an Intel CPU over an AMD one?

PS: It would be greatly appreciated if there are any future optimizations for handling large amounts of content. For instance, enabling GPU assistance or optimizing multicore processing. /(ㄒoㄒ)/~~,I never thought that in order to write documents, my computer would need to match the capabilities of a gaming computer.

Not sure this snippet I made affects canvas nodes with high word counts, but it does significantly increase canvas navigation performance on my machine:

2 Likes

Thank you very much. I really wish I had seen this sooner. I tested the Canvas performance on some high-end computers, and it seems that current human technology cannot smoothly run a Canvas with tens of thousands of characters. I will try your method in a moment.

I tried it out, but it didn’t have any effect in my environment. The problem still lies in the fact that when there is too much content on the page, the way Canvas cards and Markdown are processed is different; the former doesn’t seem to be rendered in blocks. This issue is particularly evident with parallel cards. The main problem is that Canvas has not been well optimized for multicore and hardware acceleration, resulting in an extreme reliance on single-core performance. You can check out the test video I posted in another thread