Pergunta

De acordo com SICP Seção 1.2.6, Exercício 1.22:

A maioria das implementações LISP inclui um primitivo chamado tempo de execução que retorna um número inteiro que especifica a quantidade de tempo em que o sistema está em execução (medido, por exemplo, em microssegundos).

estou a usar Drscheme, onde o tempo de execução não parece estar disponível, então estou procurando um bom substituto. Encontrei na referência do PLT-Scheme que existe um Milissegundos atuais primitivo. Alguém sabe se há um cronômetro no esquema com melhor resolução?

Foi útil?

Solução

current-milliseconds é uma função que retorna a contagem atual de milissegundos do sistema, mas pode diminuir. current-inexact-milliseconds é semelhante, mas retorna um número de ponto flutuante garantido para aumentar.

Há também várias funções semelhantes que você pode encontrar nessa página, mas se tudo o que você precisa é para cronometrar uma determinada função, basta usar (time expr) e imprimirá o tempo necessário para avaliar a expressão.

Outra coisa que é relevante aqui é o analisador, caso você precise de mais uma análise mais detalhada do seu código.

Outras dicas

Eu também me deparei com esse problema hoje. Estou usando o Drracket, pois parece ter substituído o DRSCHEME. Embora este seja um tópico antigo, estou adicionando minhas descobertas para qualquer pessoa que tropeça nesse tópico.

Com R5Rs como linguagem selecionada, adicione seguintes duas linhas antes do programa para fazê -lo funcionar

(#%require (only racket/base current-milliseconds))
(define (runtime) (current-milliseconds))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top