Thread Locked This thread is locked - replies are not allowed.



Permlink Replies: 30 - Pages: 3 [ 1 2 3 | Next ] - Last Post: 29 Oct 22, 13:18 Last Post By: JeffTucker
davidekholm

Posts: 3,754
Registered: 18-Oct-2002
jAlbum 29.0.4 service release
Posted: 21 Oct 22, 16:34
jAlbum 29.0.4 is now available as a core update (Tools->External tools->"jAlbum core update").

Fixes:
  • Faster counting of # of total files prior to album builds (multi threaded. 4x speed improvement over a networked drive using a 4 core CPU.)
  • Improved underlying "TreeCollection" API to traverse AlbumObject trees recursively and in parallel: Now handles single rooted trees and unbalanced trees better.
  • TreeCollection can now also include excluded files only (i.e exclude folders, but not files)
  • Fix: Rename bug while renaming a project and clicking on another project
  • jAlbum now remembers the thumbnail zoom level between sessions
  • Removed "View-Large thumbnails". Replaced by the above
  • Fixed Windows bug causing launching the browser to fail after using "Show in file system"
  • Removed old code to manage launching the default web browser

I'll likely ensure that this service release is auto updated, but let's release it like this first, for review.
MarkusD

Posts: 749
Registered: 13-Apr-2006
Re: jAlbum 29.0.4 service release
Posted: 21 Oct 22, 18:23   in response to: davidekholm in response to: davidekholm
davidekholm wrote:
jAlbum 29.0.4 is now available as a core update (Tools->External tools->"jAlbum core update").

Compiling a smaller album (1,381 objects). Unfortunately I forgot to do the profiling with the old version.

jAlbum 29.0.2
"Neuigkeiten" erzeugt in 1m 12,572s

jAlbum 29.0.4
"Neuigkeiten" erzeugt in 49,974s

0,55s ==> 
                             FileFilters.saveImage:    33 calls     18,317s
                        HardwareSmoothScaler.scale:    25 calls      4,667s
                             FileFilters.loadImage:     9 calls      3,709s
                       AlbumBean.registerVariables:  1845 calls      2,929s
                          AlbumBean.makeIndexPages:   117 calls      2,773s
                       RecoveryTool.createLifeboat:     1 calls      1,376s
                     AlbumObjectImpl.getProperties:  1666 calls       1,28s
                        AlbumObjectProperties.load:  1576 calls      1,209s
                                   Create MediaRSS:   117 calls      0,927s
                       AlbumObjectImpl.getMetadata:  1696 calls      0,831s
                JAlbumUtilities.getDeepCameraDates:   117 calls      0,781s
                                              init:     1 calls      0,752s
                     FileFilters.getBasicImageInfo:  1654 calls      0,563s
                     AlbumObjectImpl.getXmpManager:  1602 calls      0,327s
                       FileFilters.unifyColorModel:     9 calls       0,29s
                   JAlbumUtilities.countCategories:   934 calls      0,268s
                     AlbumBean.getFolderProperties:   457 calls      0,206s
                         AlbumBean.countTotalFiles:     1 calls      0,142s
                  JAlbumUtilities.deepLastModified:     1 calls      0,133s
                                    copy res files:     1 calls      0,021s
                          AlbumBean.processFilters:    35 calls      0,004s
                                             Total: 11897 calls     41,505s


What surprises me is the amount of time for "FileFilters.saveImage", because not a single image was new or has changed since the compilation just a few seconds before. So, why are images written, when the haven't changed?
davidekholm

Posts: 3,754
Registered: 18-Oct-2002
Re: jAlbum 29.0.4 service release
Posted: 22 Oct 22, 08:31   in response to: MarkusD in response to: MarkusD
I suspect a sub optimal skin decision to produce theme images. Try making the album once more just to make sure, then switch to the Minimal skin and make the album twice there. Are those saveImage calls gone now?

What skin have you been using?
I think I’ll add a feature to the profiler so we can get stack traces for the calls to saveImage. This will help figure out what’s causing these calls. Stay tuned for a jAlbum update.
RobM

Posts: 3,911
Registered: 4-Aug-2006
Re: jAlbum 29.0.4 service release
Posted: 22 Oct 22, 09:40   in response to: davidekholm in response to: davidekholm
davidekholm wrote:
I suspect a sub optimal skin decision to produce theme images. Try making the album once more just to make sure, then switch to the Minimal skin and make the album twice there. Are those saveImage calls gone now?
Could it be related to the use of webP images are in those albums?
davidekholm

Posts: 3,754
Registered: 18-Oct-2002
Re: jAlbum 29.0.4 service release
Posted: 22 Oct 22, 15:10   in response to: RobM in response to: RobM
RobM wrote:
davidekholm wrote:
I suspect a sub optimal skin decision to produce theme images. Try making the album once more just to make sure, then switch to the Minimal skin and make the album twice there. Are those saveImage calls gone now?
Could it be related to the use of webP images are in those albums?
If ONLY WebP images are generated, then yes. For JPEG images, jAlbum stores the image settings within each image file
MarkusD

