Comments (4)
Hi!
Thanks for the repro, I've been able to reproduce the issue. Seems to be a bug in context implementation, it's cache has lots of deeply-nested [:dirty [:dirty [:dirty ...]]]
entries. I'll think about it.
I also noticed you don't have core.cache
factory for the context, which will eventually lead to out of memory errors: see example.
This might be a very difficult bug to fix, context stuff turned out to be too damn hard to comprehend. I would suggest not using fx/create-app
, perhaps you could use simple atom and renderer with passing data around.
from cljfx.
Actually, I might have a solution, I'll need to test if thoroughly though...
from cljfx.
Hi! Thanks for looking at it @vlaaad.
Yeah I tried to see if I could figure out what was wrong before reporting the bug but had a hard time wrapping my head around the code.
I was trying the subscriptions route because of performance issues, to avoid the entire diagram to be recalculated every time something simple like a node coordinate change.
Also I was seeing (checking with jvisualvm) lots of garbage being generated and collected while dragging the node around. Maybe it is not a good approach for things like this.
from cljfx.
I think I might have fixed your issue.
You need to use core.cache
with contexts: I added #(cache/lru-cache-factory % :threshold 256)
as a second parameter to fx/create-context
and it stopped printing "Rendering diagram"
(I also added cache use in every example of contexts).
By the way, the fact that it's printed means that we call this function, it does not mean that any JavaFX objects will be re-created. The work cljfx does for checking if the current component description is the same as the previous one is still there, it just happens without calling your function.
from cljfx.
Related Issues (20)
- Spinner Example
- controlsfx, CheckComboBox HOT 7
- depstar is deprecated and archived; switch to tools.build HOT 2
- The example project fails with (UnsupportedOperationException) HOT 6
- Mouseclick and textfield ?
- Support for CheckBoxTreeItem/CheckBoxTreeCell
- Method for adding another context-like property HOT 1
- Runnning examples/e20_markdown_editor results in NullPointerException: HOT 1
- How do I use StyledTextArea or any new class? HOT 2
- Broken encoding for Sanskrit text in WebView HOT 2
- How do I exit the packaged app on window close or menu quit command HOT 2
- Unable to open DISPLAY HOT 4
- Trying to understand the lifecycle again
- Using cljfx with Gradle HOT 2
- Problem using leiningen HOT 2
- how to pass args to constructors HOT 3
- how to set the background of a region HOT 5
- Children: duplicate children added: when using pie-chart and dynamic rendering HOT 3
- Memory reuse with `fx/ext-instance-factory` HOT 5
- behavior of tree cell factory
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cljfx.