Előadás a halom és stack - verem túlcsordulás az orosz
@voipp: Nem hiszem, hogy az információ, amit olvas, az igaz. Ahogy helyesen mondta @DreamChild, és verem, és a hip - legfeljebb eszközöket. Az a tény, hogy a köteg kisebb, mint a kupac mérete általában nem jelent semmit: elérheti az adatokat a helyi és lokális HIPE verem. (Erre gondolt gyorsítótár a processzor szinten, de ez nem működik úgy, ahogy gondolja.) Nyilvántartja a magas szintű nyelvek nem, és soha nem is lesz, több okból (például azért, mert az optimalizálási fordító tudja optimalizálni egy jobb ember.) - VladD december 5 '13 at 11:48
- És stack és heap egyaránt fizikailag RAM (nem veszi figyelembe az építészeti diszlokációk segítségével spec. Processzorok / számítógép)
- Méretük és helye határozza meg a tengely
- Ebben kupac lehet töredezett (néha elég erősen). Általában tengelyek különleges eljárások töredezettségmentesítéséhez a kupac.
- Stack általában nem töredezettek (Gondolom tudod gondolni végrehajtási verem a töredezettség, de ez egy oximoron).
- Stack, mert gyorsan, mert ez az egyetlen lehetőség dolgozik együtt - ez a helyzet a stack pointer (általában eset) - így az összes veremműveletekhez sokkal gyorsabban fut, mint egy kupac. Működés a köteg lehívása / rekord 1 mozdulattal POP / PUSH processzor
- Egy csomó nehéz, mert az egyszerű kezelhetőség és a fragmentáció letölteni az értékét is eredményezheti tíz (vagy akár több száz) mozgás processzor.
- Hátrányok verem kicsinysége a mérete (ez mindig összehasonlítjuk egy csomó idő kevesebb) - úgy, hogy a hozzáférést csak következetes.
Válaszol december 6. '13 at 18:47
@Barmaley: 6) Logikus, hogy a memóriát a kupac, de ha van egy mutató egy objektum a kupac, és a mutatót egy objektum a verem, a hozzáférés sebessége szigorúan azonos. 7) Ismét elérhető végezzük nincs összhangban az olvasás és dereference a mutatót. - VladD december 6. '13 20:15
Sőt, az adatelérési sebesség a verem, és a halom ugyanaz. Ie Tárgyak 5) és 6) egy tévedés. Azt nem volt lusta, és ellenőrizte a töltési idő (több kísérlet), egy sor 2 millió. Int (inkább a verem nem illik) a halomból és verem. légpárnás kitöltési (int a [], int n)
@avp nem szabad próbálja, akkor biztosítani kell, hogy egy csomó töredezett - e célból szükséges, hogy a felhő egy véletlenszerűen elosztása a különböző méretű és véletlenszerűen távolítsa el őket, csak akkor ellenőrizze a sebességet hozzáférést biztosít a nagy tömb a kupac (!). Ellenkező esetben, ha a kupac nem törnek sebesség természetesen ugyanaz lesz. - Barmaley december 8 '13 at 18:47
Bár sok idő telt el azóta, hogy a kérdést, szeretnék válaszolni, mert ez a kérdés még mindig a „Google”, és azt hiszem, hogy sokkal több lesz erre az oldalra.
Mint azt már válaszol „fizikailag” - ez a tranzisztorok és kondenzátorok. Ahhoz, hogy a kérdést valószínűleg emeltük nem teljesen helyes. Lehet, hogy jelent valamit, mint a - „Hol van egy csomó verem, és hogyan működnek.”
Szintén. Valószínűleg. érdekli általában rendezett memória, teljesen megvilágítja ezt a kérdést nem fogom, de azt akarom, hogy mutassa meg egy teljes véleményem, az anyag és a linkeket biztosíthat számukra. Anyagok oroszul. Meg kell érteni, hogy mi a virtuális memória és hogyan fordították a fizikai.
Itt egy példa a szervezet a memória szegmens.
Ez rövid és egy kicsit a virtuális memória fizikai reprezentáció.
Ami a memória eszköz is a folyamat:
KÓD tárolja a készülék, valamint egy csomó más dolgot lehet tanulni tőlem ajánlása anyagot a választ.
Sokkal jobb, hogy ezt mondja. Tipikus műveletek a memória elosztását / release és írási / olvasási. memória kiosztása és felszabadítás műveletekhez lassabban egy kupacban.
Ha például kezdjük mutató az adatokat fekvő halom, a különbség a hozzáférés sebessége egyáltalán nem.
Válaszol december 7 '13 at 06:11
„Az adatokhoz való hozzáféréshez (írás / olvasás) szinte azonos sebességgel,” És ha az adatok hiányosak, nem lassítja az olvasó? - voipp december 7 '13 at 11:14
@voipp: Mit jelent a „adatok hiányosak?” Ha beszélünk a töredezettség a tömb, akkor ez nem történik meg, a tömb mindig egyenesen megy. Ha beszélünk a kezelés a különböző tárgyak, ezek elválaszthatók a memóriában, és a helyét a verem, és a kupac. - VladD december 7 '13 at 11:57
Igen, támogatom @VladD. A szerkezet is, nem töredezettek. Ha van egy halom szerkezet egy std :: string tartalmát a sor, általában - egy kupacban :). Inkább meg kell gondolni a adatszerkezetek, amelyet akkor kell használni, nem a helyét. A listát, például néha jobb, mint a tömbben, de hajlamos a fragmentáció (és több memóriát költségek). - Michael M december 8 '13 at 09:01