У меня примерно в 50 раз больше времени, чем ожидалось, чтобы выполнить простое задание. Моей первой реакцией было то, что я нарушил доступ к памяти в массивах, что привело к отсутствию кэша. Однако это не так.
Назначение значения пикселя и обновление массивов принимает возраст собаки. У кого-нибудь из вас есть склонность к тому, почему это происходит? (Я собираю для iPod с A4)
memset(columnSumsCurrentFrameA, 0, sizeof(unsigned int) * (_validImageWidth/numSubdivisions) );
memset(rowSumsCurrentFrameA, 0, sizeof(unsigned int) * (_validImageHeight/numSubdivisions) );
int pixelValue = 0;
int startingRow = 0;
int startingColumn = 0;
for (int i = 0; i < _validImageHeight/numSubdivisions; i++)
{
int index = (i + startingRow) * _imageWidth;
for( int j = 0; j < (_validImageWidth/numSubdivisions); j++)
{
pixelValue = imageData[index + startingColumn + j];
columnSumsCurrentFrameA[j] += pixelValue;
rowSumsCurrentFrameA[i] += pixelValue;
}
}