|
Embedded C++, Кто какие библиотеки использует? |
|
|
|
 |
Ответов
|
Sep 5 2012, 23:51
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Да, Си++ иногда тянет за собой кучу ненужного и тяжелого (полагаю, что и Си иногда тоже). На AVR я с этим не сталкивался, но столкнулся на ARM7TDMI, когда захотел использовать динамическую память (оператор new). Как только использовал, так код с 40 кБ вырос до 300 кБ. Пока чихаю на это, т.к. идет отладка. Но потом хочу прикрутить "легкую" реализацию менеджера памяти, любезно представленного уважаемым zltigo, и не менее любезно адаптированным к Си++ уважаемым Сергеем Борщем. От исключений пока отказался, там что-то чудесное и невероятное творится как с размером, так и компиляцией. Но мне оно сейчас не особо нужно, а вот без динамического выделения памяти очень плохо.
Как-то так.
Ну в общем подходишь к этому вопросу с необходимой долей разума. Где готовое используешь, где адаптируешь, где свое накропаешь)
--------------------
Выбор.
|
|
|
|
|
Sep 7 2012, 05:16
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(haker_fox @ Sep 6 2012, 04:51)  Да, Си++ иногда тянет за собой кучу ненужного и тяжелого А что именно? Мне кроме исключений (которые можно отключить при компиляции) ничего в голову не приходит... Цитата(haker_fox @ Sep 6 2012, 04:51)  На AVR я с этим не сталкивался, но столкнулся на ARM7TDMI, когда захотел использовать динамическую память (оператор new). Как только использовал, так код с 40 кБ вырос до 300 кБ. Пока чихаю на это, т.к. идет отладка. Но потом хочу прикрутить "легкую" реализацию менеджера памяти, любезно представленного уважаемым zltigo, и не менее любезно адаптированным к Си++ уважаемым Сергеем Борщем. Сейчас провел "экспресс-тест". Весь код программы, использующей new и delete, составил меньше 9 килобайт (arm7tdmi). Почему у Вас new/delete потянули дополнительные 260 килобайт, ума не приложу. Тем более, что Вы не используете исключения... В любом случае, к языку C++ как таковому это не имеет отношения. Напротив, наличие в языке этих операторов (и, главное, возможность их перегружать по своему усмотрению) дает программисту возможность более тонко контролировать работу с памятью. В тривиальном случае new/delete могут работать через malloc/free и, таким образом, ничем не будут отличаться от аналогичного кода на языке C. Ничего "ненужного" эти операторы сами по себе не "тянут".
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
Sep 9 2012, 00:58
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (alx2 @ Sep 7 2012, 14:16)  Почему у Вас new/delete потянули дополнительные 260 килобайт, ума не приложу. А вот и я не знаю... но стоит убрать эти операторы, как код становится 40 кБ... С другой стороны, не зря же свои менеджеры памяти "выдумывают", значит проблема есть... З.Ы. Компилятор у меня Code Sourcery...
--------------------
Выбор.
|
|
|
|
|
Sep 10 2012, 05:11
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(haker_fox @ Sep 9 2012, 05:58)  А вот и я не знаю... но стоит убрать эти операторы, как код становится 40 кБ... Но Вы-то, в отличие от нас, узнать это можете - достаточно заглянуть в map-файл... Вы, надеюсь, использовали nothrow-версию оператора new? А вот с такими реализациями: Код void * operator new(size_t n) throw() { return malloc(n); } void operator delete(void *p) { free(p); } тоже тянет 260 кбайт? Цитата(haker_fox @ Sep 9 2012, 05:58)  С другой стороны, не зря же свои менеджеры памяти "выдумывают", значит проблема есть... К языку программирования это не имеет никакого отношения. Язык C++ позволяет использовать любой менеджер памяти (включая использование нескольких менеджеров одновременно - для разных объектов разных). Свой менеджер памяти может потребоваться писать по тысяче разных причин - это зависит от решаемой задачи. И необходимость писать свой менеджер не означает, что все прочие существующие менеджеры плохи. Это всего лишь означает, что они не подходят для данной конкретной задачи. При этом для другой задачи какой-то из них может подойти гораздо лучше, чем "выдуманный" Вами. Но это совсем другая тема - не о языках программирования...
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
Сообщений в этой теме
Сега Embedded C++ Oct 28 2010, 12:12 Forger Я использую исключительно свои библиотеки. Писать ... Oct 28 2010, 12:54 ar__systems Цитата(Forger @ Oct 28 2010, 07:54) В при... Oct 28 2010, 14:27 scifi Не знаю, насколько актуально, но вдруг пригодится:... Oct 28 2010, 14:31 Petr_I Цитата(Сега @ Oct 28 2010, 16:12) ... вых... Oct 28 2010, 15:17 Сега К моему удивлению, в Keil есть поддержка исключени... Oct 28 2010, 18:02 ig_z QUOTE (Сега @ Oct 28 2010, 21:02) К моему... Oct 28 2010, 19:07 beaRTS А давайте помусолим uSTL (ссылка была раньше).
1.... Sep 4 2012, 09:28 Major Использую для ARM (всех) компилятор C++ и очень до... Sep 4 2012, 09:58 beaRTS Спасибо!
а на вопросы кто-нибудь прольет свет... Sep 5 2012, 02:14 Сергей Борщ QUOTE (beaRTS @ Sep 5 2012, 05:14) Просто... Sep 5 2012, 05:53  beaRTS Цитата(Сергей Борщ @ Sep 5 2012, 08:53) м... Sep 5 2012, 07:21 Major Использую и на 128КБайт и на 256МБайт (тут уже лин... Sep 5 2012, 12:32 beaRTS Цитата(Major @ Sep 5 2012, 15:32) Зачем п... Sep 5 2012, 14:53  Marto Цитата(alx2 @ Sep 7 2012, 10:16) А что им... Sep 8 2012, 18:15    haker_fox QUOTE (alx2 @ Sep 10 2012, 13:11) Но Вы-т... Sep 11 2012, 05:56     haker_fox В общем new (std::nothrow) объем кода не уменьшает... Sep 12 2012, 13:54      _Артём_ Цитата(haker_fox @ Sep 12 2012, 16:54) В ... Sep 12 2012, 14:13      AHTOXA Цитата(haker_fox @ Sep 12 2012, 19:54) В ... Sep 12 2012, 14:17       haker_fox QUOTE (AHTOXA @ Sep 12 2012, 22:17) Вообщ... Sep 13 2012, 01:18        AHTOXA А если взять kgp?
Или попробуйте скомпилировать пр... Sep 13 2012, 02:33         haker_fox QUOTE (AHTOXA @ Sep 13 2012, 10:33) А есл... Sep 13 2012, 04:20          AHTOXA Цитата(haker_fox @ Sep 13 2012, 10:20) Ва... Sep 13 2012, 05:03           haker_fox QUOTE (AHTOXA @ Sep 13 2012, 13:03) И как... Sep 13 2012, 05:08           DmitryM Цитата(AHTOXA @ Sep 13 2012, 09:03) ЗЫ. У... Sep 13 2012, 05:20        alx2 Цитата(haker_fox @ Sep 13 2012, 06:18) Во... Sep 13 2012, 04:21         haker_fox QUOTE (alx2 @ Sep 13 2012, 12:21) Насколь... Sep 13 2012, 05:01          haker_fox QUOTE (haker_fox @ Sep 13 2012, 13:01) Пр... Sep 13 2012, 05:21 Major Указатели на структуры - это практически когда воз... Sep 6 2012, 01:37 beaRTS Цитата(Major @ Sep 6 2012, 05:37) Указате... Sep 6 2012, 02:19 haker_fox QUOTE (Major @ Sep 6 2012, 09:37) Во встр... Sep 6 2012, 03:25  ReAl Цитата(haker_fox @ Sep 6 2012, 06:25) В м... Sep 6 2012, 07:35 Major Ну про пути я говорить не буду Есть мнения что C+... Sep 6 2012, 03:09 beaRTS Цитата(Major @ Sep 6 2012, 07:09) Есть мн... Sep 6 2012, 04:23  dxp QUOTE (beaRTS @ Sep 6 2012, 11:23) чую - ... Sep 6 2012, 06:59   beaRTS Цитата(dxp @ Sep 6 2012, 10:59) Да не, ни... Sep 6 2012, 07:16   sasamy Цитата(dxp @ Sep 6 2012, 10:59) Да не, ни... Sep 7 2012, 17:41    dxp QUOTE (sasamy @ Sep 8 2012, 00:41) Для чи... Sep 8 2012, 02:49     sasamy Цитата(dxp @ Sep 8 2012, 06:49) Сегодня С... Sep 9 2012, 22:30 Major ЦитатаВот так и получается, что "поняв",... Sep 6 2012, 05:10 halfdoom Совсем не давно, после длительного обсуждения с за... Sep 8 2012, 03:50 dxp А что это вот такое:
CODEC++-code requires signifi... Sep 8 2012, 05:54  _Pasha Цитата(dxp @ Sep 8 2012, 08:54) А что это... Sep 8 2012, 09:14   dxp QUOTE (_Pasha @ Sep 8 2012, 16:14) Они по... Sep 8 2012, 09:31  halfdoom Цитата(dxp @ Sep 8 2012, 08:54) Какой смы... Sep 8 2012, 09:45   dxp QUOTE (halfdoom @ Sep 8 2012, 16:45) Эти ... Sep 8 2012, 10:02 Major Еще раз вмешаюсь.
C++ это язык, возможности которо... Sep 8 2012, 06:10 mikeT Заинтересовало упоминание языка Ада в задачах, где... Sep 8 2012, 10:33 halfdoom Цитата(mikeT @ Sep 8 2012, 13:33) SafetyC... Sep 8 2012, 11:22 SSerge Цитата(mikeT @ Sep 8 2012, 17:33) и ниже ... Sep 8 2012, 13:28 andrewlekar Ada, насколько я знаю, очень хороший язык.
Ну а er... Sep 10 2012, 05:25 beaRTS наткнулся на статью интересную Паттерны проектиров... Oct 3 2012, 07:05 kolobok0 Цитата(beaRTS @ Oct 3 2012, 11:05) ...кто... Oct 5 2012, 09:56  beaRTS Цитата(kolobok0 @ Oct 5 2012, 13:56) И от... Oct 8 2012, 04:34   kolobok0 Цитата(beaRTS @ Oct 8 2012, 08:34) ...пат... Oct 8 2012, 09:37    beaRTS Цитата(kolobok0 @ Oct 8 2012, 13:37) я о ... Oct 8 2012, 09:54 globalist C++ замечательный язык. Только надо уметь им польз... Oct 9 2012, 21:26
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|