memory-management- все статьи тега ➜ страница 2


Правильное использование стека и кучи в C++?

я программировал некоторое время, но это было в основном Java и C#. Мне никогда не приходилось управлять памятью самостоятельно. Недавно я начал программировать на C++, и я немного смущен тем, когда я должен хранить вещи в стеке и когда хранить их в куче. Я понимаю, что переменные, к которым обращаются очень часто, должны храниться в стеке и объектах, редко используемые переменные и большие структуры данных должны храниться в куче. Заключаться в следующем правильно или я ошибаюсь? ...

Адрес памяти переменных в Java

пожалуйста, посмотрите на картинку ниже. Когда мы создаем объект в java с новым ключевым словом, мы получаем адрес памяти из ОС. когда мы пишем out.println(objName) мы можем видеть "специальную" строку в качестве вывода. Мои вопросы: что это за выход? Если это адрес памяти, который нам дала ОС: a) как я могу преобразовать эту строку в двоичную? b) как я могу получить одну целочисленную переменную адрес? ...

Что Каждый Программист Должен Знать О Памяти?

Мне интересно, сколько из Ульриха Дреппера Что Каждый Программист Должен Знать О Памяти!--2--> С 2007 года остается в силе. Также я не мог найти более новую версию, чем 1.0 или описки. ...

Где в памяти хранятся мои переменные в C?

Я думаю, что они будут распределены следующим образом: глобальные переменные -------> сведения статические переменные ------- >данные постоянные типы данных - - - - - > код локальные переменные (объявленные и определенные в функциях) --------> стек переменные, объявленные и определенные в основной функции - - - - - > куча указатели (например, char *arr,int *arr) -------> кучи динамически выделенное пространство (с помощью malloc и calloc) --------> стек Я имею в виду эт ...

Как установить максимальное использование памяти для JVM?

Я хочу, чтобы ограничить максимальный объем памяти, используемой виртуальной машины. Обратите внимание, что это не просто куча, я хочу ограничить общую память, используемую этим процессом. ...

C++, Free-Store vs Heap

динамическое распределение с new/delete говорят, что это происходит на free-store,пока malloc/free операции используйте кучу. Я хотел бы знать, есть ли реальная разница на практике. Делают ли компиляторы различие между этими двумя терминами? (бесплатная магазине и кучу, а не new/malloc) ...

Как NSAutoreleasePool autorelease пул работает?

