• naur
    link
    fedilink
    Polski
    arrow-up
    1
    ·
    1 year ago

    Czekałem na jakieś szczegóły odnośnie wewnętrznej organizacji alokatora, ale domyślam się, że autor nie chciał odstraszyć osób, które nie programują.

    Odnośnie Windows, gamedev chyba nadal używa customowych rozwiązań na tej platformie, ze względu na “jakość” alokatora msvcrt na tej platformie.

    • サぺルOPM
      link
      fedilink
      Polski
      arrow-up
      1
      ·
      1 year ago

      Moim zdaniem wyjawił wystarczającą ilość szczegółów. Powinien zainspirować programistów kontrolerów z Europy zachodniej.

      Na wszystkich platformach używa się takiego. Szczególnie jeśli używa się C++ i nie ma się nad tym kontroli. Wtedy lokalny może znacznie przyspieszyć program.

      U twórców gier populara stała się arena. Czyli coś jak w kontrolerach. Zamiast organizować pamięć, zresetuj.

      Jeśli chodzi o blokowanie obszarów pamięci, to w SDL jest taki mechanizm.

      • naur
        link
        fedilink
        Polski
        arrow-up
        1
        ·
        1 year ago

        Dlaczego programistów z Europy zachodniej? W innych regionach programuje się inaczej?

        Blokowanie pamięci jest nawet w WinAPI (Local/GlobalAlloc i Local/GlobalLock).
        Co ciekawe, nie kojarzę takiej funkcji w publicznym interfejsie Linuksa.

        W interfejsach .NETa do C++/CLI można blokować pamięc pamięć na stercie zarządzanej poprzez utworzenie specjalnego typu wskaźnika (pin_ptr).

        W SDLu wynika to raczej z innych przyczyn niż fragmentacja (niektóre zasoby są w VRAMie i zmienione dane trzeba kopiować).

        • サぺルOPM
          link
          fedilink
          Polski
          arrow-up
          1
          ·
          1 year ago

          Tak, w innych regionach programuje się inaczej. Szczególnie takich, gdzie nie ma kontaktu z branżunią przez różne bariery. Wtedy dużo zależy od kultury. Takie mam doświadczenia. W EZ jeśli zaproponujesz podniesienie jakości, to zwykle spotkasz się z odpowiedzią jak pan od tłumaczeń kiedy zaproponował modyfikację czcionki.

          Publicznym wewnętrznym czy userspace?

          W SDL jest raczej z przyczyn “odblokowane może zostać użyte”, “zablokowane jest modyfikowane”. Może wynikać z tego, że urządzenie, albo sterownik wybierze/mapuje nowe miejsce na bufor lub zaproponuje inny bufor z puli.

          • naur
            link
            fedilink
            Polski
            arrow-up
            1
            ·
            1 year ago

            Myślę, że w Europie Zachodniej też wiele zależy od kultury w firmie. Znam przypadki gdzie, wdrażane były usprawnienia proponowane przez szeregowych programistów.

            Publicznym wewnętrznym czy userspace?

            Nie kojarzę w ogóle takich funkcji w libcu. Z syscalli, jakby zmrużyć mocno oczy, to mmap/mremap wyglądają podobnie, ale to bardziej niskopoziomowe mechanizmy (z granulacją strony).

            • サぺルOPM
              link
              fedilink
              Polski
              arrow-up
              1
              ·
              1 year ago

              Tam gdzie byłem, liczyło się gaszenie tysięcy małych pożarów i rozdmuchiwanie kosztów. Ale uznałbym winę po mojej stronie. Wtedy nie wiedziałem jak przekazywać takie informacje. Myślałem, że jak będę miły i zrobię znaczącą część roboty, to wszystko będzie jak w bajce.

              W przestrzeni użytkownika działa MMU. Więc nie trzeba takich rzeczy. W ten sposób dba się dopiero w przestrzeni adresów fizycznych.