lisp scheme racket sicp

¿Hay un equivalente a la primitiva "runtime" de Lisp en el esquema?



scheme racket (2)

De acuerdo con la sección 1.2.6 del SICP , ejercicio 1.22:

La mayoría de las implementaciones de Lisp incluyen una primitiva llamada runtime que devuelve un entero que especifica la cantidad de tiempo que el sistema ha estado funcionando (medido, por ejemplo, en microsegundos).

Estoy usando DrScheme , donde el tiempo de ejecución no parece estar disponible, así que estoy buscando un buen sustituto. Encontré en la Referencia de esquema PLT que hay una primitiva de current-milliseconds . ¿Alguien sabe si hay un temporizador en Esquema con mejor resolución?


Yo también encontré este problema hoy. Estoy usando DrRacket, ya que parece haber superado a DrScheme. Aunque este es un hilo viejo, estoy agregando mis hallazgos a cualquier persona nueva que tropiece con este hilo.

Con R5RS como idioma seleccionado, agregue las siguientes dos líneas antes del programa para que funcione

(#%require (only racket/base current-milliseconds)) (define (runtime) (current-milliseconds))


current-milliseconds es una función que devuelve el recuento actual de milisegundos del sistema, pero puede disminuir. current-inexact-milliseconds es similar, pero devuelve un número de punto flotante garantizado para aumentar.

También hay una serie de funciones similares que puede encontrar en esa página, pero si todo lo que necesita es cronometrar una función determinada, entonces use ( time expr ) e imprimirá el tiempo que tomó evaluar la expresión.

Otra cosa que es relevante aquí es el profiler , en caso de que necesite un análisis más detallado de su código.