many cells

This notebook demonstrates lgo can handle thousands of cells though lgo builds and loads shared objects file on every executions.


In [1]:
import (
    "fmt"
    "strings"
    "time"
)

interval := 64
start := time.Now()
var sum int64
var msgs []string

In [2]:
{
    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
    }
}

In [3]:
{
    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
    }
}

Note

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.


In [1024]:
{
    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
    }
}

In [1025]:
{
    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
    }
}

In [1026]:
sum


524800

In [1027]:
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>