Pergunta

Atualmente, estou tentando fazer o Exercício 1.22, que precisa de uma função chamada tempo de execução que retorne o número de milissegundos que o sistema está em execução. No entanto, meu ambiente (R5RS) não parece ter isso. Também não tem tempo, milissegundos de corrente, corrente-unha-milissegundos, etc.

A que função eu tenho acesso, para perfilar minha função? Quais funções retornam o número de milissegundos, microssegundos, etc., que passaram? É claro que eu preferiria o timer de precisão mais alto disponível.

Foi útil?

Solução

Provavelmente, a melhor coisa a fazer é trocar o idioma no drracket para "usar o idioma declarado na fonte" e iniciar seu arquivo com #lang racket. Então funções como current-seconds e amigos estarão disponíveis.

Como alternativa, você pode usar a biblioteca de perfil, disponível via (require profile) e documentado aqui.

Finalmente, você pode querer olhar para o Neil Van Dyke's Biblioteca Sicp para Drracket.

Outras dicas

eu usei atual-unexact-milissegundos Quando fiz esse exercício. Alerta de spoiler: Você pode ver minha solução no meu blog em Exercício SICP 1.22: Teste Prime Timed.

A propósito, eu só resolvi esse problema depois de fazer uma pergunta semelhante, Existe um equivalente à primitiva de "tempo de execução" de Lisp em esquema?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top