Meine Frage ist ähnlich wie this, aber ich frage etwas ein bisschen anders.Sind std :: vector Elemente im physischen Speicher zusammenhängend?
Es ist klar, dass es möglich ist, die Adresse des ersten std::vector
Elements als C
Array zu verwenden. Das bedeutet, dass im virtuellen Speicher die Elemente std::vector
zusammenhängend sind. Wenn jedoch physischer Speicher fragmentiert ist, ist es möglich, dass std::vector
tatsächlich in viele Teile im physischen Speicher aufgeteilt ist.
Meine Frage ist: Sind std::vector
Elemente zusammenhängend im physischen Speicher (sowie virtuellen Speicher)?
@hsouza: Das ist, was er verbunden ist. Er scheint zu fragen, ob das Betriebssystem selbst die Zusammenhängigkeit "fälschen" kann, aber die "echte" Speicherspaltung hat; ehrlich gesagt verstehe ich es nicht. – GManNickG
@hsouza Ich habe einen Link dazu in meiner Frage hinzugefügt. – ST3
Unter der Haube malloc verwendet mmap, also die Frage wäre, wenn mmap Ihnen angrenzenden physischen Speicher geben kann. Haben Sie sich das angesehen: http://stackoverflow.com/questions/4401912/linux-continuous-physical-memory-from-userrspace – LarryPel