Jump to content

    
Sign in to follow this  
esaulenka

OS::get_tick_count()

Recommended Posts

Других вариантов у меня нет. Можно, действительно, прошерстить код на предмет удаления ненужных критических секций.

Share this post


Link to post
Share on other sites

Тогда предлагаю оставить как есть. Системные тики мы уже соптимизировали (вернее, теперь есть способ их оптимизировать путём объявления дефайна в проекте), остальное, скажем так, оптимизации  особо не требует :)

Share this post


Link to post
Share on other sites
12 часов назад, AHTOXA сказал:

Тогда предлагаю оставить как есть. Системные тики мы уже соптимизировали (вернее, теперь есть способ их оптимизировать путём объявления дефайна в проекте), остальное, скажем так, оптимизации  особо не требует :)

Похоже, что так. Кстати, этот красивый шаблон, он, я понял, требует же поддержки со стороны более-менее современного компилятора. Т.е. если его добавлять, то надо тестировать на всём зоопарке компиляторов (особенно это тяжко, как ты уже сказал, для iar/avr, iar/stm8). Кроме того, это будет вынуждать пользователя переходить на более современный тул. Имхо, оно того не стоит.

12 часов назад, esaulenka сказал:

Ещё TEventFlag можно в паре мест пооптимизировать. Но там проще - флажок да/нет атомарный везде.

С одной стороны да, можно просто выкинуть из TEventFlag::clear/is_signaled критическую секцию - должно везде работать, но надо проверять, если включать это в релиз. С другой стороны, ну сколько этих clear, is_signaled в коде попадается и какой при этом оверхед? Какой там прирост будет? Да практически никакого. Ну, и смысл ворошить? :)

Share this post


Link to post
Share on other sites

Поудалял у себя TCritSect cs; в TBaseMessage is_non_empty/reset и в TEventFlag is_signaled/clear.

Проект (~ 160 kB) сократился на 128 байт. Не скажу, что принципиально, но всё-таки.

Прирост скорости не проверял.

Share this post


Link to post
Share on other sites
5 минут назад, IgorKossak сказал:

Поудалял у себя TCritSect cs; в TBaseMessage is_non_empty/reset и в TEventFlag is_signaled/clear.

Функциональность проекта не сломалась?

Какой МК? Компилятор?

Share this post


Link to post
Share on other sites
On 11/2/2018 at 1:30 PM, dxp said:

Функциональность проекта не сломалась?

Какой МК? Компилятор?

Ничего не сломалось, да и не могло. Cortex-M4 (STM32F417), GCC.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this