Курощение nomachine клиента - за шаг до ... ((1С, wine@Etersoft, freenx, NXClient for Windows))

Модераторы: dimbor, Модераторы разделов

dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Удалось уговорить виндового клиента больше так не делать. Новые файлы положил в шляпку ветки. Сообщите pls, состоялся ли закат солнца вручную у вас.

Дело было вот в чем: При открытии элемента диалога (меню,календарь, калкулятор...) в 1с сначала сервер (X-клиент) присылает регион, клиент (X-сервер) его отрисовывает. А потом клиент создает новое виндовое окно со своей обработкой сообщений и прочими причиндалами, запихивает туда опять этот регион и отрисовывает его еще раз. Только сейчас догнал, зачем так было придумано. Ускорение отрисовки заключалось в запрете клиенту создавать эти окна. Т.е. обработка манипуляций с элементами идет на сервере, как в режиме virtual desktop. В случае нормальных 1с-овских деток (WS_CLIPCHILDREN | WS_CLIPSIBLINGS) такое прокатывает. Но как только детка высовывается за родителя, она не обрабатывается за его пределами (а если выходит за пределы области, занятой окнами сессии, то даже и не рисуется).

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

P.S. Эт я не умничаю, загружая всех излишними подробностям. Эт я обнаружил давным-давно, что, перечитывая ветку, быстрее вспоминаю весь тернистый путь исследований. Типа блог - нахаляву :rolleyes:

Исходники здесь (устаревшие).
Вложения
nxwin_3.2.0_4_src_chg_r7.rar
(31.45 КБ) 34 скачивания
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Я открываю на любой странице и не могу - читаю до конца! (С)
Хоть написано было когда-то про уголовный кодекс, но к багзиле etersoft-а тоже относится. Читал ее тут внимательно. Сравнивал, так сказать. Да - больше, но это совсем не обидно :) Кое-что коррелирует:
1) 969: Медленная прорисовка меню. В NX-клиенте под вин побеждена частично. Была - полностью, но см. мое предыдущее сообщение. Может разработчиков etersoft заинтересует метод?
2) 1011: В Wine неправильно реализовано сворачивание дочерних MDI окон. А в клиенте оно уже давно правильное. Только при исправлении, как раз и было использовано то, что клиент работает не под Win 3.1, а под немножко поздней системой. Но, может быть, критерии отлова MDI окон будут интересны вышеупомянутым разработчикам?
3) 2038: Некорректная работа с окнами выбора перечислений Да то-же самое. У нас под nx уже все хорошо.
4) Приснопамятная #495. Тут хвастаться нечем - wine дохнет от удивления, когда какой-то там занюханный x-сервер начинает ей указывать, в каком порядке окна переключать. Была бы она по-толерантней, то - да, а таки - нет.
Спасибо сказали:
bsavelev
Сообщения: 231
ОС: Debian

Re: Курощение nomachine клиента - за шаг до ...

Сообщение bsavelev »

на сколько я понимаю, все правки по этим багам относятся к win-клиенту для NX.
Спасибо сказали:
mike68
Сообщения: 15

Re: Курощение nomachine клиента - за шаг до ...

Сообщение mike68 »

Мне кажется, имеет смысл допилить не-rootless режим, а именно New virtual desktop. Там заметных багов меньше. Особо радует предсказуемое поведение мыши при выходе за пределы окна, никаких залипаний. Из минусов - в верхней части десктопа остается черная полоса вместо заголовка windows-окна; некоторые диалоговые окна не имеют рамок; нижняя граница окна слегка обрезана, хотя в параметрах запуска выставлено Avialable area. Ну, а насчет возможности сделать Suspend запущенной сессии - я еще не определился, хорошо это или плохо. В win-терминале это присутствовало, но не напрягало.

Из странностей. Если в стартовом скрипте для 1С xterm с параметрами winkeys -option "grp:ctrl_toggle" - не переключается в русский, если winkeys -option "grp:lctrl_toggle" (явно задаем левые клавиши) - переключает, но перестает работать комбинация "Shift/Ctrl + Ins". Придется читать ман по икстерму.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

bsavelev писал(а):
09.09.2008 09:05
на сколько я понимаю, все правки по этим багам относятся к win-клиенту для NX.

