Describe the bug
I've recently come back to lightzone after many years with other software (I still think lightzone has the most intuitive interface for making photo edits). However I've found that if I edit my photos and add a zonemapper module, lightzone slows to a crawl. In particular when zoomed in (I have a 4k monitor). Often the interface will freeze for 10s of seconds when zooming. If started from a terminal I will see lots of:
EventThread blocked for N.000 seconds
and also:
imer-0: TIMED_WAITING
at [email protected]/java.lang.Object.wait0(Native Method)
at [email protected]/java.lang.Object.wait(Object.java:366)
at [email protected]/java.util.TimerThread.mainLoop(Timer.java:563)
at [email protected]/java.util.TimerThread.run(Timer.java:516)
Thread-5: WAITING
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3780)
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3725)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1712)
at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:535)
at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1070)
at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
at [email protected]/java.lang.Thread.run(Thread.java:1583)
Thread-15: WAITING
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:371)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)
at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3780)
at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3725)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1712)
at [email protected]/java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:535)
at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1070)
at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
at [email protected]/java.lang.Thread.run(Thread.java:1583)
Image Task Queue: WAITING
at [email protected]/java.lang.Object.wait0(Native Method)
at [email protected]/java.lang.Object.wait(Object.java:366)
at [email protected]/java.lang.Object.wait(Object.java:339)
at app//com.lightcrafts.ui.browser.model.ImageTaskQueue.waitForNotify(ImageTaskQueue.java:137)
at app//com.lightcrafts.ui.browser.model.ImageTaskQueue.run(ImageTaskQueue.java:101)
at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
at [email protected]/java.lang.Thread.run(Thread.java:1583)
RawImageCache: WAITING
at [email protected]/java.lang.Object.wait0(Native Method)
at [email protected]/java.lang.Object.wait(Object.java:366)
at [email protected]/java.lang.Object.wait(Object.java:339)
at app//com.lightcrafts.image.types.RawImageCache.run(RawImageCache.java:123)
Finalizer: WAITING
at [email protected]/java.lang.Object.wait0(Native Method)
at [email protected]/java.lang.Object.wait(Object.java:366)
at [email protected]/java.lang.Object.wait(Object.java:339)
at [email protected]/java.lang.ref.NativeReferenceQueue.await(NativeReferenceQueue.java:48)
at [email protected]/java.lang.ref.ReferenceQueue.remove0(ReferenceQueue.java:158)
at [email protected]/java.lang.ref.NativeReferenceQueue.remove(NativeReferenceQueue.java:89)
at [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:173)
ZoneFinder Histogrammer: BLOCKED
at app//com.lightcrafts.model.ImageEditor.ZoneFinder$Segmenter.getNextView(ZoneFinder.java:341)
at app//com.lightcrafts.model.ImageEditor.ZoneFinder$Segmenter.run(ZoneFinder.java:359)
To Reproduce
Steps to reproduce the behavior:
- edit a Sony A7ii arw file
- add a zonemapper tool
- zoom into the image
- change zones in zonemapper
Expected behavior
Photo preview updates reasonably fast
Screenshots
Desktop (please complete the following information):
- Version: Latest git
- OS: arch linux
Additional context
I've tried profiling using visualvm and see lots of time spend on lcms doTransform (but I'm by no means a java expert, so this might be a red herring).
Describe the bug
I've recently come back to lightzone after many years with other software (I still think lightzone has the most intuitive interface for making photo edits). However I've found that if I edit my photos and add a zonemapper module, lightzone slows to a crawl. In particular when zoomed in (I have a 4k monitor). Often the interface will freeze for 10s of seconds when zooming. If started from a terminal I will see lots of:
EventThread blocked for N.000 secondsand also:
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Photo preview updates reasonably fast
Screenshots
Desktop (please complete the following information):
Additional context
I've tried profiling using visualvm and see lots of time spend on lcms doTransform (but I'm by no means a java expert, so this might be a red herring).