• Imagespartanatreyu
    link
    fedilink
    arrow-up
    2
    ·
    5 days ago

    Bro, how are generators going to be faster?

    This is an AI article.


    My results:

    Firefox:

    Loop: 44ms - timer ended

    Generator: 4580ms - timer ended

    Node (uses same engine as deno, chrome, edge):

    Loop: 30.577ms

    Generator: 1.533s

    Safari (uses same engine as bun):

    Loop: 605.222ms

    Generator: 2804.669ms

    Bun (same engine as Safari but without needing to apologise for Safari):

    [17.52ms] Loop

    [297.17ms] Generator


    Generators are going to be slow because:

    • they’re going to be stack switching so much in JS runtimes which adds a lot of overhead
    • JS doesn’t have the other language features (yet) that you want to use with generators, which makes less folks want to use generators, which makes implementers not want to spend time optimising them. (Why bother trying to inline generator state when it’s probably going to change once the adjacent features come in?)

    Until generators don’t rely on stack switching, they’re always going to be super slow.