Performance Test A (20,000 frames)

Posted: April 22, 2013 at 3:44 pm

The increasing time to render each frame certainly slows down testing, and would cause future problems processing more than 20,000 frames. What I have done is rewrite the rendering code so that the segmentation uses RGB internally (rather than BGR), and put the draw function inside the percept class so that percepts for segmentation and rendering are stored in the same class. In the previous tests, rendering would take over 8 seconds per frame by 20,000 frames and apparently would continue to increase linearly. Rendering is certainly faster with the new implementation, but unfortunately the test did not get to the goal of 20,000 frames because it used too much memory to continue. Following shows the progress of this latest test…20000_debug_performanceTest

Note the spikes in render time, the number of rendered percepts, and cluster time. The memory spike occurs after these other spikes, so those are likely the culprit. It is quite hard to tell which one is causing the problem. rendering time and clustering are tied because the number of rendered percepts is determined by the clustering process. The strange thing is that the only changes made to clustering from the previous test (which did not show these spikes) is adding separate upper limits for the number foreground and background clusters. I’m currently running a second test with more debugging info. It does not seem possible that the number of rendered percepts would change the clustering time, so I wonder if the number of foreground percepts is causing a problem somehow. This does not seam possible because the previous test had a much higher limit of clusters, and the clustering time did not increase. In order to test this I’ve lowered the number of FG clusters, so if they are the cause, the spikes should happen earlier in the test. Additionally, the currently running test code will quit on the first frame where more than 400 percepts are rendered, which will dump more debugging data on the number of percepts in memory at the time of the spike. Following are closeups of the relates spikes, shown with a log y scale:

20000_debug_performanceTest_memoryTimeSpikes