Как рассчитать точное время выполнения в matlab?

#matlab #time

#matlab #время

Вопрос:

Я работаю над алгоритмом потокового шифрования с Matlab, и я хочу видеть разницу во времени с каждым изменением, которое я внес в нелинейную функцию. Я создал нелинейную функцию, которая имеет некоторые операции «mod» и операции «bitxor», когда я меняю некоторые операции bitxor на операции mod и вычисляю время, используя «tic toc», это показывает, что новая функция с большим количеством операций «mod» выполняется за меньшее время, чем исходная, хотя mod работает медленнее, чем bitxor. В чем причина этой проблемы? есть ли альтернативный способ рассчитать время в таком случае?

Комментарии:

1. Смотрите mathworks.com/help/matlab/matlab_prog /…

2. Почему вы говорите mod медленнее, чем bitxor ? Очевидно, что это не так, если ваш код ускоряет замену одного другим.

Ответ №1:

Вы можете попробовать использовать собственные часы и вычислить разницу. Например:

 time1 = clock;
    [..Some heavy calculation here]
time2 = clock;
simtime = etime(time2, time1);
disp("time in seconds is:")
disp(simtime)
  

Вы избежите любой неточности из-за потенциального замедления выполнения кода.

Комментарии:

1. Я пробовал «clock», «cputime» и «timeit», но проблема не решилась.

2. Трудно принять. Он просто записывает время до и после обработки и вычисляет разницу. Что может пойти не так? даже если tic toc по какой-то причине возникает задержка, clock это независимо, поскольку зависит от системного времени. Без дополнительной информации о вашем коде мы не можем указать на проблему.