[netcdf-java] I/O perfomance

Hello,

I have written a simple test that opens NetCDF3 file (50.2 MB), reads its
whole array time x lat x lon = 1460 x 94 x 192

Open file: 838 ms
Find var: 12 ms
Read array: 2393 ms
(code is below)

Numbers are for SSD with approx 222 MB/sec speed

This is almost 3 sec while during the same time C++ code (NCO, CDO) may do
a lot more.

My questions are:
- could this be improved? (e.g. link to native lib or smth else)
- is this the fastest way to read array (code below)?

Thanks

        long millis = System.currentTimeMillis();

        NetcdfFile FILE = NetcdfFile.open(filepath, null);
        System.out.println("Open file: " + (System.currentTimeMillis() -
millis));

        millis = System.currentTimeMillis();
        Variable var = FILE.findVariable("uwnd");
        System.out.println("Find var: " + (System.currentTimeMillis() -
millis));

        int[] origin ;
        int[] shape ;

        millis = System.currentTimeMillis();
        shape = var.getShape();
        System.out.println("Get shape: " + (System.currentTimeMillis() -
millis));

        origin = new int[shape.length];

        millis = System.currentTimeMillis();
        Array values = var.read(origin, shape);
        System.out.println("Read array: " + (System.currentTimeMillis() -
millis));
  • 2016 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: