Не знаю относится ли данная тема к низкому уровню, но мне данная библиотека чаще всего была нужна именно для отладки критичных по времени низкоуровневых приложений.
Я привык пользоваться консолью, ну как-то так исторически сложилось, думаю что не только у меня. Но консоль дико медленная и приходилось извращаться чтобы выводить результаты на консоль и не тормозить приложение. Ну и в далеком-далеком году, я написал _для себя_ маленькую чрезвычайно простую библиотеку, которая чем-то напоминала ДОС-освский буфер экрана VGA. Библиотека сознательно написана наипростейшим образом, чтобы не тянула сложности перехода на новые компиляторы и платформы.
Доков ИМХА никаких не надо так как там есть пример, а сама библиотека очень простая и в примерах (их два) все понятно.
Пользуйтесь, если кому-нибудь пригодится буду рад.
По сути это просто панельное окно, открываемое из стандартного консольного приложения WINDOWs. То есть сохраняется стандартная консоль и есть возможность с минимальными накладными расходами что-то отображать на экране.
Не все кто уехал, предал Россию.
Re: Быстрая псевдоконсоль для отладки высокопроизводительных приложений.
Здравствуйте, Andrew.W Worobow, Вы писали:
AWW>мне данная библиотека чаще всего была нужна именно для отладки критичных по времени низкоуровневых приложений.
Она быстрее, чем OutputDebugString/DbgView?
Re[2]: Быстрая псевдоконсоль для отладки высокопроизводительных приложений.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Она быстрее, чем OutputDebugString/DbgView?
Не измерял, но по скорости примерно как просто memcpy(buf,str,lenstr);
Фишка в том, что в этой библиотеке практически нет накладных расходов, но и сервиса тоже нет — есть только Open/Close и Puts. Причем puts без управляющих символов, то есть '\n' не работает, надо в ручную указывать номер строки и позицию на экране.
Не все кто уехал, предал Россию.
Re[2]: Быстрая псевдоконсоль для отладки высокопроизводительных приложений.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Она быстрее, чем OutputDebugString/DbgView?
Ради интереса сравнил, OutputDebugString в примерно 7000 раз медленнее.
Вообще эта библиотека нужна, только чтобы в реальном времени наблюдать "как идет процесс", то есть принцип ее работы простой — ты пишешь на экран, а библиотека отображает текущее состояние только (примерно) тогда когда идет смена кадра экрана. Ну а чаще и не надо — ты ведь все равно ничего не увидишь.
Ну а для трассировки конечно же лучше использовать стандартные механизмы в виде TraceLog например.