-
Data: 2015-12-05 00:45:13
Temat: Re: Struktura do przydzielania numerków
Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 04.12.2015 15:04, Borneq wrote:
> Każdy zasób określony jest przez numer z zakresu <a,b), bez miany
> ogólności możemy przyjąć że zakres jest <0,n) gdzie n=b-a.
> N jest duże, np. dwa miliony, więc nie ma obaw że zabraknie zasobów, n
> to ilość ile może być zasobów JEDNOCZEŚNIE. Ale gdy zwolnimy jakiś
> zasób, jego numer może zostać przydzielony znowu.
> Choć duże n, to może się skończyć, gdy będziemy przydzielać, zwalniać i
> zwiększać k.
> Są dwie strategie: albo przydzielać zawsze najniższy wolny numer, albo
> cały czas inkrementować k, przydzielać najwyższy numer, aż gdy k
> osiągnie n, wtedy zawinie się od początku. Jak jest lepiej?
> Jaka struktura? Czy trzymać listę raczej wolnych czy raczej zajętych
> numerów? Gdy będzie mało wykorzystane, oszczędniej trzymać raczej listę
> zajętych, ale listę wolnych może lepiej szukać?
Rozumoem, że nie chodzi o obiekt w pamięci. Bo jeśli tak,
to można to zrobić jeszcze sprytniej.
Pomysł wstępny:
Stos wolnych. Gdy wątek pobiera zasób, zabier go jednocześnie
ze stosu. Gdy zwalnie, wsadza numer na samą górę.
Wszystko w czasie stałym.
Modyfikacja: kolejka fifo w cyklicznym buforze (wielkosći N+1).
Pobierasz z jednej strony, oddajesz po drugiej.
Ale nie zawsze warto, jeśli ostatnio używane zasób jest
z jakiś posobów lepszy (co siedzi w buforach) to pierwsza
wersja lepsza.
No, chyba, że zasobem są stałej wielkośći fragmenty pamięći
(obiekty po kilka(set) bajtów). Wtedy robie się to inaczej.
pzdr
bartekltg
Następne wpisy z tego wątku
- 05.12.15 00:49 bartekltg
- 05.12.15 09:37 Borneq
- 05.12.15 12:44 M.M.
- 06.12.15 10:12 Borneq
- 06.12.15 10:21 Borneq
- 06.12.15 11:29 Borneq
- 06.12.15 17:26 bartekltg
- 06.12.15 19:47 Borneq
- 07.12.15 01:05 Borneq
- 07.12.15 03:09 bartekltg
- 07.12.15 03:13 bartekltg
- 07.12.15 10:31 Borneq
Najnowsze wątki z tej grupy
- 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
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-05 Re: UK: Michał K. dalej czeka na rozprawę ekstradycyjną w areszcie [bo nie (jeszcze?) zebrał kaucji]
- 2025-02-04 ranking wyciszenia, głośność, hałas przy 130 km/h, na postoju, przy przyspieszaniu
- 2025-02-05 Warszawa => IT Recruiter <=
- 2025-02-05 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-02-05 Rzeszów => Spedytor Międzynarodowy <=
- 2025-02-05 Warszawa => IT Business Analyst <=
- 2025-02-05 Warszawa => Specjalista DevOps <=
- 2025-02-05 Łódź => NodeJS Developer <=
- 2025-02-05 Warszawa => QA Engineer (Quality Assurance) <=
- 2025-02-05 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-02-05 Warszawa => QA Engineer <=
- 2025-02-05 Warszawa => Programista Full Stack .Net <=
- 2025-02-05 Re: UK: Michał K. dalej czeka na rozprawę ekstradycyjną w areszcie [bo nie (jeszcze?) zebrał kaucji]
- 2025-02-04 podpisywanie umów z datą wsteczną
- 2025-02-04 Radio internetowe do starego Androida