Тормоза после апгрейда на RS5 (1809)

Здесь можно сообщить о найденных багах в Far.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Тормоза после апгрейда на RS5 (1809)

Post by 2useven10 »

Latest post of the previous page:

awson wrote: Tue 09 Oct, 2018 15:03А есть у кого
Есть.
В связи с любовью к WSL, может всё-таки стоит обратить внимание, что в 1809 к WSL можно прикрутить Defender ?
Add: Но расчехлить procmon, конечно, было бы надёжнее.
Last edited by 2useven10 on Tue 09 Oct, 2018 15:55, edited 1 time in total.
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

Тормоза после апгрейда на RS5 (1809)

Post by awson »

2useven10 wrote: Tue 09 Oct, 2018 15:34 В связи с любовью к WSL, может всё-таки стоит обратить внимание, что в 1809 к WSL можно прикрутить Defender ?
Ммм. Не понял. У меня дефендер вообще выключен, а тормоза — при запуске вообще всего, не обязательно WSL.
И если дефендер при делах, то отчего он становится не- для legacy console?
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Тормоза после апгрейда на RS5 (1809)

Post by 2useven10 »

awson wrote: Tue 09 Oct, 2018 15:55 а тормоза — при запуске вообще всего
Ну тогда или ждать, пока тормоза обнаружатся у того кто сможет описать ситуацию более полно,
либо procmon в руки, или ждать следующий апдейт - вдруг счастье придёт само.
Yegor
Posts: 1326
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Тормоза после апгрейда на RS5 (1809)

Post by Yegor »

awson wrote: Tue 09 Oct, 2018 15:03 А есть у кого нет никаких пауз, и консоль не legacy?
По умолчанию так у всех :)
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

Тормоза после апгрейда на RS5 (1809)

Post by awson »

Тут еще интересно, что тормоза (при переходе на новую консоль) были всегда, просто они были относительно невелики и не вызывали мучений, я это понял только сейчас, попробовав старую консоль, где, как оказалось, тормоза остутствуют полностью.

И только при последнем апгрейде эти тормоза преодолели некий барьер активации, стали вопиющими и заставили обратить на себя внимание.

Если кому-нибудь не влом, попробуйте старую консоль и сравните.
Yegor
Posts: 1326
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Тормоза после апгрейда на RS5 (1809)

Post by Yegor »

У меня вообще никаких тормозов нет на ноутбуке 4-х летней давности.

Edit: CPU I7-4710HQ
Last edited by Yegor on Tue 09 Oct, 2018 22:10, edited 1 time in total.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

Тормоза после апгрейда на RS5 (1809)

Post by awson »

Вопрос к тем у кого нет тормозов: а Height в Screen Buffer Size у вас какая? У меня 9999. А у вас, я подозреваю, она маленькая — размера видимой области, поскольку вам скроллинг не нужен.

Тормоза возникают при вызове консольного API `ScrollConsoleScreenBuffer`, он отрабатывает почти секунду, когда пытается отмотать буфер на -1 по вертикали. Это происходит перед запуском чего угодно, видимо для скрытия самого нижнего ряда консоли (где подсказки для кнопок F1-F12) и после выполнения, когда этот ряд снова показывается.

Мне кажется, эта пара телодвижений (скрытие/показ нижнего ряда) тут абсолютно лишние.
Last edited by awson on Wed 10 Oct, 2018 10:39, edited 2 times in total.
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

Тормоза после апгрейда на RS5 (1809)

Post by awson »

А зачем в `execute_info` нужен `Echo`?

Если я его сразу ставлю в `false` то всё распрекрасно начинает летать и никаких других проблем я не вижу, ни на какие мои use cases его отсутствие не влияет.

Видимо, я не использую что-то для чего оно нужно? Но что?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Тормоза после апгрейда на RS5 (1809)

Post by DrKnS »

Фар использует буферизацию вывода - есть 2d матрица в памяти, куда всё пишется, периодически она флашится в физическую консоль.
Раньше, когда концепции большого буфера не было, и по каким-то причинам надо было прокрутить содержимое экрана вверх, достаточно было у этой матрицы дропнуть строку сверху и добавить снизу.
Сейчас, когда концепция большого буфера есть, это уже не катит: если строку сверху просто дропнуть - она уйдёт в никуда, а должна уйти вверх, за видимую границу окна (в этом как бы вся суть большого буфера).

ScrollConsoleScreenBuffer используется для сдвига невидимой части физического буфера вверх. После этого в образовавшийся промежуток фар пишет вытесняемую из видимой части линию.

Адекватных альтернатив ScrollConsoleScreenBuffer нет.

Если вас раздражает, что кто-то применил там Shlemiel the painter’s algorithm - в windows 10 есть встроенное средство для отправки багрепортов.
Еще есть official Windows Console issues & samples repo - возможно, там ответят быстрее.
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

Тормоза после апгрейда на RS5 (1809)

Post by awson »

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

Мне известен абсолютно вопиющий баг, которому уже годы, он появился во втором релизе десятки, но его не чинят, и, скорее всего, никогда не починят (разве что случайно), потому что он затрагивает не сотню миллионов пользователей, а, скажем, сотню тысяч или меньше.

Так что втыкание костыля имеет таки смысл.

Я сходу не совсем понимаю написанное (устал, разбираться буду как-нибудь потом), поэтому вопрос — а что должно сломаться-то?

Вот я сейчас (с выпиленным `ScrollConsoleScreenBuffer`) в фаре с буфером максимального размера скроллю консоль и построчно и постранично и вверх и вниз и в самое начало и в самый конец и ничего у меня никуда не уходит и не пропадает.

Правда, вот нашел: если в промежутке сделать фуллскрин (Alt-9) и вернуться, то одна строка исчезает.
Last edited by awson on Wed 10 Oct, 2018 16:34, edited 1 time in total.
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

Тормоза после апгрейда на RS5 (1809)

Post by awson »

Хотя действительно, раз они активны в процитированном гитхабовском репо, то, может быть, и пофиксят к следующему релизу.

По крайней мере, WSL-евская команда один баг, который я им на гитхабе отрепортил, пофиксила к следующему релизу.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Тормоза после апгрейда на RS5 (1809)

Post by DrKnS »

awson wrote: Wed 10 Oct, 2018 16:32поправят не раньше, чем к следующему релизу. А может быть и никогда.
Если не репортить, то точно никогда.
Так что втыкание костыля имеет таки смысл.
Так альтернатив нет. Единственный способ сдвинуть содержимое физического буфера вверх, не используя ScrollConsoleScreenBuffer - это встать в самый конец и напечатать \n. При этом содержимое внутреннего буфера надо флашить (иначе будет месиво), как следствие - не будет работать "тихий" запуск, фар будет моргать панелями при запуске графических приложений. Может еще что вылезет. И не факт, что оно тоже не тормозит, проверять надо.
а что должно сломаться-то?
0. Идем в папку, где много файлов - больше, чем высота экрана.
1. Исполняем cls.
2. Исполняем dir.
3. Копируем весь вывод себе в текстовый файл.
4. Исполняем lol.
5. Копируем весь вывод себе в другой текстовый файл.
6. Сравниваем текстовые файлы, ожидая, что различия будут только в самом конце ("'lol' is not recognized as an internal or external command...")
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

Тормоза после апгрейда на RS5 (1809)

Post by awson »

DrKnS wrote: Wed 10 Oct, 2018 17:19 6. Сравниваем текстовые файлы, ожидая, что различия будут только в самом конце ("'lol' is not recognized as an internal or external command...")
На самом деле должно быть еще одно различие на самом верху (ушла строка).
И так и происходит! Именно эти два различия только и есть. Больше никаких нет.

На самом деле, если включить часы в панели, то там появляется глюк, когда строка с временем перемещается, но даже и в этом случае строки не исчезают. То есть, я подозреваю, что это другой глюк.
Last edited by awson on Wed 10 Oct, 2018 17:34, edited 1 time in total.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Тормоза после апгрейда на RS5 (1809)

Post by DrKnS »

awson wrote: Wed 10 Oct, 2018 17:33На самом деле должно быть еще одно различие на самом верху (ушла строка).
Копировать, очевидно, надо всё (Alt+Space - Edit - Select All - Enter), а не в пределах окна, иначе зачем у вас там 9999 строк.
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

Тормоза после апгрейда на RS5 (1809)

Post by awson »

Разумеется, я скопировал всё.

"Сверху ушла строка" означает ушла первая из 9999 строк (в моем случае она была пустой, но могла бы быть и не пустой, если б вывод содержал больше 9999 строк).
Last edited by awson on Wed 10 Oct, 2018 17:51, edited 1 time in total.
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

Тормоза после апгрейда на RS5 (1809)

Post by awson »

Я же выше писал "скроллю консоль и построчно и постранично и вверх и вниз и в самое начало и в самый конец и ничего у меня никуда не уходит и не пропадает".

После вашего поста я просто решил перепроверить всё на предмет, что я упускаю какой-то тонкий эффект. Нет, не упускаю. Ничего не пропадает.
Post Reply

Return to “Глюки и баги”