Так точно. Да еще и к его rootless == floating window режиму, когда wm - часть этого клиента. Это сложно назвать правками. Это - англезы пишут "avoid". Всего лишь используется то, что окно windows приложения через тернии посредников (wine, linux,nx) попадает все-таки в среду, для которой было создано.
mike68 писал(а):
09.09.2008 09:38
Мне кажется, имеет смысл допилить не-rootless режим, а именно New virtual desktop.

Так это на стороне nx-сервера x-сервер надо мучить, а он линуховый, да еще и xfree86, да еще и не самый новый. А потом все упрется в вайн и его вышеописанные баги.
mike68 писал(а):
09.09.2008 09:38
Там заметных багов меньше.

А чисто конкретно, какие еще баги покажете мне в rootless, в натуре?
mike68 писал(а):
09.09.2008 09:38
Особо радует предсказуемое поведение мыши при выходе за пределы окна, никаких залипаний.

По сравнению с тем, что было в rootless раньше, это уже не баг, а - фича :) Но, тем не менее, посмотрю, как там можно исхитриться, чтобы это убрать.
Спасибо сказали:
mike68
Сообщения: 15

Re: Курощение nomachine клиента - за шаг до ...

Сообщение mike68 »

А чисто конкретно, какие еще баги покажете мне в rootless, в натуре?

Если открыть два окна под одной сессией, то иногда при закрытии одного из окон закрывается и второе. Сессия при этом продолжает висеть и никак не поднимается, только nxserver --terminate. Закономерность не обнаружена. Но я уже понял, что это не есть проблема rootless режима. Пока эта возможность не станет более надежной, ей лучше и не пользоваться, имхо. Своих я принуждаю пользоваться способом, который описал выше. А иначе не обнаруженные вовремя висяки не дадут ночью отработать архиватору в cron.
Касаемо залипания мыши. Часто курсор перестает отрисовываться за пределами nx-окна. Вот это действительно напрягает. Бухгалтера отказываются работать в терминальном режиме и работают, пусть и в медленном, но привычном сетевом. Таки у них много всякого открыто, помимо 1с, а кликнуть в панели задач нечем.
В панели задач иконка 1С отображается иногда нормально, иногда блекло, а порой просто несколькими пятнами. Тоже без закономерности.
Поражает настырность dimbor. Другой бы уже плюнул
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

mike68 писал(а):
11.09.2008 11:49
Если открыть два окна под одной сессией, то иногда при закрытии одного из окон закрывается и второе. Сессия при этом продолжает висеть и никак не поднимается, только nxserver --terminate. Закономерность не обнаружена. Но я уже понял, что это не есть проблема rootless режима. Пока эта возможность не станет более надежной, ей лучше и не пользоваться, имхо. Своих я принуждаю пользоваться способом, который описал выше. А иначе не обнаруженные вовремя висяки не дадут ночью отработать архиватору в cron.

Да, все так и есть. Описано выше. Ни клиент, ни сервер в принципе не могут изменить ситуацию, как их не уговаривай. Дело в вайне.
mike68 писал(а):
11.09.2008 11:49
Касаемо залипания мыши. Часто курсор перестает отрисовываться за пределами nx-окна. Вот это действительно напрягает.

Вот я узнал и про залипание... У меня ни разу не было. Максимум - два курсора. Попробуйте отключить в XP темы, курсоры динозавриками... etc и привести внешний вид к классическому (Свойства:Экран-Оформление).
На всех моих машинах рюшечки отключены. Из-за чего еще такое может случиться, не представляю.
mike68 писал(а):
11.09.2008 11:49
В панели задач иконка 1С отображается иногда нормально, иногда блекло, а порой просто несколькими пятнами. Тоже без закономерности.

По большому - да и Гейтс бы с ней! Наши бухгалтера при работе смотрят не на иконки, что характерно. Третьестепенно.
mike68 писал(а):
11.09.2008 11:49
Поражает настырность dimbor. Другой бы уже плюнул

Это не настырность. Настырность - это, когда начальство регулярно хочет "того же, чего хотел друг моего детства Коля Остенбакен от подруги моего же детства польской красавицы Инги Зайонц".(С)
Имеет место забота о конечном пользователе и доводка, соответственно. Бухи - они же как дети родные. :)
Спасибо сказали:
mike68
Сообщения: 15

Re: Курощение nomachine клиента - за шаг до ...

Сообщение mike68 »

Вот я узнал и про залипание...


