PDA

View Full Version : [Ruby] Problema prestazioni in windows


dav1deser
19-04-2013, 18:44
Ciao a tutti, stavo imparando un po' a programmare in ruby, nel fare un rapido benchmark con un codice da me scritto (molto banale:D ) ho notato un problema prestazionale con windows, problema assente invece usando linux. Il codice è questo:
time = Time.new
time1 = ((time.hour.to_i * 3600000) + (time.min.to_i * 60000) + (time.sec.to_i * 1000) + (time.usec.to_i/1000))
num = 1000000000
while num !=0
num2 = num *2
num3 = num2 -2
num4 = num3 / 2
num = num4 -1
end
stime = Time.new
time2 = ((stime.hour.to_i * 3600000) + (stime.min.to_i * 60000) + (stime.sec.to_i * 1000) + (stime.usec.to_i/1000))
time3 = time2-time1
puts 'Elapsed time: ' + time3.to_s + ' milliseconds'
Facendo girare il codice su windows ottengo un tempo di circa 150s, mentre su linux siamo nell'ordine dei 30, lo strano però è che se modifico il codice e imposto la variabile "num" a 100milioni, invece che 1miliardo, i tempi su windows e linux diventano molto simili, nell'ordine dei 3 secondi, con anche un leggero vantaggio di windows (che diventa anche maggiore se metto un "num" ancora più piccolo). E' un problema del port su windows o c'è un qualche modo per risolverlo?