Сергей Борщ 133 1 ноября, 2018 Опубликовано 1 ноября, 2018 · Жалоба Других вариантов у меня нет. Можно, действительно, прошерстить код на предмет удаления ненужных критических секций. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 1 ноября, 2018 Опубликовано 1 ноября, 2018 · Жалоба Из потенциальных кандидатов нашёл только TMutex::is_locked(). Но настойчивого зуда её оптимизировать у меня нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 15 1 ноября, 2018 Опубликовано 1 ноября, 2018 · Жалоба Тогда предлагаю оставить как есть. Системные тики мы уже соптимизировали (вернее, теперь есть способ их оптимизировать путём объявления дефайна в проекте), остальное, скажем так, оптимизации особо не требует :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 1 ноября, 2018 Опубликовано 1 ноября, 2018 · Жалоба Ещё TEventFlag можно в паре мест пооптимизировать. Но там проще - флажок да/нет атомарный везде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 56 2 ноября, 2018 Опубликовано 2 ноября, 2018 · Жалоба 12 часов назад, AHTOXA сказал: Тогда предлагаю оставить как есть. Системные тики мы уже соптимизировали (вернее, теперь есть способ их оптимизировать путём объявления дефайна в проекте), остальное, скажем так, оптимизации особо не требует :) Похоже, что так. Кстати, этот красивый шаблон, он, я понял, требует же поддержки со стороны более-менее современного компилятора. Т.е. если его добавлять, то надо тестировать на всём зоопарке компиляторов (особенно это тяжко, как ты уже сказал, для iar/avr, iar/stm8). Кроме того, это будет вынуждать пользователя переходить на более современный тул. Имхо, оно того не стоит. 12 часов назад, esaulenka сказал: Ещё TEventFlag можно в паре мест пооптимизировать. Но там проще - флажок да/нет атомарный везде. С одной стороны да, можно просто выкинуть из TEventFlag::clear/is_signaled критическую секцию - должно везде работать, но надо проверять, если включать это в релиз. С другой стороны, ну сколько этих clear, is_signaled в коде попадается и какой при этом оверхед? Какой там прирост будет? Да практически никакого. Ну, и смысл ворошить? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 2 ноября, 2018 Опубликовано 2 ноября, 2018 · Жалоба Поудалял у себя TCritSect cs; в TBaseMessage is_non_empty/reset и в TEventFlag is_signaled/clear. Проект (~ 160 kB) сократился на 128 байт. Не скажу, что принципиально, но всё-таки. Прирост скорости не проверял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 56 2 ноября, 2018 Опубликовано 2 ноября, 2018 · Жалоба 5 минут назад, IgorKossak сказал: Поудалял у себя TCritSect cs; в TBaseMessage is_non_empty/reset и в TEventFlag is_signaled/clear. Функциональность проекта не сломалась? Какой МК? Компилятор? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 5 ноября, 2018 Опубликовано 5 ноября, 2018 · Жалоба On 11/2/2018 at 1:30 PM, dxp said: Функциональность проекта не сломалась? Какой МК? Компилятор? Ничего не сломалось, да и не могло. Cortex-M4 (STM32F417), GCC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться