Comments (6)
the current values is (for 200 Pilatus 2M images):
Decompression byte ofset: 1.4s
MD5 sum: 0.7s
numpy.astype: 0.5s
total: 2.8s
Both astype and MD5 could be skipped when speed is really needed
from fabio.
After simple optimization on reaches 1.8s.
the byte_offset should ideally provide int32 (instead of int64 in the generic case) which would prevent the memcopy & cast
from fabio.
Hi Jerome,
Vadim's code in cryio might be useful for doing a benchmarking
comparison as it has already been optimized. It can be found at:
http://www.3lp.cx/cryio/
Back in November 2014 we saw:
In [23]: %timeit ret = cryio_cbfimage.CbfImage("run2_1_00148.cbf")
10 loops, best of 3: 29.8 ms per loop
In [25]: %timeit ret = fabio.open("run2_1_00148.cbf")
10 loops, best of 3: 150 ms per loop
I seem to remember that it was before some cif optimisations...
On 21/03/2016 17:34, Jerome Kieffer wrote:
After simple optimization on reaches 1.8s.
the byte_offset should ideally provide int32 (instead of int64 in the
generic case) which would prevent the memcopy & cast—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/kif/fabio/issues/52#issuecomment-199369073
from fabio.
After optimization, reading of 200 files takes 1.17s (0.93s for the decompression and 0.09s for the read itself)
In [14]: %timeit fabio.cbfimage.CbfImage().read("run2_1_00148.cbf")
10 loops, best of 3: 20.7 ms per loop
%timeit fabio.cbfimage.CbfImage().read("run2_1_00148.cbf", check_MD5=False)
100 loops, best of 3: 12.4 ms per loop
from fabio.
Hi
Vadim's code in cryio might be useful for doing a benchmarking
comparison as it has already been optimized. It can be found at:
http://www.3lp.cx/cryio/
Back in November 2014 we saw:
In [23]: %timeit ret = cryio_cbfimage.CbfImage("run2_1_00148.cbf")
10 loops, best of 3: 29.8 ms per loopIn [25]: %timeit ret = fabio.open("run2_1_00148.cbf")
10 loops, best of 3: 150 ms per loop
I may try to run the tests again, to compare it.
Vadim
from fabio.
On Mon, 21 Mar 2016 10:35:28 -0700
Jon Wright [email protected] wrote:
Hi
Vadim's code in cryio might be useful for doing a benchmarking
comparison as it has already been optimized. It can be found at:
http://www.3lp.cx/cryio/
To be fair, run the test on scisoft13 ...
now >90% of the time is spent in the "byte-offset decompression"
algorithm which we have checked to be at the same speed (in 2014).
Cheers,
Jerome
from fabio.
Related Issues (20)
- condo install - Fabio package does not depend on h5py HOT 2
- Sparse files written by LIMA2 are not identified. HOT 5
- Tifimage: problem to use getframe function for stacks of single image files HOT 11
- TifImage unable to read certain 16-bits images HOT 1
- Move debian packaging to meson HOT 3
- Switch to Calendar Versioning
- move code to `src` HOT 3
- Migrate development branch from `master` to `main` HOT 1
- Support mask fileformat used in CrysalisPro HOT 2
- Low test coverage
- Include man-pages into online documentation
- Support Python 3.11 and Cython3
- checksum mismatch for small CBF files HOT 1
- Cannot read cbf images in latest fabio versions HOT 1
- WARNING:fabio.TiffIO:Data at tag id '65000' is smaller than expected HOT 4
- which runtime dependencies for fabio HOT 1
- ValueError: array to be byte-swapped is read-only HOT 4
- [meson] source distribution files have no timestamps HOT 3
- [TIFF] Management of multi-frame tiff HOT 3
- Broken tests in python 3.12 HOT 2
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 fabio.