#7 (Should) fix end-state issue.
This commit is contained in:
parent
26b78420a2
commit
acf6ad1bb9
@ -98,36 +98,43 @@ func (solver *Solver) tracker() {
|
|||||||
defer solver.timeTrack(time.Now(), "Validated solutions")
|
defer solver.timeTrack(time.Now(), "Validated solutions")
|
||||||
log.Println("Validating solutions")
|
log.Println("Validating solutions")
|
||||||
|
|
||||||
// Tracking percenting an progress
|
// Determine if the main-loop is done
|
||||||
|
var done bool
|
||||||
|
|
||||||
|
// Tracking progress in percentages
|
||||||
var percentage float32
|
var percentage float32
|
||||||
|
// Tracking progress in validated solutions
|
||||||
var track int
|
var track int
|
||||||
|
|
||||||
// Tracking the rate
|
// Tracking the rate, starting point
|
||||||
var rate_start int
|
var rate_start int64
|
||||||
var rate_stop int
|
// Tracking the rate, difference between previous iterations
|
||||||
var rate_diff int
|
var rate_diff int64
|
||||||
|
|
||||||
// Tracking duration
|
// Tracking duration
|
||||||
var timer_start = time.Now()
|
var timer_start = time.Now()
|
||||||
// Prevent division-by-zero error when establishing `rate`
|
// Prevent division-by-zero error when establishing `rate_diff`
|
||||||
time.Sleep(time.Second)
|
time.Sleep(time.Second)
|
||||||
|
|
||||||
// Estimation how long it will take
|
// Estimation how long it will take
|
||||||
var est_fin string
|
var est_fin string
|
||||||
|
|
||||||
for solver.iter != solver.counter {
|
// for solver.iter != solver.counter { // Start for-loop
|
||||||
|
for !done {
|
||||||
|
|
||||||
// Determine how far we are.
|
// Determine how far we are.
|
||||||
percentage = (float32(solver.counter) / (float32(solver.iter) / 100))
|
percentage = (float32(solver.counter) / (float32(solver.iter) / 100))
|
||||||
if track <= int(percentage) {
|
|
||||||
// Reset the loop
|
// Reset the loop
|
||||||
rate_stop = int(solver.counter)
|
rate_diff = solver.counter - rate_start
|
||||||
rate_diff = rate_stop - rate_start
|
|
||||||
|
if track <= int(percentage) || rate_diff == 0 { // Start if-statement
|
||||||
|
|
||||||
// Make sure something happened, making rate_start the only reliable variable
|
// Make sure something happened, making rate_start the only reliable variable
|
||||||
if rate_diff == 0 && int(percentage) > 1 {
|
if rate_diff == 0 {
|
||||||
percentage = 100
|
percentage = 100
|
||||||
solver.counter = solver.iter
|
solver.counter = solver.iter
|
||||||
|
done = true
|
||||||
}
|
}
|
||||||
|
|
||||||
timer_elapsed := time.Since(timer_start)
|
timer_elapsed := time.Since(timer_start)
|
||||||
@ -142,30 +149,31 @@ func (solver *Solver) tracker() {
|
|||||||
est_fin = solver.secondsToHuman((int(solver.iter) - int(solver.counter)) / int(rate_avg))
|
est_fin = solver.secondsToHuman((int(solver.iter) - int(solver.counter)) / int(rate_avg))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Printing the meat
|
// Printing the progress
|
||||||
log.Println("Processing: " + strconv.Itoa(int(percentage)) + "% (" + strconv.Itoa(int(solver.counter)) + "/" + strconv.Itoa(int(solver.iter)) + "); Rate: " + strconv.Itoa(int(rate)) + "/sec for " + timer_elapsed.String() + "; Time left (est.): " + est_fin)
|
log.Println("Processing: " + strconv.Itoa(int(percentage)) + "% (" + strconv.Itoa(int(solver.counter)) + "/" + strconv.Itoa(int(solver.iter)) + "); Rate: " + strconv.Itoa(int(rate)) + "/sec for " + timer_elapsed.String() + "; Time left (est.): " + est_fin)
|
||||||
|
|
||||||
|
// After we are done printing, exit this for-loop
|
||||||
|
if percentage == 100 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
// Wrap up the loop or break
|
// Wrap up the loop or break
|
||||||
if int(percentage) > track {
|
if int(percentage) > track {
|
||||||
track = int(percentage)
|
track = int(percentage)
|
||||||
} else {
|
} else {
|
||||||
track = track + 1
|
track = track + 1
|
||||||
}
|
}
|
||||||
rate_start = rate_stop
|
|
||||||
timer_start = time.Now()
|
timer_start = time.Now()
|
||||||
|
|
||||||
if percentage == 100 {
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
// Resert the rate counter
|
||||||
log.Println(percentage)
|
rate_start = solver.counter
|
||||||
log.Println(solver.counter)
|
// Sleep for a second
|
||||||
log.Println(rate_diff)
|
|
||||||
}
|
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
|
|
||||||
}
|
} // End for-loop
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user