NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

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