View Issue Details

IDProjectCategoryView StatusLast Update
0004080Far ManagerPanelpublic2025-08-15 19:56
Reporterfar.user Assigned ToDrKnS  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Platformx64OSWindowsOS Version11
Product Version3.0 
Fixed in Version3.0 
Summary0004080: Windows 11: медленная навигация с помощью стрелок если вторая панель скрыта
DescriptionВ Windows 11(Default Terminal Application = Windows Console Host) при настройках по умолчанию наблюдается проблема с производительностью(CPU) если осуществлять навигацию в оставшейся панели зажав клавишу "Вверх" или "Вниз".
Steps To Reproduce
  1. Свернуть одну из панелей(напр. левую Ctrl+F1)
  2. В оставшейся панели открыть фолдер в котором есть несколько десятков других файлов или фолдеров. Например, C:\Program Files\Far Manager или C:\Windows
  3. В открытой панели выбрать элемент в списке(файл или фолдер) и осуществлять навигацию зажав клавишу "Вверх" или "Вниз". Результат - навигация происходит медленно(иногда с зависанием) и если отпустить клавишу, то переключение выбранного элемента дальше происходит "по инерции" ещё 1-2 секунды
Additional InformationУсловия для воспроизведения проблемы:
  1. Операционная система Windows 11 и Default Terminal Application = Windows Console Host(это необходимое условие)
  2. Far Manager v3.0 build 6446 x64 (2025-03-01) или ночная сбока Far Manager v3.0 build 6525 x64 (2025-08-10)
  3. Файловая система NTFS
  4. Стандартный набор предустановлнных плагинов, но проблема воспроизводится даже если все плагины отключены.

Указанная проблема НЕ воспроизводится на одном и том же устройстве если:
  1. Операционная система Windows 10.
  2. Операционная система Windows 11 и Default Terminal Application = Windows Terminal

При запуске Far.exe в режиме отладки и профилирования(тэг builds/3.0.6446, запуск процесса из C:\Program Files\Far Manager) в Visual Studio было установлено, что нагрузка на CPU возникает из-за многократного вызова системной функции SetConsoleMode(kernelbase.dll) из console::SetMode при перерисовке экрана в процессе навигации. Результаты профайлинга прикреплены - скриншот и файл diagsession(Visual Studio).

Обнаружено временное решение - установить Interface.VirtualTerminalRendering=true (или через UI - Options > Colors > Panel > Normal Text> Enable VT, то это решает проблему. Возможно для Windows 11 эта опция должна быть включена по-умолчанию либо каким-то способом исправить ScreenBuf::Flush.
TagsNo tags attached.
Build6526

Activities

far.user

2025-08-10 15:03

reporter  

profiling.png (585,859 bytes)

far.user

2025-08-10 15:13

reporter   bugnote:0017633

profiling-2.png (678,663 bytes)

far.user

2025-08-15 19:31

reporter   bugnote:0017635

Last edited: 2025-08-15 19:55

В ветке master появилось исправление https://github.com/FarGroup/FarManager/compare/b2310229579f6d3d3f0806914fb182d67d2948de...b6992615b6f5df16260dae16fc1382962193b77b , но оно не согласовано с отображением параметра VirtualTerminalRendering через far:config. Полагаю, что требуется аналогичное исправление для https://github.com/FarGroup/FarManager/blob/c63ee3dcbf2ce24fa09c6183aeeacda20f30d812/far/config.cpp#L1920 либо значение этого свойства по умолчанию должно устнавливаться только в InitConfigsData() и затем читаться в SetFarConsoleMode()

DrKnS

2025-08-15 19:56

administrator   bugnote:0017636

ENABLE_VIRTUAL_TERMINAL_PROCESSING != VirtualTerminalRendering

Issue History

Date Modified Username Field Change
2025-08-10 15:03 far.user New Issue
2025-08-10 15:03 far.user File Added: Report20250810-slow.diagsession
2025-08-10 15:03 far.user File Added: profiling.png
2025-08-10 15:13 far.user Note Added: 0017633
2025-08-10 15:13 far.user File Added: profiling-2.png
2025-08-15 19:31 far.user Note Added: 0017635
2025-08-15 19:34 far.user Note Edited: 0017635
2025-08-15 19:38 far.user Note Edited: 0017635
2025-08-15 19:55 far.user Note Edited: 0017635
2025-08-15 19:56 DrKnS Assigned To => DrKnS
2025-08-15 19:56 DrKnS Status new => closed
2025-08-15 19:56 DrKnS Resolution open => fixed
2025-08-15 19:56 DrKnS Fixed in Version => 3.0
2025-08-15 19:56 DrKnS Build => 6526
2025-08-15 19:56 DrKnS Note Added: 0017636