|
1 / 1 / 0
Регистрация: 30.03.2017
Сообщений: 141
|
|||||||||||
Своя реализация malloc, calloc, realloc10.02.2024, 13:02. Показов 4463. Ответов 44
Доброго времени суток. Данные функции не работают подскажите в чем может быть дело. UB необработанные исключения и прочее в зависимости от фазы луны.
Походу я где-то туплю. Заранее благодарен за помощь.
0
|
|||||||||||
| 10.02.2024, 13:02 | |
|
Ответы с готовыми решениями:
44
Можно ли выделять память под объект класса с помощью функций calloc, malloc или realloc?
Использование calloc/realloc/free |
|
1 / 1 / 0
Регистрация: 30.03.2017
Сообщений: 141
|
|||||||||||
| 15.02.2024, 15:53 [ТС] | |||||||||||
|
сделал тест скорости, вот код теста:
вот так выглядит мой кастомный malloc:
из теста видно что работа на массиве гараздо быстрее.
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 30.03.2017
Сообщений: 141
|
||||||
| 15.02.2024, 16:11 [ТС] | ||||||
|
- я знаю зачем он нужен - атомики пока убрал Добавлено через 9 минут
0
|
||||||
|
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 910
|
|
| 15.02.2024, 17:07 | |
|
тестить скорость работы линейного аллокатора бесполезно - ибо это всего одна инструкция процессора.
(правда для условия многопоточки она атомарная) Этот аллокатор всегда самый быстрый. тестить скорость malloc - это ещё и уметь надо. никого не интересует скорость выделения и последующего освобождения памяти. проблемы со скоростью начинаются когда вы часто и в случайном порядке выделяете и освобождаете куски памяти - тоесть выделили 100000 кусков разного размера, потом начинаете тест - сколько-то случайных освободили, сколько-то новых выделили и тд. в malloc время тратится на поиск ранее освобожденного участка памяти, который можно использовать, если программа запросила кусок памяти. и malloc должен найти из всех свободных кусков наиболее подходящий по размеру - чтобы минимизировать фрагментацию. ТС - вы не понимаете принципы использования линейного аллокатора - когда его надо использовать. Основных два: 1) Для данных которые существуют в течении всего сремени работы программы - тоесть вы попросили у ОС кусок адресного пространства, сделали там линейный аллогатор и выделяете память которую не собираетесь освобождать до выхода из программы. При этом по мере использования аллокатора ОС будет задействовать реальную память. 2) Для алгоритмов которым для работы нужно выделять много мелких кусков памяти. При этом вы можете либо у ОС либо в куче запросить достаточного объёма блок памяти, сделать в нём линейный аллокатор и дать этому алгоритму - он его использует, а после вы целиком освобождаете (или повторно используете) весь кусок памяти - не задумываясь об освобождении всех тех мелких кусочков, которые навыделял алгоритм.
0
|
|
|
1 / 1 / 0
Регистрация: 30.03.2017
Сообщений: 141
|
|||
| 15.02.2024, 17:37 [ТС] | |||
|
Добавлено через 52 секунды
0
|
|||
|
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 910
|
|||||
| 15.02.2024, 20:13 | |||||
|
А зачем вы пишите их на С++ ? В микроконтроллерах обычно С++ не нужен. вы таким образом только тестируете сколько потреблет malloc, притом неправильно тестируете. К вам все вопросы сводятся к тому что мы не понимаем что вы делаете и зачем. Вопросы к коду это так-мелочи. Вы что-то придумали а мы пока не догоняем.
0
|
|||||
| 15.02.2024, 20:13 | |
|
malloc vs. calloc calloc vs malloc Malloc / calloc Как string создает строку?(calloc, malloc) malloc, realloc Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|