Видимо, я так и не смог внятно объяснить суть проблемы.
В рутлес режиме, когда указатель мыши вылезает за пределы nx-окна, замороженный трупик мышки продолжает красоваться в этом самом окне, а его живой клон бегает, как положено. Труп образуется всегда, а вот вместо клона за пределы окна иногда выходит призрак мыши. Ну, или клон просто делается невидимым. Если при этом опустить эту невидимую мышь вниз экрана, то видно, как продавливаются кнопки в панели задач. Т.е мышь жива, нажатие на кнопки отрабатывается (в непредсказуемом месте), но курсора не видно.

Возможно, дело действительно в таймингах. Попробовал запустить десктоп режим на ОООчень загруженной машине - курсор мыши в пределах nx начинает раздваиваться. Один (видать - виндовый) движется нормально, другой его рывками догоняет.

Попробуйте отключить в XP темы


Машинки не сильно мощные, поэтому весь рюш и хлам отключен изначально.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

mike68 писал(а):
12.09.2008 10:01
Видимо, я так и не смог внятно объяснить суть проблемы.

Да все понятно... Терминологическая поправка: В окне nx живет как раз "труп клона", а вне - бегает и иногда дохнет живой оригинал курсора.
А ближе к делу получается следующее. Да, действительно возможна описанная Вами ситуация, особенно на медленных машинах. Сам не видел, но по совокупности косвенных, так сказать. Все дело в одном из атрибутов мелкого и мягкого культа - функции WinApi32 TrackMouseEvents, с помощью которой клиент отлавливал выполз мыши за пределы окна rootless (в virtual desktop все намного проще и надежнее). Пол-инета забито жалобами программеров о том, что она срабатывает через раз. Поэтому мышиный код под rootless пришлось переписать. Передрал один из подходящих способов. Должно работать.
Самый главный крысиный таймер (куда же без него) пришлось закрутить не по-детски. Интересуют отзывы по сравнению быстродействия, трафика .... Ну и конечно, убралась ли бага? mike68, сообщите, если не в лом.
Upd 15.09.08
Сборка - в шапке темы.
Исходники здесь (устарели).
Вложения
nxwin_3.2.0_4_src_chg_r8.rar
(31.33 КБ) 36 скачиваний
Спасибо сказали:
mike68
Сообщения: 15

Re: Курощение nomachine клиента - за шаг до ...

Сообщение mike68 »

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

А потому по сути.

Последний релиз от dimbor (№8), проблему с залипанием мыши решил на 90%. Т.е. направление раскопок было выбрано верно. Мышь иногда залипает, но через очень короткий промежуток времени труп всеже ИСЧЕЗАЕТ. Оставшиеся 10% бага - это если мышь дохнет на границе окна, когда курсор принимает вид стрелок для перетаскивания рамок. Тогда стирания не происходит.
Касаемо производительности - никаких видимых перемен в худшую сторону не произошло. Пользую режим ADSL.

Спасибо за помощь, с нынешним вариантом клиента бухов (галтеров) убедить гораздо проще.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Ну я прям в смущении. Намедни попрошу у Etersoft-а медаль :)
mike68 писал(а):
15.09.2008 09:42
Оставшиеся 10% бага - это если мышь дохнет на границе окна, когда курсор принимает вид стрелок для перетаскивания рамок. Тогда стирания не происходит.

Скачайте еще раз r8 из шапки. Попытался, чтобы и "граница была на замке". Но полного удовлетворения не обещаю, т.к. сам баги не вижу - все машины мощные, хлама под XP нет,увы. После освоенных регулярных закатов солнца и удаленного администрирования пользователей ПК по телефону, бокс по переписке - это новый этап моего самосовершенствования. :)

На тему свободного времени: Если у админа нет свободного времени, то это плохой админ. А если у админа система отлажена, то работы у него минимум, в идеале - его даже не знают в лицо сотрудники организации. В свое время были большие войны с начальствами за свободный график моей работы. Я победил. Но, с другой стороны, если у админа появляется свободное время, то он стремится стать хорошим админом и почти все его тратит на развитие своих систем. Чтобы у него и дальше было свободное время.
Короче, как сказал один критянин: "все критяне - лжецы" :)
Спасибо сказали:
mike68
Сообщения: 15

Re: Курощение nomachine клиента - за шаг до ...

Сообщение mike68 »

С радостью сообщаю печальную весть: с релизом 8 от 15.09 мышиная бага с миром почила.

