SlideShare a Scribd company logo
1 of 14
Тихонов К.В.
С++ для встраиваемых систем.
Встраиваемая система.
Отличия от пк.
Стоимость.
Габариты.
Энергопотребление.
Скорость реакции в критические моменты.
Точность. (время)
Языки, мифы
Ассемблер огромная производительность в
угоду скорости разработки.
С золотая середина.
С++ дает оверхед при использовании.
Языки, реальность.
Ассемблер делает ровно то, что ему скажут.
С золотая середина.
С++ дает оверхед при неправильном
использовании.
Считается что дает оверхед
● Объект занимает больше памяти чем
дискретное описание функций
● Виртуальные функции
● Динамическое выделение памяти это
медленно и сложно
● Прошивка на С++ занимает больше места по
сравнению с С и следовательно медленнее
Что дает реальный оверхед
● Exception.
● Виртуальные функции.
● Ненужные вычисления и алгоритмические
простои.
Виртуальные функции
● Что это
● Нужно ли избавляться?
● Если нужно как это сделать
Динамический полиморфизм.
class IOpenable
{
public:
virtual void open()=0;
}
class Door: public iOpenable
{…
virtual void open(){cout << "Door opened" << endl;}
…};
void OpenSomething(iOpenable& smth)
{
smth.open();
}
Статический полиморфизм
struct Door
{ void open(){cout << "Door opened" << endl;} };
struct Window
{ void open(){cout << "Window opened" << endl;} };
template <class T>
void OpenSomething(T obj)
{obj.open();}
int main()
{
Door door;
Window window;
OpenSomething(door);
OpenSomething(window);
}
Ненужные вычисления и
алгоритмические простои.
● Что это
● Нужно ли избавляться?
● Если нужно как это сделать
Решение на этапе компиляции
До C++11
template< int X, int Y>
struct ReturnSum
{
static const int result = X + Y ;
};
ReturnSum<2,2>::result;
С++11
constexpr uint8_t a=2,b=2;
constexpr uint8_t ReturnSum (void)
{ return(a+b); }
Спасибо
Вопросы

More Related Content

Similar to C++ для встраиваемых систем

Опыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыОпыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игры
Yuri Zhloba
 
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
IT Share
 
Машинное обучение в электронной коммерции — практика использования и подводны...
Машинное обучение в электронной коммерции — практика использования и подводны...Машинное обучение в электронной коммерции — практика использования и подводны...
Машинное обучение в электронной коммерции — практика использования и подводны...
Ontico
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
it-people
 
Top-10 популярных вопросов администраторам баз данных или почему я против св...
Top-10  популярных вопросов администраторам баз данных или почему я против св...Top-10  популярных вопросов администраторам баз данных или почему я против св...
Top-10 популярных вопросов администраторам баз данных или почему я против св...
Ilya Kosmodemiansky
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
Leonid Yuriev
 
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IEКак сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
Артём Кудзев
 
Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013
Serguei Gitinsky
 

Similar to C++ для встраиваемых систем (20)

Опыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыОпыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игры
 
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.Юрий Жлоба -  Опыт использования Erlang в разработке многопользовательской игры.
Юрий Жлоба - Опыт использования Erlang в разработке многопользовательской игры.
 
Машинное обучение в электронной коммерции — практика использования и подводны...
Машинное обучение в электронной коммерции — практика использования и подводны...Машинное обучение в электронной коммерции — практика использования и подводны...
Машинное обучение в электронной коммерции — практика использования и подводны...
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
 
Управление памятью в CPython
Управление памятью в CPythonУправление памятью в CPython
Управление памятью в CPython
 
2 bdw.key
2 bdw.key2 bdw.key
2 bdw.key
 
Character creation pipeline for Age of Magic (3D mobile)
Character creation pipeline for Age of Magic (3D mobile)Character creation pipeline for Age of Magic (3D mobile)
Character creation pipeline for Age of Magic (3D mobile)
 
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
Разработка портируемой инфраструктуры New Relic — контейнеры, CoreOS и прочие...
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
 
Top-10 популярных вопросов администраторам баз данных или почему я против св...
Top-10  популярных вопросов администраторам баз данных или почему я против св...Top-10  популярных вопросов администраторам баз данных или почему я против св...
Top-10 популярных вопросов администраторам баз данных или почему я против св...
 
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
Porting existing games to Apple Metal API. Case study: Divinity Original Sin ...
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
 
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IEКак сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
 
Демократизация машинного обучения
Демократизация машинного обученияДемократизация машинного обучения
Демократизация машинного обучения
 
Что и почему писать на Erlang
Что и почему писать на ErlangЧто и почему писать на Erlang
Что и почему писать на Erlang
 
Automated testing dojo - how to play game
Automated testing dojo - how to play gameAutomated testing dojo - how to play game
Automated testing dojo - how to play game
 
Производительность Unity3D: подводные камни / Алексей Чубарь (BIT.GAMES)
Производительность Unity3D: подводные камни / Алексей Чубарь (BIT.GAMES)Производительность Unity3D: подводные камни / Алексей Чубарь (BIT.GAMES)
Производительность Unity3D: подводные камни / Алексей Чубарь (BIT.GAMES)
 
Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013
 
SmartOS/Solaris app tuning tools/technologies on HL++ 2013
SmartOS/Solaris app tuning tools/technologies on HL++ 2013SmartOS/Solaris app tuning tools/technologies on HL++ 2013
SmartOS/Solaris app tuning tools/technologies on HL++ 2013
 
Байтоадресуемая энергонезависимая память и СУБД
Байтоадресуемая энергонезависимая память и СУБДБайтоадресуемая энергонезависимая память и СУБД
Байтоадресуемая энергонезависимая память и СУБД
 

C++ для встраиваемых систем