The description listed a mirror of this video on Vimeo, but I’m not sure if it’s still accessible as I have no access to Vimeo here: https://vimeo.com/649009599

Recently I discovered something called data-oriented design and I thought it was such a brilliant concept. Here are other references I recommend:

  • onlinepersona@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    17 hours ago

    Yeah, the second he started talking about computer architecture, I thought “he’s going to align the data and keep it close to each in memory for better caching and faster access, isn’t he?”.

    At the moment, it looks like an interesting way to optimise an existing program. I’m not sure if thinking about it right from the beginning will speed up programming as, IMO, first something functional has to be written with somewhat good architecture, then the architecture improved to make sense and more features added, and once a v1 exists that’s satisfactory, then optimisation starts.

    Maybe I’m wrong though and this is something that can be considered from the getgo, but it feels more like a latestage kind of thing. Some if it can definitely be taken care of by the compiler and the developer made aware of with warnings.

    • calcopiritus@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      2 hours ago

      It’s not one thing or the other.

      For example I often end up using event loops. Where an event is a tagged union. Some events take up 1 byte, some 400. It’s almost effortless to put the big variants in the heap, and just keep a pointer in the union. So why not do it from the start.

      Sure, optimizing every loop to make it vectorizable is probably not worth it, since that loop you wrote on the 10th commit might not even exist when the software is released. But there are many low hanging fruit.

      Also, some optimizations require a very specific software architecture. Turning all your arrays of structs into structs of arrays may be a pain if you didn’t plan for making that switch.