|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
Эффективное выделение памяти11.04.2017, 16:49. Показов 3342. Ответов 25
Метки нет (Все метки)
Много раз встречал что размер выделенной памяти рекомендуется округлять до степени двойки. Почему?
Так же еще встречался с мнением что в некоторых случаях лучше округлять размер выделенной памяти так, что бы она была равна размеру страницы памяти. То есть если нужно 4030 байт, то выделяют 4096? Еще насколько я знаю размер страницы может быть разным. Если такое выделение эффективное (интересно почему), то есть ли переносимый способ узнать на этапе компиляции размер страницы?
0
|
|
| 11.04.2017, 16:49 | |
|
Ответы с готовыми решениями:
25
Эффективное использование памяти Выделение памяти, проверка на утечку памяти Распределение памяти. Динамическое выделение памяти |
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 11.04.2017, 18:42 [ТС] | ||
Вот скажем есть 2 страницы в каждой из которой есть одна переменная intИз твоих утверждений если я правильно понимаю эти две переменные не могут быть записаны в одну линейку Но не могу понять почему... линейка же со страницами никак не связана, или я ошибаюсь? То есть один поток может использовать две эти переменные которые попадут в одну линейку (насколько я знаю у проца нет специальной фичи чтоб разделять по разным линейкам данные из разных страниц) И еще может быть так что все линейки имеют актуальные данные которые не нужно вытеснять но при этом есть возможность сложить данные с двух страниц в одну линейку. В противном случае инвалидировать актуальную линейку думаю было бы не эффективно Я конечно ничего не утверждаю... просто так думается мне, объясни плиз в чем я ошибаюсь
0
|
||
|
Ушел с форума
|
|
| 11.04.2017, 18:53 | |
|
Данные из памяти не попадают в кэш процессора "абы как". Если ты читаешь один байт
по адресу 0xF0007, то в кэш CPU попадет весь блок от 0xF0000 до 0xF001F включительно (подразумеваем, что размер линии кэша - 32 байта). Как в эту же линейку могут попасть данные из другой страницы, например 0xF1000?
1
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 11.04.2017, 19:13 [ТС] | |
|
Убежденный,
Блин, точно. Вспомнил. Верно говоришь ![]() Но тогда достаточно выравнивать по размеру кеш лайна чтоб понять кто с кем будет в одной линейке что тоже поможет избежать фолс шеринга Добавлено через 14 минут Убежденный, А вот еще одна мысль. Есть например структура размер которой равен 32 байта Первые 16 байт находятся в конце первой страницы а следующие 16 в начале второй (не уверен что так бывает) Если так бывает то при чтении sizeof(cache_line) то с первой странице будет скачок на вторую чтоб прочитать всю структуру и положить в кеш. Надеюсь я не сильно надоел))
0
|
|
|
Ушел с форума
|
|||||
| 11.04.2017, 19:23 | |||||
|
11.1 INTERNAL CACHES, TLBS, AND BUFFERS
Просто не существует хорошего и переносимого способа быстро определить размер линейки кэша на текущем CPU. А page size, как правило, известен еще на стадии компиляции.
2
|
|||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 11.04.2017, 19:41 [ТС] | |
|
Убежденный,
Ясно, спасибо!
0
|
|
|
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
|
||
| 11.04.2017, 21:30 | ||
|
0
|
||
| 11.04.2017, 21:30 | |
|
Выделение памяти Выделение памяти(С = С++) Выделение памяти Выделение памяти Выделение памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|