Posts: 749
Registered: 13-Apr-2006
Re: jAlbum 29.0.4 service release
Posted: 23 Oct 22, 10:30   in response to: davidekholm in response to: davidekholm
Hi David,

davidekholm wrote:
I suspect a sub optimal skin decision to produce theme images. Try making the album once more just to make sure, then switch to the Minimal skin and make the album twice there. Are those saveImage calls gone now?
Compiling with "Tiger"
"Neuigkeiten" erzeugt in 1m 22,367s
===========================================================================

Compiling with "Minimal" the first time

0,656s ==> 
                             FileFilters.saveImage:  5350 calls  5m 16,527s
                             FileFilters.loadImage:  1278 calls  2m 24,638s
                        HardwareSmoothScaler.scale:  3879 calls    2m 11,6s
                          AlbumBean.processFilters:  6365 calls      7,803s
                       FileFilters.unifyColorModel:  1277 calls      6,978s
                       AlbumBean.registerVariables:  1634 calls      6,437s
                       RecoveryTool.createLifeboat:     1 calls      5,513s
                       AlbumObjectImpl.getMetadata:  1439 calls      5,508s
                     AlbumBean.getFolderProperties:   354 calls      2,931s
                               AlbumBean.makeSlide:  1265 calls      2,376s
                     AlbumObjectImpl.getProperties:  1455 calls      1,584s
                        AlbumObjectProperties.load:  1392 calls      1,513s
                          AlbumBean.makeIndexPages:   117 calls      1,141s
                     FileFilters.getBasicImageInfo:  1443 calls      0,722s
                                   Create MediaRSS:   117 calls      0,619s
                     AlbumObjectImpl.getXmpManager:  1497 calls      0,262s
                   JAlbumUtilities.countCategories:   700 calls      0,163s
                         AlbumBean.countTotalFiles:     1 calls      0,068s
                                    copy res files:     1 calls      0,019s
                                              init:     1 calls      0,007s
                                             Total: 29566 calls 10m 36,412s


Compiling with "Minimal" again
"Neuigkeiten" erzeugt in 19,169s
===========================================================================

0s ==> 
                             FileFilters.saveImage:    42 calls      4,951s
                       AlbumBean.registerVariables:  1634 calls      2,963s
                        HardwareSmoothScaler.scale:    41 calls      2,758s
                             FileFilters.loadImage:     9 calls      2,598s
                       AlbumObjectImpl.getMetadata:  1439 calls      1,734s
                       RecoveryTool.createLifeboat:     1 calls      1,726s
                               AlbumBean.makeSlide:  1265 calls      1,348s
                          AlbumBean.makeIndexPages:   117 calls      1,039s
                     AlbumObjectImpl.getProperties:  1455 calls      0,848s
                        AlbumObjectProperties.load:  1392 calls      0,795s
                     FileFilters.getBasicImageInfo:  1443 calls      0,681s
                                   Create MediaRSS:   117 calls      0,512s
                     AlbumObjectImpl.getXmpManager:  1497 calls      0,233s
                       FileFilters.unifyColorModel:     9 calls      0,197s
                   JAlbumUtilities.countCategories:   700 calls      0,155s
                     AlbumBean.getFolderProperties:   336 calls      0,081s
                         AlbumBean.countTotalFiles:     1 calls      0,078s
                                    copy res files:     1 calls      0,022s
                                              init:     1 calls      0,006s
                          AlbumBean.processFilters:    35 calls      0,001s
                                             Total: 11535 calls     22,726s


Compiling with "Minimal" again
"Neuigkeiten" erzeugt in 17,891s
===========================================================================

0s ==> 
                             FileFilters.saveImage:    42 calls       5,48s
                        HardwareSmoothScaler.scale:    41 calls      3,005s
                             FileFilters.loadImage:     9 calls      2,603s
                       RecoveryTool.createLifeboat:     1 calls      1,745s
                       AlbumBean.registerVariables:  1634 calls      1,432s
                               AlbumBean.makeSlide:  1265 calls      1,285s
                          AlbumBean.makeIndexPages:   117 calls      0,862s
                     AlbumObjectImpl.getProperties:  1455 calls      0,729s
                        AlbumObjectProperties.load:  1392 calls      0,682s
                       AlbumObjectImpl.getMetadata:  1439 calls      0,473s
                       FileFilters.unifyColorModel:     9 calls      0,467s
                                   Create MediaRSS:   117 calls      0,455s
                     FileFilters.getBasicImageInfo:  1443 calls      0,255s
                     AlbumObjectImpl.getXmpManager:  1497 calls       0,23s
                   JAlbumUtilities.countCategories:   700 calls      0,154s
                     AlbumBean.getFolderProperties:   345 calls      0,077s
                         AlbumBean.countTotalFiles:     1 calls      0,058s
                                    copy res files:     1 calls      0,022s
                                              init:     1 calls      0,005s
                          AlbumBean.processFilters:    35 calls      0,001s
                                             Total: 11544 calls      20,02s


What skin have you been using?
I use Tiger.

