[vtkusers] Copying memory instead of resizing allocation in vtkDataArrayTemplate::Resize()
Jens
jens-devel at gmx.de
Tue Oct 25 06:41:07 EDT 2005
Hi
I would like to read grids with millions of cells and developed a reader for
my private netCDF file format.
I thought reading the file in chunks of 100000 cells. That for I create a
vtkDoubleArray to add all nodes of the 100000 cells and resize that
vtkDoubleArray each time I read the next chunk of cells.
I had a look at the function resizing the vtkDoubleArray because I have to
make sure not to use more memory than needed. ( Its "Resize()" in
vtkCommon/vtkDataArrayTemplate.txx line 273 in Vtk-5-branch )
This function uses "memcpy" instead of "realloc" to resize the double array.
( http://www.codecogs.com/reference/stdlib.h/malloc.php?alias=realloc
http://www.codecogs.com/reference/string.h/memcpy.php?alias=memcpy )
That means that each time Resize get used the data is twice in memory for a
short time. That´s slow and needs double memory.
What´s wrong with realloc ?
Greetings
Jens
More information about the vtkusers
mailing list