Вопросы с тегом «memory»

204
Что такое фрагментация памяти?

Я слышал, как термин «фрагментация памяти» несколько раз использовался в контексте динамического выделения памяти в C ++. Я нашел несколько вопросов о том, как бороться с фрагментацией памяти, но не могу найти прямой вопрос, который касается самой этой проблемы. Так: Что такое фрагментация памяти?...

196
Цель выравнивания памяти

Правда, я не понимаю. Скажем, у вас есть память со словом памяти длиной 1 байт. Почему вы не можете получить доступ к переменной длиной 4 байта в одном доступе к памяти по невыровненному адресу (т.е. не делится на 4), как это имеет место с выровненными...

193
Почему добавление «» в строку сохраняет память?

Скажем, я использовал переменную с большим количеством данных String data. Я хотел использовать небольшую часть этой строки следующим образом: this.smallpart = data.substring(12,18); После нескольких часов отладки (с визуализатором памяти) я обнаружил, что поле объектов smallpartзапоминает все...

185
Как многомерные массивы отформатированы в памяти?

В Си я знаю, что могу динамически распределить двумерный массив в куче, используя следующий код: int** someNumbers = malloc(arrayRows*sizeof(int*)); for (i = 0; i < arrayRows; i++) { someNumbers[i] = malloc(arrayColumns*sizeof(int)); } Ясно, что на самом деле это создает одномерный массив...

180
Как я могу отслеживать использование процессора, памяти и диска компьютера в Java?

Я хотел бы отслеживать следующую системную информацию в Java: Текущее использование процессора ** (в процентах) Доступная память * (бесплатно / всего) Свободное место на диске (бесплатно / всего) * Обратите внимание, что я имею в виду общую память, доступную для всей системы, а не только для JVM. Я...

180
Что происходит при запуске компьютерной программы?

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

179
В чем разница между буфером и кеш-памятью в Linux?

Для меня не ясно, в чем разница между двумя концепциями памяти Linux: bufferи cache. Я прочитал этот пост, и мне кажется, что разница между ними заключается в политике истечения срока действия: политика буфера является первым вошел первым Политика кеша - Наименее недавно использованная. Я прав? В...

178
Приблизительная стоимость доступа к различным кэшам и основной памяти?

Кто-нибудь может дать мне приблизительное время (в наносекундах) для доступа к кэшам L1, L2 и L3, а также к основной памяти на процессорах Intel i7? Хотя это не вопрос программирования, знание таких подробностей о скорости необходимо для некоторых задач программирования с малой задержкой....

171
Инструмент командной строки для определения размера кучи Java и используемой памяти (Linux)?

Существует ли инструмент командной строки (Linux) для проверки размера кучи (и используемой памяти) приложения Java? Я пробовал через jmap. Но это дает информацию. о внутренних областях памяти, таких как Eden / PermGen и т. д., что мне не полезно. Я ищу что-то вроде: Макс. Память: 1 ГБ Минимальная...

169
Как работают строки кэша?

Я понимаю, что процессор вводит данные в кеш через строки кеша, которые - например, на моем процессоре Atom - за один раз выдают примерно 64 байта, независимо от размера считываемых данных. Мой вопрос: Представьте, что вам нужно прочитать один байт из памяти, какие 64 байта будут занесены в кеш? Я...

165
Распределение стека и куча структур в Go и как они связаны со сборкой мусора

Я новичок в Go и испытываю небольшой диссонанс между программированием на основе стека в стиле C, где автоматические переменные живут в стеке, а выделенная память - в куче, и программированием на основе стека в стиле Python, где Единственное, что живет в стеке - это ссылки / указатели на объекты в...

162
Строковые литералы: куда они идут?

Меня интересует, где строковые литералы распределяются / хранятся. Я нашел один интригующий ответ здесь , говоря: Определение строки inline фактически встраивает данные в саму программу и не может быть изменено (некоторые компиляторы допускают это умным трюком, не беспокойтесь). Но это было связано...

161
Скала против Java, производительность и память? [закрыто]

В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и,...

159
java.lang.OutOfMemoryError: размер растрового изображения превышает бюджет виртуальной машины - Android

Я разработал приложение, которое использует много изображений на Android. Приложение запускается один раз, заполняет информацию на экране ( Layouts, Listviews, Textviews, ImageViews, и т.д.) и пользователь считывает информацию. Там нет анимации, никаких спецэффектов или чего-то, что может заполнить...

159
Что на самом деле означает «память, выделенная во время компиляции»?

В языках программирования, таких как C и C ++, люди часто ссылаются на статическое и динамическое распределение памяти. Я понимаю концепцию, но фраза «Вся память была выделена (зарезервирована) во время компиляции» всегда смущает меня. Компиляция, насколько я понимаю, преобразует код высокого...

156
Установка переменной в NULL после освобождения

В моей компании есть правило кодирования, которое гласит, что после освобождения памяти сбросьте переменную в NULL. Например ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Я чувствую, что в случаях, подобных приведенному выше коду, установка значения...

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

Учитывая, что память разделена на четыре сегмента: данные, куча, стек и код, где находятся глобальные переменные, статические переменные, постоянные типы данных, локальные переменные (определенные и объявленные в функциях), переменные (в основной функции), указатели и динамически выделенное...

153
В Си скобки действуют как кадр стека?

Если я создаю переменную в новом наборе фигурных скобок, эта переменная выталкивается из стека на закрывающей скобке или она висит до конца функции? Например: void foo() { int c[100]; { int d[200]; } //code that takes a while return; } Будете dзанимать память во время code that takes a...