Быстрая псевдоконсоль для отладки высокопроизводительных приложений.
От: Andrew.W Worobow https://github.com/Worobow
Дата: 19.01.17 18:05
Оценка:
Не знаю относится ли данная тема к низкому уровню, но мне данная библиотека чаще всего была нужна именно для отладки критичных по времени низкоуровневых приложений.

Я привык пользоваться консолью, ну как-то так исторически сложилось, думаю что не только у меня. Но консоль дико медленная и приходилось извращаться чтобы выводить результаты на консоль и не тормозить приложение. Ну и в далеком-далеком году, я написал _для себя_ маленькую чрезвычайно простую библиотеку, которая чем-то напоминала ДОС-освский буфер экрана VGA. Библиотека сознательно написана наипростейшим образом, чтобы не тянула сложности перехода на новые компиляторы и платформы.

Сам код тут — https://github.com/Worobow/ScreenBufferW32

Доков ИМХА никаких не надо так как там есть пример, а сама библиотека очень простая и в примерах (их два) все понятно.

Пользуйтесь, если кому-нибудь пригодится буду рад.

По сути это просто панельное окно, открываемое из стандартного консольного приложения WINDOWs. То есть сохраняется стандартная консоль и есть возможность с минимальными накладными расходами что-то отображать на экране.
Не все кто уехал, предал Россию.
Re: Быстрая псевдоконсоль для отладки высокопроизводительных приложений.
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.01.17 18:24
Оценка:
Здравствуйте, Andrew.W Worobow, Вы писали:

AWW>мне данная библиотека чаще всего была нужна именно для отладки критичных по времени низкоуровневых приложений.


Она быстрее, чем OutputDebugString/DbgView?
Re[2]: Быстрая псевдоконсоль для отладки высокопроизводительных приложений.
От: Andrew.W Worobow https://github.com/Worobow
Дата: 19.01.17 18:39
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Она быстрее, чем OutputDebugString/DbgView?


Не измерял, но по скорости примерно как просто memcpy(buf,str,lenstr);

Фишка в том, что в этой библиотеке практически нет накладных расходов, но и сервиса тоже нет — есть только Open/Close и Puts. Причем puts без управляющих символов, то есть '\n' не работает, надо в ручную указывать номер строки и позицию на экране.
Не все кто уехал, предал Россию.
Re[2]: Быстрая псевдоконсоль для отладки высокопроизводительных приложений.
От: Andrew.W Worobow https://github.com/Worobow
Дата: 20.01.17 10:16
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Она быстрее, чем OutputDebugString/DbgView?


Ради интереса сравнил, OutputDebugString в примерно 7000 раз медленнее.

Вообще эта библиотека нужна, только чтобы в реальном времени наблюдать "как идет процесс", то есть принцип ее работы простой — ты пишешь на экран, а библиотека отображает текущее состояние только (примерно) тогда когда идет смена кадра экрана. Ну а чаще и не надо — ты ведь все равно ничего не увидишь.

Ну а для трассировки конечно же лучше использовать стандартные механизмы в виде TraceLog например.
Не все кто уехал, предал Россию.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.