• mholiv@lemmy.world
    link
    fedilink
    arrow-up
    11
    ·
    edit-2
    2 days ago

    I mean yah. That’s what it takes. But like when I try to write code around Arc<_> the performance just tanks in highly concurrent work. Maybe it’s an OOP rust skill issue on my end. Lol.

    Avoiding this leads, for me at least, to happiness and fearless, performant, concurrent work.

    I’m not a huge fan of go-lang but I think they got it right with the don’t communicate by sharing memory thing.

    • PlexSheep@infosec.pub
      link
      fedilink
      arrow-up
      1
      ·
      2 days ago

      You mean mutex? Arc allows synchronous read only access by multiple threads, so it’s not a performance bottleneck. Locking a mutex would be one.

        • PlexSheep@infosec.pub
          link
          fedilink
          arrow-up
          1
          ·
          16 hours ago

          Oh, I did not know that. Well, it makes sense that it has a heap allocation, as it becomes more or less global. Though not sure why the atomic operations are needed when the value inside is immutable.

          • Miaou@jlai.lu
            link
            fedilink
            arrow-up
            1
            ·
            10 hours ago

            How can you otherwise keep track of an object’s lifetime if copies are made concurrently?

      • mholiv@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        2 days ago

        I mean it could be Mutex, or Rwlock or anything atomic. It’s just when I have to put stuff into an Arc<> to pass around I know trouble is coming.