Как я понимаю, все, что создается с помощью alloc,новая или скопировать должен быть освобожден вручную. Например: int main(void) { NSString *string; string = [[NSString alloc] init]; /* use the string */ [string release]; } мой вопрос, однако, разве это не было бы так же справедливо?: int main(void) { NSAutoreleasePool *pool; pool = [[NSAutoreleasePool alloc] init]; NSString *string; string = [[[NSString alloc] init] autorelease]; /* use the string */ ...

память получает пиковое использование () с "реальным использованием"

если real_usage аргумент имеет значение true PHP DOCS говорят, что он получит реальный размер памяти, выделенной из системы. Если это false он получит память, сообщенную emalloc() какой из этих 2 вариантов возвращает максимум. память, выделенная относительно предельного значения памяти в PHP.Ини ? Я хочу знать, насколько близко был сценарий, чтобы достичь этого предела. ...

Если 32-разрядное целое число переполняется, можно ли использовать 40-разрядную структуру вместо 64-разрядной длинной?

если, скажем, 32-разрядное целое число переполняется, вместо обновления int до long, можем ли мы использовать какой-то 40-битный тип, если нам нужен диапазон только в пределах 240, так что мы сохраняем 24 (64-40) бит для каждого целого числа? Если да, то как? Я должен иметь дело с миллиардами и пространство является большим ограничением. ...

Начальная емкость вектора в C++

что такое capacity() на std::vector который создается с помощью конструктора по умолчанию? Я знаю, что size() - это ноль. Можно ли утверждать, что построенный по умолчанию вектор не вызывает выделение памяти кучи? таким образом, можно было бы создать массив с произвольным резервом, используя одно выделение, например std::vector<int> iv; iv.reserve(2345);. Допустим, что по какой-то причине я не хочу начинать size() на 2345. например, в Linux (g++ 4.4.5, ядро 2.6.32 amd64) #include <io ...

Определение доступного объема оперативной памяти на устройстве iOS

вы, вероятно, видели много приложений "System Info", которые отображают такие вещи, как оставшееся время автономной работы и даже системную информацию, такую как память и т. д. аналогичным образом, есть ли способ получить текущий объем доступной оперативной памяти из моего приложения, чтобы я мог принимать лучшие решения о том, когда лучше всего сбрасывать или сохранять определенные представления, чтобы избежать предупреждений о памяти? ...

Каков максимальный размер кучи по умолчанию для JVM Sun от Java SE 6?

каков максимальный размер кучи по умолчанию для JVM Sun от Java SE 6 (т. е. эквивалентно настройке-Xmx)? похоже на Java SE 5 с машиной серверного класса,это меньше 1/4 физической памяти или 1 ГБ. бонусный вопрос: похоже, что для JVM IBM вы можете задать его java -verbose:sizes -version можете ли вы аналогично спросить JVM Sun? Edit: Я Во время выполнения.getRuntime().в разделе для подтверждения мин(физической памяти/4, 1г), о которых говорится в Sun documentation. ...

Есть ли способ определить размер массива C++ программно? А если нет, то почему?

этот вопрос был вдохновлен аналогичным вопросом: Как удалить[] "знать" размер массива операндов? мой вопрос немного иначе: есть ли способ определить размер массива c++ программно? А если нет, то почему? каждая функция, которую я видел, которая принимает массив, также требует целочисленного параметра, чтобы дать ему размер. Но, как указал связанный вопрос,delete[] должен знать размер памяти, чтобы быть освободившему. рассмотрим этот код C++: int* arr = new int[256]; printf("Size of arr: %dn ...

Отличается ли динамическое выделение памяти в C и C++ в популярных реализациях?

что касается соответствующих языковых стандартов, C предлагает динамическое выделение памяти только через malloc() семья, в то время как в C++ наиболее распространенная форма выделения выполняется ::operator new(). C-style malloc также доступен на C++, и многие примеры "первого распределителя ребенка" используют его в качестве основной функции распределения, но мне любопытно, как современные компиляторы реализуют фактический оператор производства-новый. это просто тонкая обертка вокруг malloc() ...

Устанавливает ли free () errno?

если buf это malloc() выделенный буфер типа char, делает free(buf) set / reset errno? допустим я хочу записать буфер в файл, а затем освободить его, как я не нужна. предположим, что политика ошибок для кода должна возвращать -1 при ошибке. это правильный способ записать буфер и проверить ошибку без утечки памяти? fputs(buf, somefile); free(buf); if (errno) return -1; или мне нужно рассмотреть возможность свободной установки errno, как в... fputs(buf, somefile); if (errno){ free(buf) ...

Как контролировать использование памяти Java?

у нас есть приложение j2ee, работающее на Jboss, и мы хотим контролировать его использование памяти. В настоящее время мы используем следующий код System.gc(); Runtime rt = Runtime.getRuntime(); long usedMB = (rt.totalMemory() - rt.freeMemory()) / 1024 / 1024; logger.information(this, "memory usage" + usedMB); этот код работает нормально. Это означает, что он показывает кривую памяти, которая соответствует реальности. Когда мы создаем большой xml-файл из БД кривая идет вверх, ...

Как получить доступную память C++ / g++?

Я хочу выделить мои буферы в соответствии с доступной памятью. Такой, что, когда я делаю обработку и использование памяти идет вверх, но все еще остается в доступных пределах памяти. Есть ли способ получить доступную память (я не знаю, будет ли состояние виртуальной или физической памяти иметь какое-либо значение ?). Метод должен быть независимым от платформы, поскольку он будет использоваться в Windows, OS X, Linux и AIX. (И если это возможно, то я также хотел бы выделить часть доступной памяти ...

Как дать больше памяти IntelliJ Idea 9-11

Это касается Intellij от 9 до 11. В окне идеи в правом нижнем углу я вижу текущее использование памяти, обычно " 224M из 254M "как я могу дать больше памяти идее, чтобы она могла читать как" 224M из 512M"? спасибо. ...

Чтение больших файлов на Java

Мне нужен совет от кого-то, кто знает Java очень хорошо и проблемы с памятью. У меня есть большой файл (что-то вроде 1,5 ГБ) и мне нужно вырезать этот файл во многих (100 мелких файлов например) небольших файлов. Я вообще знаю, как это сделать (с помощью BufferedReader), но я хотел бы знать, если у вас есть какие-либо советы по поводу памяти, или советы, как сделать это быстрее. мой файл содержит текст, он не является двоичным и у меня есть около 20 символов в строке. ...

Linux free показывает высокое использование памяти, но top не делает

на RedHat Linux 6.2 я запускаю free -m и это показывает почти все 8GB использовать total used free shared buffers cached Mem: 7989 7734 254 0 28 7128 -/+ buffers/cache: 578 7411 Swap: 4150 0 4150 но в то же время в top -M Я не вижу никаких процессов, использующих всю эту память: top - 16:03:34 up 4:10, 2 users, load average: 0.08, 0.04, 0.01 Tasks: 169 total, 1 running, 1 ...