Прежде всего , вам необходимо убедиться, что ваше измерительное устройство способно измерять то, что вам нужно: в частности, только системные ресурсы , которые вы потребляете.UNIX utime
- это одна из таких команд, хотя даже она по-прежнему включает время подкачки.Проверьте документацию вашего профилировщика: он должен иметь возможность измерять только процессорное время, потребляемое функцией.Если это так, то ваши цифры связаны с чем-то другим.
После того, как вы контролируете внешние изменения, вам необходимо изучить внутренние.Вы ничего не сказали о цвете вашей функции.Некоторые (многие?) Функции имеют доступные ярлыки для тривиальностей, управляемых данными, таких как умножение на 0 или 1. Некоторые зависят от явной или скрытой итерации, которая зависит от данных.Вам необходимо проанализировать входные данные в отношении алгоритма.
Одним из инструментов, который вы можете использовать, является линейно-ориентированный профилировщик для детализации происхождения изменений;определение того, какие линии занимают дополнительное время, должно помочь определить, откуда исходит "шум".