реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Использование операторов new и delete в embedded
Сергей Борщ
сообщение Jun 15 2010, 13:09
Сообщение #16


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(_Макс @ Jun 15 2010, 15:19) *
Точно new больше нету, искал по исходнику.
Искать надо в .map Возможно, new или malloc использует какая-то из библиотечных функций.
Цитата(_Макс @ Jun 15 2010, 15:19) *
Хотя сколько раз такой блок будет вызван неизвестно, только если это не конструктор...
Вот именно. И даже если конструктор - может быть создано несколько таких объектов. Часть статически, часть автоматически (локально), часть динамически.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jun 15 2010, 15:42
Сообщение #17


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Так, для информации http://www.ibm.com/developerworks/ru/edu/a...&S_CMP=GR01


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Jun 15 2010, 16:01
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(sigmaN @ Jun 15 2010, 22:42) *

Для введения статья пойдет, однако читать ее нужно вдумчиво. Тк есть несколько ляпов (подозреваю, что переводчика)

https://www.ibm.com/developerworks/ru/edu/a...r/section2.html
Цитата
Такие функции, как malloc и new, являются выделителями памяти общего назначения. Ваша программа может быть однопоточной, однако, функцию malloc лучше использовать для многопоточных примеров. Дополнительная функциональность снижает производительность этой команды.


https://www.ibm.com/developerworks/ru/edu/a...r/section5.html
Цитата
Каждое выполнение данного цикла вызывает 1000 выделений и перераспределений памяти. 5000 итераций цикла приводят к 10 миллионам переключений между кодом пользователя и кодом ядра. Компиляция данного теста при помощи gcc-3.4.6 на компьютере под управлением Solaris 10 заняла в среднем 3,5 секунды. Это базовый показатель производительности при использовании глобальных операторов new и delete и стандартного компилятора. Чтобы создать специальный диспетчер памяти для класса Complex, который оптимизирует компиляцию, вам необходимо переопределить Complex при помощи операторов new и delete, относящихся к данному классу.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jun 15 2010, 16:18
Сообщение #19


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



А сам я не читал её..так, просмотрел когда-то и в закладки засунул. Типа может пригодиться.
Ну переводчики как обычно жгут, что и говорить.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
_Макс
сообщение Jun 15 2010, 16:37
Сообщение #20


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Цитата(Сергей Борщ @ Jun 15 2010, 16:09) *
Искать надо в .map Возможно, new или malloc использует какая-то из библиотечных функций.

Только __data_Aldata 8 байт и free 132 байта.
Go to the top of the page
 
+Quote Post
XVR
сообщение Jun 16 2010, 07:35
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(_Макс @ Jun 15 2010, 13:09) *
В функциях push и pop по привычке от PC программирования использовал new и delete.
...
Неужели нельзя сделать 30 вызовов new по три байта?
Вызывать new на 3 байта НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЕТСЯ даже на РС (если только вы не индус)
Go to the top of the page
 
+Quote Post
_Макс
сообщение Jun 16 2010, 08:21
Сообщение #22


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Цитата(XVR @ Jun 16 2010, 10:35) *
Вызывать new на 3 байта НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЕТСЯ даже на РС (если только вы не индус)

Почему?
Go to the top of the page
 
+Quote Post
skripach
сообщение Jun 16 2010, 09:22
Сообщение #23


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
Почему?

Написано выше, читайте. Поинтересуйтесь как работает манагер памяти и всё поймёте.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jun 16 2010, 09:24
Сообщение #24


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Потому что блоки, выделяемые менеджером, обычно много крупнее этих 3 байт и плюс накладные расходы на это немалые...
Хотя если всё это Вас не тревожит и морально-эстетическая сторона вопроса не Ваш конёк, то...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
_Макс
сообщение Jun 16 2010, 09:30
Сообщение #25


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Цитата(demiurg_spb @ Jun 16 2010, 12:24) *
Потому что блоки, выделяемые менеджером, обычно много крупнее этих 3 байт и плюс накладные расходы на это немалые...
Хотя если всё это Вас не тревожит и морально-эстетическая сторона вопроса не Ваш конёк, то...

Как можно узнать размер блоков и регулировать работу менеджера?
Go to the top of the page
 
+Quote Post
XVR
сообщение Jun 16 2010, 10:01
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(_Макс @ Jun 16 2010, 13:30) *
Как можно узнать размер блоков
Размер блока (обычно) не менее 2х указателей (на платформе), а может быть и больше
Цитата
и регулировать работу менеджера?
Написать свой менеджер
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jun 16 2010, 14:05
Сообщение #27


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
и регулировать работу менеджера?
не использовать менеджер там где это реально не нужно и даже вредно.
Т.е. не придумывать проблем, которые потом решать(писать свой менеджер).

Всё гениальное - просто smile.gif


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 05:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01475 секунд с 7
ELECTRONIX ©2004-2016