Jak můžete zjistit, zda je maximální velikost paměti stohu o programu C ++ na Linuxu? (Gnu kompilátor)




Jsem zvědavý, jak zjistit, co je maximální velikost zásobníku pro konkrétní kompilátor / os combo. Já používám Ubuntu / GNU kompilátor. Pár otázek, které mám navíc patří:


1. Kdo ovládá výchozí velikost maximální zásobníku; OS nebo kompilátor?
2. Je výchozí maximální poměru k celkové paměti? (Tj stroj s 2GB paměti by mít větší velikost než výchozí stroji s pouze 512) V tomto příkladu oba stroje jsou stejné nastavení os / překladač, jen různá množství systémové paměti RAM.


Dík!
> 
> Kdo ovládá výchozí velikost maximální zásobníku; OS nebo kompilátor?
> 
> 
> 


Překladač obvykle. OS / hardware, omezuje jej do určité míry. Výchozí hodnota je 8 MB. Na linux IIRC. Myslete na `ulimit -s`systému Linux (pro změnu velikosti zásobníku).



> 
> Je výchozí maximální poměru k celkové paměti? (Tj stroj s 2GB paměti by mít větší velikost než výchozí stroji s pouze 512) V tomto příkladu oba stroje jsou stejné nastavení os / překladač, jen různá množství systémové paměti RAM.
> 
> 
> 


Ne. Dokud a pokud to uděláte yiurself.You může změnit velikost zásobníku přes kompilátor přepínače.



```
ld --stack=<STACK_SIZE>

```

nebo 



```
gcc -Wl,--stack=<STACK_SIZE>

```


> 
> Vezměte si Standard C ++ o problematice komínů a hromady:
> 
> 
> 


Norma je založena na abstraktním stroji a opravdu není sama o sobě tím hardwarem nebo komíny nebo hromad. To mluví o přidělené obchodu a volného obchodu. Volný obchod je místo, kde byste se, pokud voláte nový (většinou). FWIW, implementace může mít pouze jeden paměťový prostor maskující se jako oba zásobníku a haldy, pokud jde o námitky alokaci.


Váš dotaz, omáčky, scvrkává být specifický problém implementace spíše než záležitost jazyka. 


Snad to pomůže.
Záleží na kapacitě, patrně budeš limitovaný součtem 2 TB (tedy tím, od kdy bude potřeba EFI modul). 32GB. Můžu se zeptat, proč chceš víc paměti? 8GB až až... 2x 2 GB může být jen oficiální maximální hodnota. Klidně bych tam těch 2x 4 GB Dual Rank zkusil. Otázkou je, zda to má smysl. SODIMM jsou notebookové ram. Maximum můžeš osadit 8GB (celkem). 4 máš napevno v desce a 2 ve slotu. Takže můžeš ty 2 vyhodit a dát tam čtyřku. Tím si navýšíš z 6 >> 8 GBJedná se o ddr paměti, takže ty různé utility ukazují "jakoby poloviční" frekvenci (798).Takže sháněj 1600 MHz. Akorát si pohlídej jestli je to dual nebo single rank. ![](/Client.Images/smileys/6.gif) Linux je +/- narocny stejne, je to jen jadro ktery pouzivaji vsechny distribuce. Dulezity je hlavne zvolene graficke prostredi a aplikace ktere budes pouzivat. Tech 1G ram je dost kritickych, premyslel bych pridat jeste 1G modul. A treba Debian + LXDE, nebo OpenBox pokud to ustojis![](/Client.Images/smileys/1.gif)[https://www.debian.org/releases/stable/i386/ch03...](https://www.debian.org/releases/stable/i386/ch03s04.html.en) Takže pro jednoho člověka v případě vanilla serveru 64MB,čily 1280 by mělo stačit,ale doporučuji vždy o něco více (100na jednoho člověka)V případě Bukkitu je minimum 100MB (optimálně je 150,rezerva pro pluginy) takže 2GB-3GBCPU stačí 2,8 Ghz (dvoujádro pro dobrý chod,eventuelně 4jádro 2,6Ghz a více) Odpověď by microsoft:[http://windows.microsoft.com/cs-cz/windows7/products/s...](http://windows.microsoft.com/cs-cz/windows7/products/system-requirements) 60GB by ti mělo bohatě na systém + programy stačit. vsetky ramky vyber a daj tam len jednu, napriklad tu 2ku, co ide. Postupne vyskusaj vsetky sloty, ked vo vsetkych pojde, tak vies, ze doska je OK. Potom pridaj dalsiu ramku a zas skus ci pojde 4GB, pripadne tu 8ku, 10GB.. Je mozne, ze pojde iba jeden slot, ten, kde je teraz 2ka. No a potom novy PC. Staci dokoupit druhy 8GB modul se stejnymi / vhodne podobnymi parametry. A to temer jiste nebude zadny problem, ikdyby se ten puvodny typ RAM uz nevyrabel.Tak nam prozradte presny typ stavajici RAM, at navrhneme spravny modul pro upgrade a bude to. Zbytečně velké chtěl jen "2GB".Co se týče spolehlivosti, tak u provozní souhlasím se Samsung 860pro, co se týče úložní, tak zálohovat zálohovat zálohovat,.