Skip to content

vtkDataArray: split implementation into separate files

Ben Boeckel requested to merge ben.boeckel/vtk:vtkDataArray-impl-split into master

Array dispatching significantly increases compile time. Using clang, the prior vtkDataArray.cxx took almost 5 minutes to compile. By splitting out the implementations into separate files, overall compilation time is now 77 seconds on the same hardware (with 14 workers).

Sample timings (sample size of 1):

Time to complete CommonCore:

Before:  08:06.120
After:   05:03.382

Individual objects:

Before:

   04:51.551   vtkDataArray.cxx.o

After:

   00:01.746   vtkDataArray.cxx.o
   00:02.764   vtkDataArray_ScalarRange.cxx.o
   00:02.931   vtkDataArray_VectorRange.cxx.o
   00:02.955   vtkDataArray_FiniteScalarRange.cxx.o
   00:03.026   vtkDataArray_FiniteVectorRange.cxx.o
   00:08.553   vtkDataArray_InterpolateTuple_weights.cxx.o
   00:10.235   vtkDataArray_InsertTuples_array_idlist_range.cxx.o
   00:10.800   vtkDataArray_InterpolateTuple_time.cxx.o
   00:34.192   vtkDataArray_CopyComponent.cxx.o
   00:39.109   vtkDataArray_DeepCopy.cxx.o
   01:04:424   vtkDataArray_SetTuple_array.cxx.o
   01:05.916   vtkDataArray_GetTuples_ids.cxx.o
   01:07.637   vtkDataArray_InsertTuples_array_idlist.cxx.o
   01:11.574   vtkDataArray_InsertTuples_array_range.cxx.o
   01:17.122   vtkDataArray_GetTuples_range.cxx.o

Cc: @spiros.tsalikis @yohann.bearzi @mwestphal

Edited by Ben Boeckel

Merge request reports