It is reported that the largest known mindmap used in FreeMind was 11 MiB with 22 000 nodes, equivalent to 1500 pages of text [source]. I wonder how they did this, as FreeMind started to become really slow in reaction for some activities in one of my mindmaps that was 2 MiB with approx. 10 000 nodes. I was using FreeMind 0.9.0 RC6.

Symptoms

In my FreeMind performce problem, I had the following symtoms:

  • Sometimes, reaction times from 0.8-1.2 s when selecting a different node with the mouse; after such a long-delay selection, most nodes in vicinity could be selected without any noticable delay.
  • Regular latencies of 0.8-1.2 s when adding a note (by pressing “Enter”), and additional 0.8-1.2 s of latency before letters that are written into this new node appear on the screen. After that, one could write without a delay. If one would wait after adding a node until the caret starts to blink in the text field, one could then start typing in a way so that letters appear on the screen immediately, but the total latency would stay the same.
  • Of course, long latencies (perhaps 10-15 s) for special operations like “select all nodes” (Ctrl+A). But this was still tolerable, as it is rarely needed.

Solution

The only solution (rather, workaround) that I found so far is to reduce the number of nodes in your mindmap. This probably means to outsource some branches to external mindmaps and link to them from your central mindmap. Depending on what you store in your mindmap, it could also mean to combine nodes into one (like transforming the subnodes of a list-type node into items of a bulleted list in one HTML node).

If your mindmap only uses HTML nodes and you do not really need HTML as you employ no formattings, convert these HTML nodes to plain text nodes. In my informal tests, this improves performance by some 30%. Using a mindmap that not even contains icons and styles seems to further speed up things (maybe another 30%), but I did not thoroughly test this.

Discussion

From my informal tests it seems that FreeMind latency times in the above mentioned cases linearily depends on the number of nodes. Much text in the mindmap is not so much of a problem: I had a 2.8 MiB mindmap with much less nodes (estimate: 1500) and could still comfortably work; even though most of these nodes were HTML nodes … .

After splitting the problematic mindmap into two (one with 6000, one with 4000 nodes) I could work with sufficient comfort again. Inserting nodes and starting to type now took 0.4-0.6 s (in the cases where high latency is experienced). Selection was alwayss instantaneous.

Also, it seems to not influence FreeMind performance with large maps if your nodes are descendants of an encrypted node (like in my above mentioned 10 000 node mindmap) or not.

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>