eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingk-d tree - jak zapisać na dysku › Re: k-d tree - jak zapisać na dysku
  • Data: 2019-07-29 08:55:19
    Temat: Re: k-d tree - jak zapisać na dysku
    Od: g...@g...com szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu środa, 24 lipca 2019 20:23:09 UTC+2 użytkownik heby napisał:
    > On 24/07/2019 19:25, DMR wrote:
    > > Misterna i wyrafinowana struktura poszyta wskaźnikami została utworzona w
    pamięci, a teraz trzeba ją zapisać na dysku - tak, żeby się przy wczytywaniu jak
    najszybciej odtworzyła w stanie "operacyjnym".
    > > Jakieś równie wyrafinowane pomysły? :-)
    >
    > Może taki: wybierz sobie jakiś adres z przepastnej przestrzeni 64bit i
    > zarezerwuj go systemowo. Potem zrób allokator przydzielający obiekty
    > tylko w tym rejonie.
    >
    > Zapis i odczyt staje się wtedy trywialny.

    Pomysł w istocie zajebisty.
    A teraz zagadka: co się stanie,
    gdy dwóch użytkowników zechce
    w tym samym czasie skorzystać
    z tego programu?

    Pomysł z własnym alokatorem
    jest ok: niech Twoja aplikacja
    alokuje sobie tylko jeden blok
    pamięci przy pomocy malloc
    (nazwijmy go base), a Twój alokator
    będzie przydzielał adresy jako
    ofsety względem base, tak że efektywny
    adres to będzie base+offset.

    Po stronie asemblera takie rozwiązanie
    nie wydłuży czasu dostępu do pamięci,
    bo przynajmniej intel koduje dodawanie
    bazy i offsetu w jednej instrukcji
    adresowania pośredniego.

    Później tylko zrzucasz zaalokowany kawałek
    pamięci do pliku binarnego.

    Przy ładowaniu podobnie - alokujesz sobie
    tyle pamięci, ile zajmuje plik binarny
    (otrzymany adres to Twój nowy base)
    i ładujesz zawartość pliku pod ten adres.

    Ponieważ ta technika nie ma większego
    związku z drzewami k-wymiarowymi, jako
    bonus do odpowiedzi załączam link do
    implementacji kd-tree, którą kiedyś
    robiłem na studia. Jest oczywiście
    w Lispie (no a w czym), ale nie zajmowałem
    się tam zagadnieniem serializacji:
    https://bitbucket.org/panicz/studies/src/default/geo
    metria-grafy-algorytmy/lab3/kd.scm

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 29.07.19 09:26 heby
  • 29.07.19 11:36 fir
  • 29.07.19 16:04 fir
  • 29.07.19 16:11 DMR
  • 29.07.19 16:15 DMR

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: