Porting Obsidian to C++ and Legal Issues

For more details on whether the issue is related to single-core performance, you can check out the posts made by @hxxsx, which is also my account. I previously tested some of the best CPUs and GPUs at the time and found that GPU and memory upgrades had almost zero impact on Obsidian’s performance, especially for canvas performance.

You can see the discussion in this post: I have tested the 13900K + 3090, 7950X + 4090, and 7950X3D + 4090, and there is a serious issue with canvas performance. No configuration can smoothly run a canvas card with 26,000 characters of content.

The main issue is that Obsidian only utilizes a single CPU core. This topic is also discussed in detail in this post: Proposal for multi-core processing to boost Obsidian’s efficiency.

This issue left me feeling as hopeless as humanity being unable to escape the solar system — it seemed like an unsolvable problem. The situation becomes especially dire when you open multiple notes that contain ![[]] references to each other, causing extreme lag on the computer.

In an attempt to work around the single-core limitation, I tried using multiple vaults combined with mklink /j to achieve indirect multi-core usage. However, I encountered a critical problem: if multiple vaults opened the same file, it could sometimes result in accidental deletion of parts of the file’s content. For Markdown (.md) files, it’s somewhat manageable, but for canvas files, it’s nearly impossible to detect such issues due to the difficulty of performing a difference check on canvas content.