Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.

[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: