Re[7]: C# почему Console.WriteLine медленный?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 24.07.23 15:07
Оценка:
Здравствуйте, vsb, Вы писали:

S>>>> Наверное рендеринг шрифтов, несколько более долгая операция чем просто посылка байтов в буффер

МР>>>Вообще, как-то несколько лет назад всплывало обсуждение, что команда Windows признала, что их реализация консоли очень медленная (и кстати, я после этого начал замечать что если программа выводит очень много в консоль, то стоит свернуть окно консоли и скорость работы может возрасти кратно!)
S>> Ну это понятно. Если окно не видно, то нафиг его и рендерить. Там же не только вывод строки, но и смещение экрана.
S>> Тут можно посмотреть вывод не одного сообщения, а буфер например 10 кб и по времени если в буфере есть данные, но какое то время не было сообщений

vsb>Просто надо делать адекватную архитектуру.


vsb>Буфер это одно. К отрисовке он вообще не должен никакого отношения иметь. Программа просто пишет в кольцевой буфер что хочет. Скорость ограничена только скоростью оперативной памяти.


vsb>Отрисовка консоли это другое. 60 раз в секунду (или какая там частота экрана у юзера) — брать видимую часть из буфера и отрисовывать её.


vsb>В итоге накладных расходов будет около нуля, а юзер получит идеальную скорость отрисовки.

Ну самому то несложно сделать буферизацию. Но консоль то нужна, для того что бы оперативно читать, если скорость отрисовки выше скорости чтения, то зачем вообще выводить на консоль?
и солнце б утром не вставало, когда бы не было меня
Re[8]: C# почему Console.WriteLine медленный?
От: vsb Казахстан  
Дата: 24.07.23 15:14
Оценка:
Здравствуйте, Serginio1, Вы писали:

vsb>>В итоге накладных расходов будет около нуля, а юзер получит идеальную скорость отрисовки.

S> Ну самому то несложно сделать буферизацию.

Я про то, как она должна быть сделана в системе, чтобы не нужно было сворачивать cmd.exe для ускорения работы программы (про этот эффект я сам в курсе).

S> Но консоль то нужна, для того что бы оперативно читать, если скорость отрисовки выше скорости чтения, то зачем вообще выводить на консоль?


Хотят и выводят, законом не запрещено. 99.(9)% логов никто никогда не прочитает. Но их всё равно выводят, хранят и индексируют.
Re[9]: C# почему Console.WriteLine медленный?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 24.07.23 15:28
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Хотят и выводят, законом не запрещено. 99.(9)% логов никто никогда не прочитает. Но их всё равно выводят, хранят и индексируют.

Выводят, но не на экран! А только для дальнейшего поиска ошибок, предупреждений итд.
Выводить на экран миллион сообщений, и жаловаться, что медленно это ...
То есть использовать консоль для отладки в современных средствах разработки это какой то атавизм на заре программирования. Помню в том, же турбо-паскале уже консолями не пользовались
и солнце б утром не вставало, когда бы не было меня
Отредактировано 24.07.2023 15:31 Serginio1 . Предыдущая версия .
Re[10]: C# почему Console.WriteLine медленный?
От: vsb Казахстан  
Дата: 24.07.23 15:37
Оценка:
Здравствуйте, Serginio1, Вы писали:

vsb>>Хотят и выводят, законом не запрещено. 99.(9)% логов никто никогда не прочитает. Но их всё равно выводят, хранят и индексируют.

S> Выводят, но не на экран! А только для дальнейшего поиска ошибок, предупреждений итд.

В современных приложениях логи выводятся в stdout. При правильном деплое — да, конечно это всё перенаправляется в файлы и тд. Но если ты в процессе разработки просто запускаешь приложение, то логи выводятся на экран.

S> Выводить на экран миллион сообщений, и жаловаться, что медленно это ...


Это норма. Человек рассчитывает на оптимальную реализацию фундаментальных API.

S> То есть использовать консоль для отладки в современных средствах разработки это какой то атавизм на заре программирования. Помню в том, же турбо-паскале уже консолями не пользовались


Нет, это не атавизм, это норма.
Re[11]: C# почему Console.WriteLine медленный?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 24.07.23 18:12
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>>>Хотят и выводят, законом не запрещено. 99.(9)% логов никто никогда не прочитает. Но их всё равно выводят, хранят и индексируют.

S>> Выводят, но не на экран! А только для дальнейшего поиска ошибок, предупреждений итд.

vsb>В современных приложениях логи выводятся в stdout. При правильном деплое — да, конечно это всё перенаправляется в файлы и тд. Но если ты в процессе разработки просто запускаешь приложение, то логи выводятся на экран.

Ну да, что бы посмотреть результат! Который занимает максимум 10 строчек.

S>> Выводить на экран миллион сообщений, и жаловаться, что медленно это ...


vsb>Это норма. Человек рассчитывает на оптимальную реализацию фундаментальных API.

Это не норма. Это идиотизм! Нахрена миллион строк?

S>> То есть использовать консоль для отладки в современных средствах разработки это какой то атавизм на заре программирования. Помню в том, же турбо-паскале уже консолями не пользовались


vsb>Нет, это не атавизм, это норма.

Для кого? Я не пользуюсь для отладки консолью с миллионами строк!
Не нужно. Это идиотизм!
Опять, же даже для вывода в лог выводят не все сообщения, а по филтрам. И фильтров таких большое количество (информация, предупреждения, ошибки итд)
и солнце б утром не вставало, когда бы не было меня
Отредактировано 24.07.2023 18:27 Serginio1 . Предыдущая версия .
Re[11]: C# почему Console.WriteLine медленный?
От: CreatorCray  
Дата: 24.07.23 18:45
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>Это норма. Человек рассчитывает на оптимальную реализацию фундаментальных API.

Фундаментальный API как раз работает как надо — каждый вывод гарантирует что ты эту строку увидишь даже если твоя аппа упадёт мордой об стол сразу после.
Это с кэшированными постоянная проблема с необходимостью вручную делать flush чтоб добиться таких же гарантий.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[12]: C# почему Console.WriteLine медленный?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 24.07.23 19:50
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, vsb, Вы писали:


vsb>>Это норма. Человек рассчитывает на оптимальную реализацию фундаментальных API.

CC>Фундаментальный API как раз работает как надо — каждый вывод гарантирует что ты эту строку увидишь даже если твоя аппа упадёт мордой об стол сразу после.
CC>Это с кэшированными постоянная проблема с необходимостью вручную делать flush чтоб добиться таких же гарантий.
Ну как я раньше писал, нужно надеяться не на кэш, а на задержку между сообщениями.
Но консоль то как раз и интересна тем, что за выводом экрана можно визуально следить.
и солнце б утром не вставало, когда бы не было меня
Re[7]: C# почему Console.WriteLine медленный?
От: pagid_ Россия  
Дата: 24.07.23 20:48
Оценка: +1 :)
Здравствуйте, Разраб, Вы писали:

Р>консоль в 20(!) раз медленнее стрима даже в пайплайне

Ну просто считай что вне unix/linux мира передавать такие объемы информации через перенаправление вывода моветон. И никто и никогда не парился по поводу скорости. Да и мало ли на каких отдельных операциях Net медленнее Си/С++ в десяток раз, не новость это.
Отредактировано 25.07.2023 6:42 pagid_ . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.