Сергей Борщ 170 November 1, 2018 Posted November 1, 2018 · Report post Других вариантов у меня нет. Можно, действительно, прошерстить код на предмет удаления ненужных критических секций. Quote Share this post Link to post Share on other sites More sharing options...
esaulenka 10 November 1, 2018 Posted November 1, 2018 · Report post Из потенциальных кандидатов нашёл только TMutex::is_locked(). Но настойчивого зуда её оптимизировать у меня нет. Quote Share this post Link to post Share on other sites More sharing options...
AHTOXA 22 November 1, 2018 Posted November 1, 2018 · Report post Тогда предлагаю оставить как есть. Системные тики мы уже соптимизировали (вернее, теперь есть способ их оптимизировать путём объявления дефайна в проекте), остальное, скажем так, оптимизации особо не требует :) Quote Share this post Link to post Share on other sites More sharing options...
esaulenka 10 November 1, 2018 Posted November 1, 2018 · Report post Ещё TEventFlag можно в паре мест пооптимизировать. Но там проще - флажок да/нет атомарный везде. Quote Share this post Link to post Share on other sites More sharing options...
dxp 115 November 2, 2018 Posted November 2, 2018 · Report post 12 часов назад, AHTOXA сказал: Тогда предлагаю оставить как есть. Системные тики мы уже соптимизировали (вернее, теперь есть способ их оптимизировать путём объявления дефайна в проекте), остальное, скажем так, оптимизации особо не требует :) Похоже, что так. Кстати, этот красивый шаблон, он, я понял, требует же поддержки со стороны более-менее современного компилятора. Т.е. если его добавлять, то надо тестировать на всём зоопарке компиляторов (особенно это тяжко, как ты уже сказал, для iar/avr, iar/stm8). Кроме того, это будет вынуждать пользователя переходить на более современный тул. Имхо, оно того не стоит. 12 часов назад, esaulenka сказал: Ещё TEventFlag можно в паре мест пооптимизировать. Но там проще - флажок да/нет атомарный везде. С одной стороны да, можно просто выкинуть из TEventFlag::clear/is_signaled критическую секцию - должно везде работать, но надо проверять, если включать это в релиз. С другой стороны, ну сколько этих clear, is_signaled в коде попадается и какой при этом оверхед? Какой там прирост будет? Да практически никакого. Ну, и смысл ворошить? :) Quote Share this post Link to post Share on other sites More sharing options...
IgorKossak 1 November 2, 2018 Posted November 2, 2018 · Report post Поудалял у себя TCritSect cs; в TBaseMessage is_non_empty/reset и в TEventFlag is_signaled/clear. Проект (~ 160 kB) сократился на 128 байт. Не скажу, что принципиально, но всё-таки. Прирост скорости не проверял. Quote Share this post Link to post Share on other sites More sharing options...
dxp 115 November 2, 2018 Posted November 2, 2018 · Report post 5 минут назад, IgorKossak сказал: Поудалял у себя TCritSect cs; в TBaseMessage is_non_empty/reset и в TEventFlag is_signaled/clear. Функциональность проекта не сломалась? Какой МК? Компилятор? Quote Share this post Link to post Share on other sites More sharing options...
IgorKossak 1 November 5, 2018 Posted November 5, 2018 · Report post On 11/2/2018 at 1:30 PM, dxp said: Функциональность проекта не сломалась? Какой МК? Компилятор? Ничего не сломалось, да и не могло. Cortex-M4 (STM32F417), GCC. Quote Share this post Link to post Share on other sites More sharing options...