This notebook demonstrates lgo can handle thousands of cells though lgo builds and loads shared objects file on every executions.
import (
"fmt"
"strings"
"time"
)
interval := 64
start := time.Now()
var sum int64
var msgs []string
{
n := 1
sum += int64(n)
if n % interval == 0 {
end := time.Now()
msgs = append(
msgs,
fmt.Sprintf("cycle: [%d, %d], took %v on average", n - interval + 1, n, end.Sub(start)/time.Duration(interval)))
start = end
}
}
{
n := 2
sum += int64(n)
if n % interval == 0 {
end := time.Now()
msgs = append(
msgs,
fmt.Sprintf("cycle: [%d, %d], took %v on average", n - interval + 1, n, end.Sub(start)/time.Duration(interval)))
start = end
}
}
Many cells are omitted from this notebook to keep the size small. To get a complete version, run make_many_cells.ipnb in the same dir.
{
n := 1023
sum += int64(n)
if n % interval == 0 {
end := time.Now()
msgs = append(
msgs,
fmt.Sprintf("cycle: [%d, %d], took %v on average", n - interval + 1, n, end.Sub(start)/time.Duration(interval)))
start = end
}
}
{
n := 1024
sum += int64(n)
if n % interval == 0 {
end := time.Now()
msgs = append(
msgs,
fmt.Sprintf("cycle: [%d, %d], took %v on average", n - interval + 1, n, end.Sub(start)/time.Duration(interval)))
start = end
}
}
sum
524800
fmt.Println(strings.Join(msgs, "\n"))
cycle: [1, 64], took 684.526294ms on average cycle: [65, 128], took 672.778457ms on average cycle: [129, 192], took 681.855261ms on average cycle: [193, 256], took 674.783885ms on average cycle: [257, 320], took 686.477005ms on average cycle: [321, 384], took 683.289412ms on average cycle: [385, 448], took 687.293805ms on average cycle: [449, 512], took 693.450195ms on average cycle: [513, 576], took 672.261078ms on average cycle: [577, 640], took 682.784516ms on average cycle: [641, 704], took 691.448044ms on average cycle: [705, 768], took 671.875065ms on average cycle: [769, 832], took 673.786842ms on average cycle: [833, 896], took 681.162642ms on average cycle: [897, 960], took 672.475553ms on average cycle: [961, 1024], took 680.732248ms on average 765 <nil>