Вы получаете хорошие ответы здесь, но куда уходят остальные 90% времени?
Не смотрите на исключительное время% за процедуру .
Посмотрите включительно% времени на строку кода и, если возможно, включите в него время блокировки, а не только время процессора.
Таким образом, вы вполне можете обнаружить, что иногда вам даже не нужно быть в функции modf или других функциях.
Простой способ получить эту информацию - эта техника .
Добавлено: По мере того, как вы найдете возможности оптимизации, ожидайте, что общее время выполнения уменьшится, но не ожидайте, что проценты обязательно уменьшатся. Ваш% времени в modf и / или sqrt может на самом деле увеличиваться, если вы избавляетесь от других вещей, или они могут снижаться, если вы обнаружите, что можете их запомнить (и, следовательно, вызвать их меньше), например.
При таком подходе к оптимизации вы можете рассматривать историю выполнения программы как большое дерево вызовов, и вам нужны целые ветви, которые вы можете удалить. Более того, поскольку строка кода может появиться в нескольких ветвях дерева вызовов, сокращение ее в одной сокращает ее во всех.