[vtkusers] Profiling with Static Mappers and/or ImmediateModeRendering
Affolter Martin
martin.affolter at ntb.ch
Fri Sep 17 04:13:01 EDT 2010
Hi vtkusers
I did not get any input on my last e-mail (Profiling VTK 5.6), but I'm not giving up yet ;)
Here are some measuring-results from our application (R&D). I ran it with static mappers on (suggested by Berk Geveci) and also tried immediatemoderendering (FAQ). None of these approaches gave me a decent performance, but I observed some interesting things:
1. With ImmediateModeRenderingOff most of the time is spent in "_RtlpFindAndCommitPages". This is the call stack, unfortunately the calling frame is unkown:
Function Name
ARinnotech.exe
__CorExeMain_Exported at 0 (mscoree.dll)
Unknown Frame(s) (UNKNOWN)
operator new(unsigned int) (MSVCR100.dll)
_malloc (MSVCR100.dll)
_RtlAllocateHeap at 12 (ntdll.dll)
_RtlpExtendHeap at 8 (ntdll.dll)
_RtlpFindAndCommitPages at 16(ntdll.dll)
2. With all mappers set to static the meshes are not shown. This might be, because we use vtkPolyDataNormals as input for the mapper.
I am still looking for the cause of the performance-drop VTK 4.4 -> 5.6., any comments, hints or suggestions are welcome!
Thanks
Martin
Here is the profiling-data:
--------------------------- StaticOn, ImmediateModeRenderingOn except on meshes ------------------------------
Hot Path
Function Name Inclusive Samples % Exclusive Samples %
vtkRenderWindow::DoStereoRender(void) 22.89 0.00
ClassCAD.ManVTKView.HandleWindowMessage(native int,int32,native int,native int) 21.89 0.00
[atioglxx.dll] 13.86 1.46
vtkExecutive::GetOutputData(int) 9.44 0.09
CLRStubOrUnknownAddress 8.88 0.00
Functions Doing Most Individual Work
Name Exclusive Samples %
[atioglxx.dll] 14.27
vtkInformation::GetAsObjectBase(class vtkInformationKey *) 12.19
vtkPainter::UpdateBounds(double * const) 8.17
vtkInformationVector::GetInformationObject(int) 4.83
vtkAlgorithm::GetNumberOfOutputPorts(void) 4.70
--------------------------- StaticOn, ImmediateModeRenderingOn ------------------------------
Hot Path
Function Name Inclusive Samples % Exclusive Samples %
__CorExeMain_Exported at 0 100.00 0.00
Unknown Frame(s) 79.29 0.00
vtkRenderWindow::DoStereoRender(void) 28.78 0.00
[atioglxx.dll] 14.21 1.01
vtkExecutive::GetOutputData(int) 11.15 0.27
Functions Doing Most Individual Work
Name Exclusive Samples %
[atioglxx.dll] 14.60
vtkPainter::UpdateBounds(double * const) 12.19
vtkInformation::GetAsObjectBase(class vtkInformationKey *) 8.04
vtkAlgorithm::GetNumberOfOutputPorts(void) 4.77
vtkInformationVector::GetInformationObject(int) 4.46
--------------------------- StaticOff, ImmediateModeRenderingOn ------------------------------
Hot Path
Function Name Inclusive Samples % Exclusive Samples %
vtkStreamingDemandDrivenPipeline::Update(int) 15.78 0.09
[atioglxx.dll] 9.73 1.25
vtkDemandDrivenPipeline::UpdateDataObject(void) 7.55 0.03
CLRStubOrUnknownAddress 6.77 0.00
vtkExecutive::GetOutputData(int) 6.24 0.25
Functions Doing Most Individual Work
Name Exclusive Samples %
vtkInformation::GetAsObjectBase(class vtkInformationKey *) 18.84
[atioglxx.dll] 10.07
vtkPainter::UpdateBounds(double * const) 4.90
vtkInformationVector::GetInformationObject(int) 3.15
vtkAlgorithm::GetNumberOfOutputPorts(void) 2.96
--------------------------- StaticOn, ImmediateModeRenderingOff ------------------------------
Hot Path
Function Name Inclusive Samples % Exclusive Samples %
operator new(unsigned int) 63.54 0.00
_malloc 63.54 0.02
_RtlAllocateHeap at 12 63.50 0.63
_RtlpExtendHeap at 8 62.24 0.00
_RtlpFindAndCommitPages at 16 62.24 62.24
Functions Doing Most Individual Work
Name Exclusive Samples %
_RtlpFindAndCommitPages at 16 62.51
[atioglxx.dll] 4.16
vtkPainter::UpdateBounds(double * const) 3.72
vtkInformation::GetAsObjectBase(class vtkInformationKey *) 2.44
vtkSubjectHelper::InvokeEvent(unsigned long,void *,class vtkObject *) 2.10
--------------------------- StaticOff, ImmediateModeRenderingOff ------------------------------
Hot Path
Function Name Inclusive Samples % Exclusive Samples %
operator new(unsigned int) 62.18 0.00
_malloc 62.18 0.06
_RtlAllocateHeap at 12 62.09 0.36
_RtlpExtendHeap at 8 61.27 0.00
_RtlpFindAndCommitPages at 16 61.27 61.27
Functions Doing Most Individual Work
Name Exclusive Samples %
_RtlpFindAndCommitPages at 16 72.66
vtkInformation::GetAsObjectBase(class vtkInformationKey *) 4.95
[atioglxx.dll] 2.94
vtkPainter::UpdateBounds(double * const) 1.39
vtkSubjectHelper::InvokeEvent(unsigned long,void *,class vtkObject *) 1.04
------------------------------------------------
Martin Affolter
Interstaatliche Hochschule für Technik Buchs NTB
Institut für Ingenieurinformatik
NTB Campus Waldau St.Gallen
Schönauweg 4 / Postfach
9013 St. Gallen
Tel. ++41 81 755 32 49
Fax ++41 81 755 32 01
http://institute.ntb.ch/inf.html
More information about the vtkusers
mailing list