Как профилировать мои функции с помощью DrScheme?Как мне профилировать в DrScheme?
(require profile)
(define (factorial n)
(cond
((= n 1) 1)
(else (* n (factorial (- n 1))))))
(profile factorial)
Приведенный выше код возвращает
Profiling results
-----------------
Total cpu time observed: 0ms (out of 0ms)
Number of samples taken: 0 (once every 0ms)
====================================
Caller
Idx Total Self Name+srcLocal%
ms(pct) ms(pct) Callee
====================================
>
Я пробовал: - (профиль (факториал 100))
- (профиль факториал) (факториал 100)
Но это дает мне тот же результат. Что я делаю неправильно?
Я тоже это пробовал, но он не работал :( – unj2
Ответ Greg правильный в случае PLT - 'profile' выполнит подвыражение при выборке стека при его запуске. Обратите внимание, что ваша функция будет работать очень быстро для небольших входов и поэтому не будет длиться достаточно долго, чтобы иметь какой-либо образец с ним - вам нужно использовать большие значения для этого. –
Да, вы были верны. Но почему (trace factorial) (time (factorial 50)) дайте мне время процессора : 484 в режиме реального времени: 523 gc time: 0 but (profile (factorial 50)) не имеет никакого эффекта? – unj2