-
X-Received: by 2002:ac8:6747:: with SMTP id n7mr72226317qtp.19.1564383319605; Sun, 28
Jul 2019 23:55:19 -0700 (PDT)
X-Received: by 2002:ac8:6747:: with SMTP id n7mr72226317qtp.19.1564383319605; Sun, 28
Jul 2019 23:55:19 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.man.lodz.pl!newsfeed.pionier.net.p
l!2.eu.feeder.erje.net!4.us.feeder.erje.net!feeder.erje.net!weretis.net!feeder6
.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!bo
rder1.nntp.dca1.giganews.com!nntp.giganews.com!b26no2546415qtq.0!news-out.googl
e.com!a5ni342qtd.0!nntp.google.com!b26no2546412qtq.0!postnews.google.com!glegro
upsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sun, 28 Jul 2019 23:55:19 -0700 (PDT)
In-Reply-To: <qha7mb$6bv$1@dont-email.me>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=31.0.39.186;
posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 31.0.39.186
References: <7...@g...com>
<qha7mb$6bv$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2...@g...com>
Subject: Re: k-d tree - jak zapisać na dysku
From: g...@g...com
Injection-Date: Mon, 29 Jul 2019 06:55:19 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 54
Xref: news-archive.icm.edu.pl pl.comp.programming:213707
[ ukryj 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
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
Najnowsze wątki
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 szal-Unia == federacja policyjna
- 2025-03-19 Polsza == państwo policyjne
- 2025-03-19 Grzegorz Płaczek o programie szczepień dzieci. ,,Stworzono eldorado dla firm farmaceutycznych"
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 Gemini
- 2025-03-19 Mokry sen Zenka :)
- 2025-03-19 Re: Dlaczego tak odstają od Tesli?
- 2025-03-19 Czy grupa p.s.prawo przetrwa najbliższe wybory (prezydenta)?
- 2025-03-19 Warszawa => Frontend Developer (obszar Angular13+) <=
- 2025-03-19 Czy "niedopuszczony pełnomocnik" jest w prawie się na to skarżyć jak "świadek" zmarła bez zostawienia mu takiej instrukcji?
- 2025-03-19 Kraków => Business Development Manager - Network and Network Security
- 2025-03-19 Ostrów Świętokrzy => Node.js / Fullstack Developer <=
- 2025-03-19 Kraków => IT Expert (Network Systems area) <=
- 2025-03-19 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad