Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve performances #16

Open
lilive opened this issue Feb 17, 2023 · 4 comments
Open

Improve performances #16

lilive opened this issue Feb 17, 2023 · 4 comments
Labels
enhancement New feature or request

Comments

@lilive
Copy link
Owner

lilive commented Feb 17, 2023

Jumper is near unusable with very big maps. I open this issue to inform the user who may wait for improvement.

A first step would be to implement multi threading. I've already worked on it, but I struggle with concurrency problems. Some help about Java multi threading would be nice.

Because Jumper work with plain text, and not with HTML/Markdown formatted text, it has to generate this plain text for nodes with formatted text. This is time consuming for large maps. So, another idea would be to cache a plain text version of the map. But I'm reluctant to introduce some map changes monitoring that may update the cache as the user modify the map.

Another idea may be to try to rewrite some parts of Jumper in Java instead of groovy, perhaps this speed up thinks. Wait ! I just realize that I never read nothing about Groovy performances and optimization. I have to. Any pointer on good resources on this topic are welcome.

@lilive lilive added the enhancement New feature or request label Feb 17, 2023
@lilive
Copy link
Owner Author

lilive commented Feb 17, 2023

@euu2021
Copy link
Contributor

euu2021 commented Mar 15, 2023

The "Find and Replace" in Freeplane performs very well. Isn't it possible to get inspiration from it?

@EdoFro
Copy link

EdoFro commented Mar 15, 2023

Because Jumper work with plain text, and not with HTML/Markdown formatted text, it has to generate this plain text for nodes with formatted text.

With HTML is no problem. the problem is with the Markdown formatted text.

For HTML you can use:

println node.plainText
println node.details.to.plain
println node.note.to.plain

it would be nice to have direct access (as read only) to the html generated from the markdown, and to the plain text after that.

@EdoFro
Copy link

EdoFro commented Mar 17, 2023

I was looking at the Freeplane code and saw that the method used to transform from html to plain get cached, that's why it's so fast in Freeplane to search for terms:

look here:
https://github.com/freeplane/freeplane/blob/839669f4d6870208a73b8bce648a1a6805e3efb9/freeplane/src/main/java/org/freeplane/core/util/HtmlUtils.java#L115

So it may be a good solution to use

node.plainText
node.details.to.plain
node.note.to.plain

for your searches

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants