|
Bugzilla – Bug 899 |
IJ2 under Vista: very long delay opening image file |
Last modified: 2015-10-26 13:51:58 CDT |
| ⚠ |
NOTICE! This is a static HTML version of a legacy Fiji BugZilla bug. The Fiji project now uses GitHub Issues for issue tracking. Please file all new issues there. |
| IJ2 under Vista: very long delay opening image file | |
|
|
|
||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||
Curtis, I'm not sure if your previous comment was intended for me, but I expect I don't have js build capability, unless it's included by default in the java package that runs fiji in Vista and there's a way of getting at it that I don't know. Nonetheless, this morning I am noting these differences: a) There is no new toggle (yet, expected I suppose) in Options->ImageJ that you describe. With SCIFIO enabled ..... b) If I manually open a 10 mpx 3 MB JPG there is still that 22s of CPU idle time before the image appears. It takes a total of ~35s for the image to show up. c) But, if I open a 16-bit 40 MB PNG version of the same image, it shows up in ~12s with no idle time -- much better. So there must be an improvement here. d) The macro that executed in ~50s a few days ago now runs in ~30s. I see cores run high with no ~22s CPU idle time, so the idle time appears to be eliminated. The interesting thing here is that there is no idle time either for PNGs or JPGs, which is curious because with PNGs performance agrees with (c) but for JPGs contradicts (b), to the better of course! Moral of the story ... if you can make (b) work like (c) then I expect (not tested yet) that SetBatchMode(false) for debugging my macros will give me better performance too.> Looking forward to a solution. Note that this is an Open Source project. That means that you can make happen what you desire to see. Or you can wait and lean on volunteers to do the work for you, at a time when their goals match yours. It is fundamentally *your* choice which route you choose.To interrogate whether SCIFIO is active in your ImageJ, you can use the OptionsService API. Here is an example Jython script: # @OptionsService optionsService from net.imagej.legacy import ImageJ2Options scifio = optionsService.getOptions(ImageJ2Options).isSciJavaIO() print("SCIFIO? " + str(scifio)) The same approach should work with any scripting language _except_ for ImageJ 1.x macros, since they do not support access to the complete Java API of ImageJ etc. Regarding performance improvements to SCIFIO and ImageJ-Legacy: yes, they are certainly needed and planned, and will remain on the radar. But it requires a substantial retooling of the ImageJ-Common library, among other involved efforts. Thus, due to limited developer resources, I cannot promise a timeline. Since improving SCIFIO performance is more of a feature request than a bug, and since there is a simple workaround to any performance issues (i.e.: turn off SCIFIO and ImageJ2 data structures), I am closing this bug as resolved. In the meantime, for your 16-bit PNGs, you can force use SCIFIO via File > Import > Image... (way at the bottom of the menu! or use the Command Finder by pressing L). That way you can at least write a macro that will support all your images via case logic.I'm not yet at the level of coding Jython and the like, but I appreciate your solution offer and will return to this thread when I get up to speed. So far macros have been working very well for me, are fast to develop and are easy to debug because of their tight relationship with menu commands. WRT to 16-bit PNGs ..."you can force use SCIFIO via File > Import > Image... (way at the bottom of the menu!" Yes nice, I tried this from the menu and it worked ... I turned OFF both SCIFIO and IJ2 structs and Fiji presented the image in full 16-bit, as though both options were ON. The same 10s delay takes place but it worked. I got excited because this looked like a good solution for both the many 1-second JPGs and the hi-res solitary PNG as needed, but alas, macro record emitted only this line: run("Image... ") without file information or other parameters in the window. It's as though the macro script is incomplete for the command???