Следующий этап для нашей группы разработчиков :)
Наипростейший способ проверки скорости работы интерфейса - выбрать самый длинный справочник, установиться в его начало и поиском найти последнюю строку.
Итак. Xming - 40 сек, virtual desktop режим - 44 сек, KDE - режим (по сути тот же десктоп) - 46 сек, rootles режим - 57 сек, сетевой доступ из win - 15 сек. Нагрузка на отрисовку - всего-навсего счетчик строк внизу. Чем рутлес на четверть хуже десктопа?
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

mike68 писал(а):
15.09.2008 19:30
Наипростейший способ проверки скорости работы интерфейса - выбрать самый длинный справочник, установиться в его начало и поиском найти последнюю строку.
Итак. Xming - 40 сек, virtual desktop режим - 44 сек, KDE - режим (по сути тот же десктоп) - 46 сек, rootles режим - 57 сек, сетевой доступ из win - 15 сек. Нагрузка на отрисовку - всего-навсего счетчик строк внизу. Чем рутлес на четверть хуже десктопа?

ХЗ. Мельком глянул разницу в способах отрисовки окна под rootless и под virtual desktop в вин клиенте. Все ясно, что ни хрена не ясно. Примерно как с прошлой багой. Спрашиваю, как разработчик разработчика - Вы тесты писать умеете? :) А то мы тут будем долго выяснять, у кого самый длинный справочник.

Уже поднимался вопрос о скорости отрисовки. Djelf в #105 (когда я его совсем достал) выложил тест, который все это время давил мне на эго. Так докладываю, с последними версиями клиента он перестал воспроизводиться. Т.е. скачет от 0.12 до 0.13, в каких режимах не меряю, какие галки в клиенте не тыкаю, и какое кол-во не ставлю. Разброс абсолютно от балды от серии к серии. Наверное теперь измеряется еще и скорость открытия внешнего отчета с диска. Пока не будет нормального, не зависящего ни от чего кроме графич. подсистемы, теста, туда и лезть не стоит. Как изобразить подобное на 1с, не задумывался. Пока реальных жалоб у пользователей нет. Может быть, они еще не отошли от офигения со скорости формирования ОСВ по сравнению с сетевым вариантом.

И еще. Трудно во вселенной без братьев по разуму. Жутко интересно, есть ли тут еще такие клоуны, которые под Цигвин компилят? Вроде уже спрашивал, но если нету, тогда зачем исходники скачивают? Врядли они будут их показывать своим внукам, приговаривая: "Это правил великий и ужасный!" :)
Спасибо сказали:
mike68
Сообщения: 15

Re: Курощение nomachine клиента - за шаг до ...

Сообщение mike68 »

Даю махонький, но очень показательный тест. Нагрузка только на графическую часть.
Делается два замера скорости вывода строки состояния. В первом случае выводится одно и то же число, во втором случае рисуется счетчик итераций.
У меня разница рутлес и десктопа почти в два раза. Ну, про нативный винклиент молчу - не тот случай.
Вложения
StringSpeedTest.rar
(7.44 КБ) 50 скачиваний
Спасибо сказали:
UTiM
Сообщения: 180
ОС: OpenSuse

Re: Курощение nomachine клиента - за шаг до ...

Сообщение UTiM »

dimbor писал(а):
17.09.2008 01:32
И еще. Трудно во вселенной без братьев по разуму. Жутко интересно, есть ли тут еще такие клоуны, которые под Цигвин компилят? Вроде уже спрашивал, но если нету, тогда зачем исходники скачивают? Врядли они будут их показывать своим внукам, приговаривая: "Это правил великий и ужасный!" :)

В том-то и дело, что мало таких "фокусников". Что-бы как-то распространить заразу по вселенной, хорошобы выложить маленкий фак "Как самому скомпилить NX клиент под Cygwin... (для чайников и не очень)" !?

Уменя резко падает настроение от мысли, сколько ночей надо непоспать, что-б самому в этом разобраться.... жена уволит нафиг.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: Курощение nomachine клиента - за шаг до ...

Сообщение Djelf »

dimbor писал(а):
17.09.2008 01:32
Спрашиваю, как разработчик разработчика - Вы тесты писать умеете? :)

Прошлый тест почти случайно заработал :blush: Я на самом деле хотел чтоб окна последовательно открывались-закрывались, а они как-то кучей полезли, но работало... Сейчас действительно скорость по тесту в Desktop/Rootless сравнялась. Поздравляю еще с одной победой над NX-клиентом! А разброс в скорости 10-20% для тестов в 1С вообще нормальное явление, для точности нужно под 1000 итераций, а то и более, но 1С и 1000 открытых окон не уживутся.
Новый тест скорости, с неплохой воспроизводимостью и значительно большими разницами в производительности (просто бежим по ТаблицеЗначений на форме сверху вниз) на 100000 строк: 6-7с WinXP локально, 65-70с NX-Desktop, 219c NX-Rootless в режиме ADSL, в режиме Модем 55-60с NX-Desktop, 150-160с NX-Rootless.
Вложения
speedtest3.zip
(11.74 КБ) 50 скачиваний
Спасибо сказали:
Аватара пользователя
Xenar
Сообщения: 30
ОС: Ubuntu 8.04

Re: Курощение nomachine клиента - за шаг до ...

Сообщение Xenar »

Всем доброго времени суток.
Большое спасибо за полезное дело.
В моем случае все хорошо работает но есть небольшой баг (или фича) мешающая радоваться жизни :). При удаленном использовании через инет у клиента при работающему Compiz происходит затемнение окна 1С. То есть, насколько я понимаю, Compiz считает что терминальное окно NX являться зависшим и затемняет его. Конечно без компиза все работает нормально но.........
На сервере ubuntu 7.10 server, freenx-server 0.7.2.1
у клиента - Ubuntu 8.04 + родной клиент от nomachine 3.2.0.-14.

Буду признателен за толковый совет
Мир спасет красота ..... и массовые расстрелы
Спасибо сказали:
bsavelev
Сообщения: 231
ОС: Debian

Re: Курощение nomachine клиента - за шаг до ...

Сообщение bsavelev »

Жутко интересно, есть ли тут еще такие клоуны, которые под Цигвин компилят? Вроде уже спрашивал, но если нету, тогда зачем исходники скачивают? Врядли они будут их показывать своим внукам, приговаривая: "Это правил великий и ужасный!"

я, например-)

по делу:
товарищи разработчики-пилители nx! каждый желающий может получить доступ к git.etersoft.ru для удобства разработки и пр..
получить можно, написав мне ЛС и приложить публичный ssh ключ.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

А теперь, когда все уснули, наконец могу отписать в любимую тему. Кстати, у меня тоже есть жена, и она с какого-то меня уже ревнует к данной ветке. Это покруче, чем абстрактное увольнение из-за ночей вне супружеского ложа. Любовницу что-ли завести для прикрытия? :)

mike68, Djelf! Благодарю за новые тесты. Конкретные шаги будут предприняты, с непременным освещением в периодической печати (тут).

2Xenar: К сожалению, лично я по Вашей проблеме ничего сказать не могу. Линуксового клиента пока не щупал, даже в глаза не видел. Возможно, остальные участники этого междусобойчика более в теме.

2bsavelev: Мне уже давно стыдно. Меня-то гораздо раньше приглашали. А я все торможу по причинам:
а) Все же свободного времени гораздо меньше, чем хотелось бы, как я тут пальцы не расставлял про сисадминство. Вот и сейчас хожу по квартире, спотыкаясь о будущие сервера для нового филиала... б) Линуксятник я диковатый, наверное еще поэтому и взялся за виндовый клиент. Изучение документации по гиту пугает больше, чем даже грядущая распиловка qtnx. Но я в ближайшее время присоединюсь, чес слово. ц) Форум все же рулит. Если б мне здесь вовремя не подсказали про клипборду, ICCCM и пр., обломался бы и клянчил уже деньги на цитрус.

Хорошо, что появился интерес к процессу сборки вин-клиента. Дабы не разрушать семьи, следующим постом отпишу про то, как оно было. Возможно, что-то забуду за давностью подготовки, по ходу дополним.
Upd
Все тянется дольше и стоит дороже (С)
Сел писать, решил проверить. Обнаружил, что цигвин здорово обновился с тех пор, как я его ставил. Т.е. систему, идентичную моей текущей (и той, на которой компилили оригинальный NXWin.exe со всеми библиотеками), уже не получить простой установкой. Начал все заново, протоколирую. Отпишу вскорости, зато будет настоящий мануал.
Спасибо сказали:
killovolt
Сообщения: 29
Контактная информация:

Re: Курощение nomachine клиента - за шаг до ...

Сообщение killovolt »