I think I’ll add a feature to the profiler so we can get stack traces for the calls to saveImage. This will help figure out what’s causing these calls. Stay tuned for a jAlbum update.
Sounds good. Thanks!
davidekholm

Posts: 3,754
Registered: 18-Oct-2002
Re: jAlbum 29.0.4 service release
Posted: 23 Oct 22, 12:49   in response to: MarkusD in response to: MarkusD
Now I've updated the Profiler. Do a core update to get hold of the update, then open the system console, set it to "Groovy" mode and issue:
Profiler.instance.forSample("FileFilters.saveImage").traceCalls = true
. This will switch on call stack logging.

Now make the gallery twice. Now request a list of all call stacks for that method call:
Profiler.instance.getSample("FileFilters.saveImage").callStacks

Paste the result to me here :-)
MarkusD

Posts: 749
Registered: 13-Apr-2006
Re: jAlbum 29.0.4 service release
Posted: 23 Oct 22, 13:37   in response to: davidekholm in response to: davidekholm
davidekholm wrote:
Now I've updated the Profiler. Do a core update to get hold of the update
I did that, but I still have version 29.0.4. I'm getting an error if I call your code:
An unexpected error occurred. Please see detailed description below:
 
javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: net.jalbum.util.Profiler.forSample() is applicable for argument types: (String) values: [FileFilters.saveImage]
	at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:164)
	at net.jalbum.script.GroovierScriptEngine.eval(GroovierScriptEngine.java:86)
	at java.scripting/javax.script.AbstractScriptEngine.eval(Unknown Source)
	at se.datadosen.jalbum.JConsoleFrame.processExpression(JConsoleFrame.java:372)
	at se.datadosen.jalbum.JConsoleFrame.access$100(JConsoleFrame.java:66)
	at se.datadosen.jalbum.JConsoleFrame$2.actionPerformed(JConsoleFrame.java:150)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: net.jalbum.util.Profiler.forSample() is applicable for argument types: (String) values: [FileFilters.saveImage]
	at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:334)
	at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:161)
	... 40 more
Caused by: groovy.lang.MissingMethodException: No signature of method: net.jalbum.util.Profiler.forSample() is applicable for argument types: (String) values: [FileFilters.saveImage]
	at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:72)
	at org.codehaus.groovy.vmplugin.v8.IndyGuardsFiltersAndSignatures.unwrap(IndyGuardsFiltersAndSignatures.java:161)
	at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:318)
	at Script1.run(Script1.groovy:1)
	at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:331)
	... 41 more


I used the tool "jAlbum core update.groovy":
/* jAlbum core AND BETA update by RobM derived from David's core update tool */
/* Version 3, dated 23 Apr 2022 */


Which version should the core update show on my computer?
RobM

Posts: 3,911
Registered: 4-Aug-2006
Re: jAlbum 29.0.4 service release
Posted: 23 Oct 22, 15:27   in response to: MarkusD in response to: MarkusD
The combined update tells you if there is no update, a core update, a beta update or an alpha (undisclosed but available). What message did you get?
MarkusD

Posts: 749
Registered: 13-Apr-2006
Re: jAlbum 29.0.4 service release
Posted: 23 Oct 22, 15:55   in response to: RobM in response to: RobM
I got his:



RobM

Posts: 3,911
Registered: 4-Aug-2006
Re: jAlbum 29.0.4 service release
Posted: 23 Oct 22, 16:18   in response to: MarkusD in response to: MarkusD
Ok, so no update was found in the expected locations and thus nothing updated. One for David.
JeffTucker

Posts: 7,896
Registered: 31-Jan-2006
Re: jAlbum 29.0.4 service release
Posted: 23 Oct 22, 16:26   in response to: RobM in response to: RobM
The "normal location" for beta cores currently contains the core for 29b15, which, of course, has been superseded. David seems to have a great deal of difficulty keeping this location "clean." Perhaps he should write a little script to take care of it for him. ;)
davidekholm

Posts: 3,754
Registered: 18-Oct-2002
Re: jAlbum 29.0.4 service release
Posted: 24 Oct 22, 09:43   in response to: JeffTucker in response to: JeffTucker
I was in a bit of hurry yesterday. Now the core update should work properly and bring you v29.0.5 (I bumped the version number too just to be sure).
MarkusD

Posts: 749
Registered: 13-Apr-2006
Re: jAlbum 29.0.4 service release
Posted: 24 Oct 22, 17:57   in response to: davidekholm in response to: davidekholm
davidekholm

Posts: 3,754
Registered: 18-Oct-2002
Re: jAlbum 29.0.4 service release
Posted: 25 Oct 22, 00:26   in response to: MarkusD in response to: MarkusD
Thanks Markus. That sadly didn't reveal much more. We need the file names of the files saved. I've added that debug into to v29.0.6 now. Do a core update and rerun the album making, then pass me the log. It will print "Saving <file here>" for each saved file if you have logging level set to "FINE"
Legend
Forum admins
Helpful Answer
Correct Answer

Point your RSS reader here for a feed of the latest messages in all forums