This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
> > > > Ticket Details > > =================== > > Ticket ID: XKA-295690 > > Department: Support IDV > > Priority: Normal > > Status: Closed > > > One small query, every time create a new display control. unpackfloats > with copy=true gets called up ignoring the value of > arguement copy coming in in the following constructor as arguement: > public CachedFlatField(CachedFlatField that, boolean copy, > FunctionType type, Set domainSet, > CoordinateSystem rangeCoordSys, > CoordinateSystem[] rangeCoordSysArray, > Set[] rangeSets, Unit[] units); > > The partial stack trace is as follows: > visad.data.CachedFlatField.<init>(CachedFlatField.java:171) > visad.data.CachedFlatField.cloneMe(CachedFlatField.java:214) > ucar.visad.Util.clone(Util.java:1228) > ucar.unidata.data.grid.GridUtil.setParamType(GridUtil.java:3041) > ucar.unidata.data.grid.GridDataInstance.setParamType(GridDataInstance.java:404) > ucar.unidata.data.grid.GridDataInstance.getGrid(GridDataInstance.java:587) > ucar.unidata.idv.control.DisplayControlImpl.getGrid(DisplayControlImpl.java:3448) > ucar.unidata.idv.control.DisplayControlImpl.getGrid(DisplayControlImpl.java:3431) > ucar.unidata.idv.control.PlanViewControl.loadDataAtLevel(PlanViewControl.java:1174) > ucar.unidata.idv.control.PlanViewControl.loadDataAtLevel(PlanViewControl.java:1142) > ucar.unidata.idv.control.PlanViewControl.setData(PlanViewControl.java:699) > ucar.unidata.idv.control.ImagePlanViewControl.setData(ImagePlanViewControl.java:114 > > I mean to say a fresh new copy of flatfield gets created or atleast a > fresh new copy of its range samples gets created > in addition to the one created which is returned by getDataInner() > function of the DataSource classes. > As a result of this the memory spike goes for a high jump. > A sample test run says that if I can display an 11.2 K x 11.2 K image in > 1.3 GB of RAM, still it needs 1.7 GB of RAM only due to this. > Although after GC, it stands at 800 MB RAM. > It may a design decision but just out of curosity I wanted to know what > is the reason behind this. > thanks for listening to me patiently. In many situations, the IDV need to create a copy when doing the calculation and set this parm to true. Do you really need a fresh copy? I am not surprise for the memory spike if as you are dealing with large dataset. Yuan > I am marking copy of this mail to Don Sir too as I discussed it with him > too but he was a bit busy. May be he can also help us in > understanding this. > > regards > Ghansham > > > > Ticket Details =================== Ticket ID: XKA-295690 Department: Support IDV Priority: Normal Status: Closed