From 9b770f74cb58899eabcc938d88457dc093ada146 Mon Sep 17 00:00:00 2001 From: Tobias Pietzsch <tobias.pietzsch@gmail.com> Date: Tue, 25 Feb 2014 19:13:17 +0100 Subject: [PATCH] do not allocate new arrays for reordering hdf5 dimensions. --- .../java/bdv/img/hdf5/Hdf5VolatileShortArrayLoader.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/bdv/img/hdf5/Hdf5VolatileShortArrayLoader.java b/src/main/java/bdv/img/hdf5/Hdf5VolatileShortArrayLoader.java index e183965a..07eee2dc 100644 --- a/src/main/java/bdv/img/hdf5/Hdf5VolatileShortArrayLoader.java +++ b/src/main/java/bdv/img/hdf5/Hdf5VolatileShortArrayLoader.java @@ -45,6 +45,10 @@ public class Hdf5VolatileShortArrayLoader implements CacheArrayLoader< VolatileS public static volatile long sLoad = 0; + private final int[] reorderedDimensions = new int[ 3 ]; + + private final long[] reorderedMin = new long[ 3 ]; + @Override public VolatileShortArray loadArray( final int timepoint, final int setup, final int level, final int[] dimensions, final long[] min ) { @@ -66,7 +70,9 @@ public class Hdf5VolatileShortArrayLoader implements CacheArrayLoader< VolatileS // log.println( sw.toString() ); } final long t0 = System.currentTimeMillis(); - array = hdf5Reader.readShortMDArrayBlockWithOffset( getCellsPath( timepoint, setup, level ), reorder( dimensions ), reorder( min ) ); + reorder( dimensions, reorderedDimensions ); + reorder( min, reorderedMin ); + array = hdf5Reader.readShortMDArrayBlockWithOffset( getCellsPath( timepoint, setup, level ), reorderedDimensions, reorderedMin ); pEnd = System.currentTimeMillis(); final long t = pEnd - t0; final long size = array.size(); -- GitLab