У Etersofta есть собственные сборки freenx сервера для разных дистрибутивов, их можно взять тут. Кто-либо пользуется этими сборками? Чем они принципиально отличаются от оригинального freenx сервера?
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Как самому скомпилить NX клиент под Cygwin... (для чайников и не очень) !?

Copyleft by dimbor <linuxforum.ru>
Как говаривал маркиз Де Сад гражданину Захер-Мазоху: "Терпение, терпение, мой друг!"


Конспект раскрывает страшную тайну, обладание которой до сего момента отличало меня от прочих скитальцев linuxforum-а. Итак, пособие для начинающих извращенцев.

Подготовка:

  • Тянем инсталяшку цигвина http://www.cygwin.com/setup.exe
  • Установка обычным образом, у меня - в D:\cygwin (далее для всех "псевдолинуховых" путей она будет считаться за корень)
  • Доставляем с помощью того-же установщика пакеты:
    • make
    • gcc
    • zlib
    • jpeg

    Естественно, пакеты сами ставятся "сотоварищи" вместе с зависимостями.
  • Тянем с nomachine следующие архивы:
    • nx-X11-compat,
    • nxwin,
    • nxauth,
    • nxssh,
    • nxcomp,
    • nxcompext,
    • nxcompsh,
    • nxcompshad,
    • nxesd,
    • nxkill,
    • nxproxy,
    • nxservice
  • Разгружаем сие дерево исходников в какой-нить каталог (у меня - /usr/src/nx-3.2.0). Столько пакетов для nxwin-а, вообще говоря, не надо, но проще дать его все компилятору, чем потом в конфигах заблудиться. Эту и дальнейшие манипуляции, не требующие запуска цигвина, я производил FAR-ом в виндовом дереве каталогов.
  • Меняем nx-X11/config/cf/cygwin.cf на приложенный (что-то я там исправлял, не помню)
  • Берем с полки первый пирожок.


Полная компиляция исходников.

Самая долгая операция. Сейчас терзают смутные сомнения, что можно было бы ее и убыстрить путем уборки лишнего из конфигов. Но связываться еще и с imakefiles откровенно лень. Да и делается она всего один раз. Кто придумает лучше, сигнальте.
  • Запускаем Cygwin иконкой на десктопе, вводим команды: cd /usr/src/nx-3.2.0/nx-X11; make World
  • Уходим на работу/ложимся спать/лезем на порносайт.
  • Через от 40 мин. до хрен-его-знает - возвращаемся.
  • Наблюдаем свежеиспеченный /usr/src/nx-3.2.0/nx-X11/programs/XServer/NXWin.exe
  • Берем с полки второй пирожок.


Перекомпиляция NXWin.exe. Периодически.

  • Кладем прилагаемый mkxwin в /usr/src/nx-3.2.0/nx-X11/programs/XServer.
  • Исправляем там в последней строке путь к NXWin.exe установленного клиента.
  • Копируем исходники с достижениями из nxwin-3.2.0-4_src_chg_r?.rar в /usr/src/nx-3.2.0/nx-X11/programs/XServer/hw/nxwin
  • <-- Правим, режем, клеем. (самая полезная функция - ErrorF())
  • В mkxwin за/раскоментируем блоки с нужными нам перекомпилируемыми файлами. Данный изврат связан с тем, что стандартное слежение make за временем изменения си-шных исходников работать отказалось. Пришлось вручную.
  • Запускаем Cygwin иконкой на десктопе, вводим команду /usr/src/nx-3.2.0/nx-X11/programs/XServer/mkxwin
  • Запускаем сессию клиента, смотрим на результат.
  • Не забываем делиться последствиями озарений с общественностью!
  • Шарим по пустой полке, идем за пирожками :) -->


Add1: Пока не поехала по большому версия cygwin (совпадает с версией компиляции оригинала), достаточно замены в клиенте одного только NXWin.exe. В противном случае, надо отлавливать в дереве скомпиленные библиотеки + cygwin?.dll и заменять тоже. А также пересобирать в том же дереве другие .exe из bin-каталога клиента.

Вопросы приветствуются.
Вложения
CygMakeNX_cfg.rar
(5.24 КБ) 72 скачивания
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Добрался и до тестов. Очень странно...
Тестировал в режиме MODEM на 25-ом релизе 1с. Сравнивал virtual desktop под KDE и rootless. На той-же базе, по очереди.

Начал с StringSpeedTest от mike68: Отклонения никакого в пределах 10%-ной статистической погрешности. Делал по 5 серий по умолчанию (1000 раз вроде ?) Абсолютные цифры не показатель, но, на всякий случай, - ~0.4 и ~8.6.

