Memory use on Windows

Operating system

Windows

Joplin version

2.13.6

Desktop version info

Joplin 2.13.6 (prod, win32)

Client ID: {should I really share this Client ID ???}
Sync Version: 3
Profile Version: 44
Keychain Supported: Yes

Revision: e7dd981

Admonition markdown extension: 1.1.0
Csv Import: 1.0.1
Delete unlinked resources: 1.0.0
Enhancement: 1.2.1
Outline: 1.5.13
Quick Links: 1.2.4
Rich Markdown: 0.13.3
Simple Backup: 1.3.3
Templates: 2.4.0

Sync target

File system

What issue do you have?

Joplin under Windows 10 x64 (at least) uses a lot of memory. (I've only been using it for 6 months or so, but all versions through to v2.13.6 seem guilty.) I understand that memory isn't quite the issue was back-in-the-day, and I also understand that memory use is part of the cost of modern app development where we embed various generic components rather than have to build our own buggy versions from scratch. Most of the time it's a reasonable trade-off. So, with all that said...

I'm seeing Joplin use between 500MB to sometimes well over a 1GB of memory in the Working Set after you add up the separate processes. Yes, some of the plugins are definitely adding to it, but even disabling them all I see 600MB in a tiny test profile. I see the memory use whether using a local profile or a OneDrive profile. It's not the end of the world, most modern systems have lots of RAM (although I generally work inside a VM which is a bit tighter) with lots of scratch space. But this is often more memory than my browser (which I'm guessing may be the largest part of Joplin's memory use anyway).

So my question becomes: are there any settings I can use that might make Joplin a bit more conservative in its memory use? If there aren't any now, do you think it might be possible to introduce such option(s) in the future? This might help it play nice on more constrained systems like some of my VMs.

I have asked the same question quite a while ago. I was told that the electron libraries are guilty of badly eating into the memory resources. This said, Joplin cannot help it, and there is no switch to this end the user can flip.

I'm not certain the way memory usage is reported these days is accurate anyway. I think it allocates memory but doesn't necessarily use it, and if for some reason your system starts running out of memory, this pre-allocated memory will be released.

Maybe someone with a better knowledge of Windows can confirm this.

There is no doubt that memory is a complex topic and blindly reciting total allocation figures as I have is not necessarily helpful. It's bad enough just talking about a normal physical machine, add virtualisation over top and things get even more interesting.

@laurent You can see the re-arrangement of memory in things like: when I first start Joplin with all plugins active, the working set climbs to 1.5GB, but if I leave it alone for a while, the working set drops to under 1GB.

Watching the physical memory and commit charge on my main work VM climb into the 90s (%) has had me concerned, but pagespace is currently managed by the OS, and so far no actual problems ... we'll see how it goes.

For me, it's only 400 MB, and this is with two plugins installed and enabled (also under Windows 10 x64). I have disabled all built-in Markdown plugins except for Linkify though, however I'm not exactly sure whether these also contribute to the RAM usage in any significant way.

Joplin 2.12.19 (prod, win32)

Client ID: 
Sync Version: 3
Profile Version: 43
Keychain Supported: Yes

Revision: 7081046

CodeMirror Options: 1.1.0
Repeating To-Dos: 0.11.0

Yes, task manager reports around 400MB for me, the 600MB I reported came from the Working Set value in Process Explorer ... I think Task Manager is reporting WS Private or something. As far as I can tell, the built-in markdown options don't affect the memory consumption overly much. In fact...

It looks like each plugin adds it's own Joplin process at around 100MB each - and the size of each process doesn't appear to vary all that much even for plugins that don't seem to have much reason for it. So adding a plugin like Joplin Enhancement with its many selectable options, is much more memory efficient than having issued the individual items as separate plugins.

This suggests that one way to rein in memory use would be to find a different way to manage plugins. (On the other hand, separate processes for each plugin can improve stability and security.)

Maybe some mid-way solution would work, where plugins are only loaded when actually being used. Things like Csv Import and Delete Unused Resources, and even Templates are stuff I use briefly every now and then, so I could save 300MB of memory by disabling these until I need them, or Joplin could try to find a way to make this easier.

1 Like

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