Top
Profile
Seminar
Courses -2016
Courses 2018-
Textbooks
Documents
Downloads (-2016)
Downloads (2016-)
Weblog
RSS aggregates
Discussions
Archives
日本語
EMBL BioImage Data Analysis
EuBIAS
NEUBIAS
—-
Contact
CMCI Alumni
ALMF
EMBL Heidelberg
EMBL Intranet
Popularity Ranking
- ijcourses
- python_imagej_cookbook
- 120925gifu
- bleach_corrector
- documents
- 130800snb
- 101105ij_r_jython
- sampleimageloader
- photobleaching_correction_3d_time_series
- 100420frapinternal
| RT @kjaMartens: We created a very simple method to get high precision and density in spectrally-resolved single-molecule localization micro… About 1 day, 14 hours ago by: Kota Miura (@cmci_) |
| RT @random_walker: There’s a reproducibility crisis brewing in almost every scientific field that has adopted machine learning. On July 28,… About 2 days, 3 hours ago by: Kota Miura (@cmci_) |
| @AthaleLab @IISERPune @serbonline @DBTIndia @IFCPAR @OfficialSICI @boschindia Congrats Prof. Chait! About 5 days, 15 hours ago by: Kota Miura (@cmci_) |
| RT @albertcardona: Video of my #I2K2022 entry-level scripting tutorial for #ImgLib2 using the @FijiSc Script Editor: https://t.co/eastROJm0 … About 1 week ago by: Kota Miura (@cmci_) |
| RT @blg_journal: Biological Imaging has two current calls for papers, please share with your networks:
Spatial Analysis in Biological Imag… About 1 week, 1 day ago by: Kota Miura (@cmci_) |
| This reference is also interesting.
What Is the Region Occupied by a Set of Points?
https://t.co/oDajYd4YCt About 1 week, 1 day ago by: Kota Miura (@cmci_) |
Hi Kota,
good to see you playing with ImgLib2. Regarding the benchmarks I want to comment a bit:
1. ImgLib2 virtualizes data access by which it becomes generic. This is standard stuff for all Java programs. The Java runtime has a Just-In-Time (JIT) compiler that can inline frequently called virtual methods by which the execution speed of virtualized data access can become equivalent to that of direct data access. Therefore, abstract code is always slower than direct code the first time you call it but can become equally quick from the second or third call. You should measure the execution speed for several iterations of the same code to see this effect. It is uninteresting to see the first iteration only because it only shows the `warmup' phase which plays only a minor role in a running system.
2. Jython adds an additional level of abstraction that we have not yet tested to its full extent. I would expect it to be slower in general compared with a Java implementation for dynamic typing but this is not always necessary. In addition, I have seen unexpected things happening when using ImgLib2 from Jython because Jython expects an Iterable<E> to deliver independent E instances. ImgLib2 is fast and memory effective because E may be a re-used proxy. We stumbled into Jython implementing a lot of Python sweetness by copying data which may leed to things not work as expected. E.g.
will unfortunately not work because zip apparently creates a reference copy of img1 and img2 by iteration beforehand which then contains only references to the last pixel of img1 and img2 respectively.
Best regards, Stephan