Odpověď na názor

Odpovídáte na názor ke článku The Tale of Two (.NET) Heaps.

  • 9. 11. 2011 23:28

    Miloslav Ponkrác (neregistrovaný)

    Roger: „Stránkování samozřejmě nemůžete napsat, když ten procesor neznáte - minimálně potřebujete vědět, jak velké jsou fyzické stránky“

    Ale houby s octem. Uvědomte si, že procesory nejsou náhodné generátory, které generují miliardu různých a naprosto odlišných velikostí stránek.

    Taky si to můžete stanovit jako u Windows, kde se prostě rovnou rozhodli, že v rámci přenositelnosti vše bude zarovnávat na hranici 64 KB a vše se bude chovat, jako kdyby existovaly stránky o velikosti 64 KB.


    „a jak funguje ochrana paměti, TLB a podobné záležitosti, bez toho žádnou správu nenapíšete.“

    Na to napíšete maličný kernel v kernelu, který bude nabízet služby těm multiplatformním vrstvám většiny operačního systému.

    Zkuste si občas představit, že tvůrci operačního systému nejsou blbci. A že se taky neučili jak věci očúrat a jak v rámci lenosti si ulehčit práci a získat tak volný čas na alkohol a návštěvy nevěstince.


    „Jednak řešíme MS implementaci .NET runtime na Windows.“

    To řešit můžete, ale nic to nemění na faktu, že v MS řeší běhovou mašinu .NETu pravděpodobně multiplatformně. Tedy tak aby na Windows ani x86 nezávisela. Kdyby to nedělali, špatně by dopadli.


    „A MMU/chráněný mód je, pokud mě pamět nešálí, povinný požadavek na Linux, a ačkoliv existují varianty bez MMU (uCLinux)“

    A jak vidíte, povinný požadavek na něco je něco co je k ničemu. Prostě jediný povinný požadavek je přizpůsobit se hw, na který implementujete.


    „ochrana paměti je jedna ze základních vlastností operačních systémů“

    Ovšem nikoli povinných vlastností procesorů či hw řešení počítačů. V řadě situací je dokonce zbytečné něco takového na hw úrovni mít.


    „Navíc dnes už i "obyčejné" ARM11, používané v (hloupých) mobilech, MMU obsahují.“

    V dodnes používané architektuře ARM žádná MMU není. Nejsou jen mobily.


    „Jenže SOH se kompaktí - a s ohledem na velikost tam ukládaných objektů bych čekal, že těch úprav bude mnohem víc.“

    Čekat sice můžete, ale otázka jestli to tak je. Já bych si tím jistý nebyl.

    Celé je to prostě zoufalstvím všech tvůrců správců paměti, kdy se snažíte o kompromis a občas si trháte vlasy.

    Oni se taky mohli setkat s nějakým problémem, jehož vyřešení by si vyžádali delší dobu.

    Taky zapomínáte z hlediska teorie na praxi. Ti programátoři prostě mají nějaké termíny, manažeři jsou schopni jim dát výpověď, nebo snížit výplatu, když je nedodrží. A tak se prostě správce paměti naprogramuje do půlky toho co by chtěli naprogramovat – tak aby to v termínu daného managery prostě stihli.

    To je obyčejný život. Programátoři nemají vždy možnost dotáhnout věci do konce a do dokonalosti, protože to je kapitalismus, neviditelná ruka trhu. A oni mají nad sebou biče a represe vedoucích a nadřízených, a občas musí vypustit něco méně dokonalého, ale musí to udělat v termínu.

    Proč ve všech hledáte jen technické důvody?


    „Nezáleží na velikosti objektů, ale na počtu referencí.“

    Ha ha.

    Chcete tedy říci, že kopírování jednoho terabajtu paměti je stejně rychlé jako jednoho bajtu paměti?

    Asi ne, že. Proč mě ksakru zkoušíte jako malého kluka jestli se nachytám?


    „Při GC stejně musíte projít stromy referencí, takže víte, co opravovat. A v managed kódu samozřejmě žádné pointery nemáte, takže odpadá ono procházení celé paměti a hádáni, co by tak mohl být ukazatel.“

    No cement. Raději.


    „Vždycky máte přehled o referencích na všechny objekty, to je tak nějak jeden ze smyslů celé té srandy. Takže tenhle argument nedává smysl.“

    Ano, je dohledatelné co kde leží. Virtuální mašina to ví.

    Všiml jsem si už dříve, že čas pro Vás neexistuje. Viz moje poznámka, že mě zkoušíte. Tak vězte, že vše se dělá v reálném čase a v paralelním prostředí. Něco to stojí – prostředky, mezi jinými je i čas. A zabírání času je posílání výkonu, tedy rychlosti programu do zadele.

    Takže musíte se ve správci krotit a chovat se trochu připotentovaně a impotentně. Protože když to budete dělat na plné pecky, tak zase spotřebujete tolik runtime času, že uděláte ze všeho emulátor nejpomalejšího počítače.


    Jinak dále už nebude reagovat. Jsou tu chytří lidé, a radost to tu číst. Diskuse je zajímavá, ale čas už nemám.