Estaba buscando un ejemplo en línea que demostrara un temporizador en ruby y me encontré con el siguiente código. Funciona como se esperaba pero ¿tiene sentido que este simple programa use 30Mo de memoria (como se muestra en el administrador de tareas de Windows) y demasiada CPU?Temporizador en rendimiento de Ruby
Muchas gracias
def time_block
start_time = Time.now
Thread.new { yield }
Time.now - start_time
end
def repeat_every(seconds)
while true do
time_spent = time_block { yield } # To handle -ve sleep interaval
sleep(seconds - time_spent) if time_spent < seconds
end
end
repeat_every(5) {
}
No me puedo imaginar cómo ese código tiene sentido ... Los hilos no están unidas, por lo que siempre habrá time_spent 0 y el bucle simplemente acumula hasta subprocesos que se ejecutan en paralelo si la carga de trabajo del ther tarda más de 5 segundos. – hurikhan77
Gracias hurikhan77, ¿te importa señalarme un doc o un libro sobre hilos para no tener que hacer preguntas estúpidas;)? – Elsanto
http://ruby-doc.org/docs/ProgrammingRuby/html/tut_threads.html –