Продолжил speedtest3 от Djelf. Те же 5 серий по 100000. (Рука потянулась за карандашом - считать дисперсию и что-то среднеквадратичное... Упс! Отказать! Лабораторки кончились 15 лет как. Чур меня, чур! :) ) Получил rootless / virtual desktop = 51.5 / 35.4 ~= 1.5 - в полтора раза больше времени на отрисовку. Но не в три!

Похоже настала пора мерряться пиписьками сравнивать конфиги/версии ПО. Больно уж разница большая. Было бы у меня все так плохо, сам бы в ООН пожаловался.
Начну первым. На сервере - ALS4 branch, пакеты nx-3.2.0 и freenx-server-0.7.4 от bsavelev, скачанные с фтп у Etersoft-а. Последний пакет пересобран из src.rpm, но это рояли играть не должно. Клиент - r8.
Предположу, что может быть критична дата nx-3.2.0, а именно - там может у кого-то оказаться nx-X11-3.2.0-1 вместо последнего 3.2.0-2. Как найду время - попробую запустить на сервере, где старый nx стоит.
Какие еще идеи у общества?
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: Курощение nomachine клиента - за шаг до ...

Сообщение Djelf »

dimbor писал(а):
19.09.2008 03:41
Похоже настала пора мерряться пиписьками сравнивать конфиги/версии ПО. Больно уж разница большая.

Сравни сколько времени потребуется для отработки моего теста в обоих режимах (датчик "Время ЦП" в диспетчере задач).
Моего Athlon XP 64 3200+ просто нехватает для отработки теста в rootless режиме - проц грузится на все 100% (против 30-40% в режиме Desktop), вот и выходит не в 2 раза медленее, а значительно больше (время процессора затрачиваемое на обработку rootless в 12раз больше!!!).
А в конторе рабочие машинки на WinXP еще раза в 3-4 медленее моего :wacko:
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Djelf писал(а):
19.09.2008 09:31
Сравни сколько времени потребуется для отработки моего теста в обоих режимах (датчик "Время ЦП" в диспетчере задач).
Моего Athlon XP 64 3200+ просто нехватает для отработки теста в rootless режиме - проц грузится на все 100% (против 30-40% в режиме Desktop), вот и выходит не в 2 раза медленее, а значительно больше (время процессора затрачиваемое на обработку rootless в 12раз больше!!!).


Intel Core 2 6600 2.4GHz (АМД избегаю везде), XPSP2 х32 (Висту нафик).
Режим - Время теста - Время ЦП - Сред загрузка
desktop - 35 - 19 - 30%
rootless - 47 - 38 - 40%

Что-бы это значило?
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: Курощение nomachine клиента - за шаг до ...

Сообщение Djelf »

desktop - 68 - 30 - 40%
rootless - 397 - 394 - 100%
Ну desktop соответствует, но rootless то с какого у меня настолько хуже? Если было бы всего в 2 раза медленнее, камня (Athlon64 3200+) бы хватило... да и в 3 бы хватило... Маразм крепчал :crazy:
Однако нужна статистика на разных машинах, чтобы понять в чем тут дело :unsure:
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Djelf писал(а):
19.09.2008 18:18
Однако нужна статистика на разных машинах, чтобы понять в чем тут дело :unsure:

Слегка попозже, как до конторы доберусь, а пока можно зайтить с другой стороны. В винде на сессию случается файлик %USERPROFILE%\.nx\D-*\winlog.
Интересуют отличия в этих файлах от разных сессий. У меня, например, там всегда есть такие строки:
rootless

Код: Выделить всё

...
winDetectSupportedEngines - Windows NT/2000/XP
winDetectSupportedEngines - DirectDraw installed
winDetectSupportedEngines - Allowing PrimaryDD
winDetectSupportedEngines - DirectDraw4 installed
winDetectSupportedEngines - Returning, supported engines 0000001f
InitOutput - g_iNumScreens: 1 iMaxConsecutiveScreen: 1
winSetEngine - Multi Window => ShadowGDI
winAdjustVideoModeShadowGDI - Using Windows display depth of 32 bits per pixel
...

desktop то же самое, только

Код: Выделить всё

winSetEngine - Using Shadow DirectDraw NonLocking
winAdjustVideoModeShadowDDNL - Using Windows display depth of 32 bits per pixel


