-
Data: 2013-07-11 13:45:05
Temat: Re: Why mobile web apps are slow
Od: Edek <e...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia pamiętnego Thu, 11 Jul 2013 12:57:15 +0200, Michoo wyjmując peta
oznajmił:
> On 11.07.2013 10:04, Maciej Sobczak wrote:
>> W dniu czwartek, 11 lipca 2013 03:18:34 UTC+2 użytkownik A. L. napisał:
>> Ilość klas nie ma kompletnie żadnego znaczenia. Uzgodnijmy więc, że
>> masz ich 3 miliony, niech ten system wygląda jeszcze poważniej, nie
>> wpływa to na dalsze rozważania.
>
> Obawiam się, że w javie wcześniej trafisz na którąś z 16-bitowych ścian ;)
Jakich 16-bitowych ścian? Jedyne jakie znam są w formacie plików .class,
ale tu nie może chodzić akurat o te.
>>> Obiekty owych klas organizowane sa w struktury zwane "hypergraph".
>>
>> O, i to dopiero ma znaczenia. Nawet jeśli w programie jest tylko
>> jedna klasa.
>
> Tylko nadal pozostaje pytanie (ok, w javie się tego nie da inaczej,
> week-reference jest mało znane i upierdliwe w stosowaniu) jak wygląda
> ownership i czas życia obiektów?
Michoo, życzliwie: nie tygodniowa referencja, tylko słaba (weak).
Weak-rwfs może używa się niezbyt często, ale owszem, dla uniknięcia
memory leaków w Javie, najczęściej spowodowanych trzymaniem dużych
chmur obiektów od gc root porzez albo niezwalnianą instancję lub
statyczne pola klas, które nigdy nie przestają być potrzebne. Ja się
spotkałem z tym, że najczęstsze dwa miejsca to monitoring, który
trzyma weak-refs do obiektów będąc singletonem, i wszelkie formy
stosów.
> W przypadku bez GC zazwyczaj(oczywiście nie zawsze) na etapie tworzenia
> struktury danych mamy jakąś mapę/listę/tablicę w której umieszczamy nowo
> tworzone obiekty i z której je wyszukujemy tworząc kolejne krawędzie - w
> takiej sytuacji czas życia może być powiązany z tą strukturą.
>
> GC oczywiście daje możliwość zwalniania obiektów w czasie, gdy wypadają
> one z hipergrafu i jeżeli właśnie tego potrzebujemy, to jest to właśnie
> owo specyficzne zastosowanie w którym przy braku GC musielibyśmy je i
> tak napisać. Jeżeli natomiast nie potrzebujemy zwalniania obiektów w
> czasie pracy algorytmu to GC jest tylko zbędnym kosztem.
Dokładnie. W rpzypadku grafów najłatwiej jest użyć zwykłych tablic,
które zwalania się po zakończeniu, albo trzymać bitowe maski użycia
indeksu oraz stos najbliższej maski z wolnym indeksem. Robiliśmy
takie rzeczy dla grafów zajmujących kilkadziesiąt czy kilkaset GB.
Hipergraf różni się tylko dodatkowymi setami, co niczym nie odbiega
od dołączonych do zwykłego grafu informacji dodatkowych pod względem
samej struktury danych.
>> Z punktu widzenia mainstreamu pytanie jest następujące: czy GC
>> powinien być obowiązkowym elementem systemu, niezależnie od tego, co
>> ten system robi.
>
> Tu odpowiedź jest bolesna - tak, bo na rynku brakuje dobrych
> programistów i obawiam się, że spora grupa dostępnych nie poradzi sobie
> bez GC.
Czasami wystarcza odpowiedni framework i wzięcie programistów w kamasze
mówiąc "macie robić tak i tak, zawsze i wszędzie". Z jakiegoś powodu
programiści lubiący Javę nie lubią takich "ograniczeń wolności".
> Natomiast cały czas uważam, że język który z jednej strony zabierał z
> przed programisty konieczność zarządzania pamięcią ręcznie a z drugiej
> strony wymuszał odpowiednie ustalenie własności obiektów na etapie
> projektu byłby ciekawy.
Jestem mocno zaciekawiony. Mógłbyś rozwinąć, chyba że ktoś czegoś takiego
próbował i masz linka?
--
Edek
Następne wpisy z tego wątku
- 11.07.13 17:17 A.L.
- 11.07.13 17:19 A.L.
- 11.07.13 17:52 bartekltg
- 11.07.13 18:20 Edek
- 11.07.13 18:41 firr
- 11.07.13 21:06 Edek
- 11.07.13 21:16 firr
- 11.07.13 21:24 Edek
- 11.07.13 21:31 firr
- 11.07.13 21:45 R.e.m.e.K
- 11.07.13 21:48 Edek
- 11.07.13 21:55 bartekltg
- 11.07.13 22:00 Edek
- 11.07.13 22:04 firr
- 11.07.13 22:06 firr
Najnowsze wątki z tej grupy
- 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
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-27 Warszawa => Account Manager - Sprzedaż Usług Rekrutacyjnych <=
- 2025-02-27 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-27 Warszawa => Mid IT Recruiter <=
- 2025-02-27 Warszawa => Expert Recruiter 360 <=
- 2025-02-27 Warszawa => Junior Rekruter <=
- 2025-02-27 China-Kraków => Key Account Manager IT <=
- 2025-02-27 Warszawa => Sales Assistant <=
- 2025-02-27 Kraków => Frontend Vue Developer <=
- 2025-02-27 Re: Zwolniony z IKEA za "wąty" przeciw firmowej promocji LGBT-IQ+ przywrócony do pracy - SN odrzucił kasacje (sygn. akt I PSK 62/24)
- 2025-02-27 Częstochowa => Manager ds. produktu <=
- 2025-02-27 Warszawa => Business Systems Analyst <=
- 2025-02-27 Nagranie poglądowe
- 2025-02-26 Zasilacz USB na ścianę.
- 2025-02-26 Błonie => Specjalista ds. public relations <=
- 2025-02-26 Zielonka => Team Lead / Tribe Lead FrontEnd <=