А у нас в сор квартире газ, а у Вас? :)

P.S.: mike68 спрашивал, чем рутлес хуже десктопа. Походу, этим.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Еще некоторые соображения по отрисовке:
Глянул на код инициализации клиента. Под рутлес директдарв совершенно не при делах, и никогда не будет. Потому как не умеет при multiwindow (даже проверил). Только очень тормозной GDI, даже не GDI+. То, что про него знаю - так это, что скорость его работы == отрисовки сильно зависит от наличия на видеокарте 2D ускорителя, его поддерживающего. Идиотский вопрос - GDI+ быстрее GDI? Хотя, нужно обладать непомерными амбициями, чтобы сунуться переписывать под него. Пас. Проще видюшку на помойке раскопать - NVidi-ю какую-нить например.

Confused? - Me too!
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: Курощение nomachine клиента - за шаг до ...

Сообщение Djelf »

dimbor писал(а):
19.09.2008 18:57
А у нас в сор квартире газ, а у Вас? :)

Аналогично, шеф! :ph34r:
Обнаружилось еще одна забавная штука: скорость работы моего теста в режиме rootless зависит еще и от размеров rootless окна, т.е. для сопоставимых результатов нужно еще и это учитывать. При 640х480 оно наконец отработало за 81с. Мде :happy:
Спасибо сказали:
Аватара пользователя
warlomak
Сообщения: 384
ОС: Ubuntu 10.04
Контактная информация:

Re: Курощение nomachine клиента - за шаг до ...

Сообщение warlomak »

Djelf писал(а):
21.09.2008 13:23
dimbor писал(а):
19.09.2008 18:57
А у нас в сор квартире газ, а у Вас? :)

Аналогично, шеф! :ph34r:
Обнаружилось еще одна забавная штука: скорость работы моего теста в режиме rootless зависит еще и от размеров rootless окна, т.е. для сопоставимых результатов нужно еще и это учитывать. При 640х480 оно наконец отработало за 81с. Мде :happy:

еще кол-во цветов сильно притормаживает, например 16 бит супротив 32 на встроеной видео SIS (Мать на чипсете VIA, проц cyrix слабый)... Пришлось на клиентах везде 16 поставить...

p.s.
по поводу GDI и GDI+ начитался и сделал вывод, что ИМХО просто нужна оптимизация:
http://www.google.com/search?ie=UTF-8&...%B5%D0%B5%20GDI
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Курощение nomachine клиента - за шаг до ...

Сообщение dimbor »

Djelf писал(а):
21.09.2008 13:23
Обнаружилось еще одна забавная штука: скорость работы моего теста в режиме rootless зависит еще и от размеров rootless окна, т.е. для сопоставимых результатов нужно еще и это учитывать. При 640х480 оно наконец отработало за 81с. Мде :happy:

Растянул на все окно, померял - 120 сек. Хорошо не минут. Недолго музыка играла, недолго фраер танцевал... Полное Мде!

warlomak писал(а):
21.09.2008 14:01
по поводу GDI и GDI+ начитался и сделал вывод, что ИМХО просто нужна оптимизация:
http://www.google.com/search?ie=UTF-8&...%B5%D0%B5%20GDI

Тоже читаю подобное - отвал башки! Они там сами не могут договориться, что быстрее работает. Оптимизация это хорошо, но для этого нужно стянуть где-то "правильный код", чтобы оттуда передрать и выдать за свое :) Сначала дождусь ответа, умеет ли qtnx рутлес, а потом и буду вникать в таинства компьютерной графики.
Там всего-то надо переписать большую часть из этих функций:

Код: Выделить всё


  winAllocateFBShadowGDI;
  winShadowUpdateGDI;
  winCloseScreenShadowGDI;
  winInitVisualsShadowGDI;
  winAdjustVideoModeShadowGDI;
  winFinishScreenInitFB;
  winBltExposedRegionsShadowGDI;
  winActivateAppShadowGDI;
  winRedrawScreenShadowGDI;
  winRealizeInstalledPaletteShadowGDI;
  winInstallColormapShadowGDI;
  winStoreColorsShadowGDI;
  winCreateColormapShadowGDI;
  winDestroyColormapShadowGDI;

:ohmy:
ЗЫ: А главное девать куда-то BitBlt.
ЗЗЫ: Капец - там вся клиентская область перерисовывается, если хоть пиксель изменился. :cray:
Спасибо сказали:
Закрыто