Быстрое виндовое GUI

Тема в разделе "WASM.ASSEMBLER", создана пользователем FastSoft, 9 мар 2005.

  1. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
    Достать бы где ЭССЕ по этому поводу, мол, чего оно такое быстрое-то, а, ребят? Почему иксы ни в какое сравнение не ставятся? Может 1280 на 1024 винда моментально перерисовывает оттого, что каждый производитель видеоадаптера свои драйверы под нее пишет?
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Так ведь иксы через сеть работают, даже на локальной машине. Это было актуально для безмозглых терминалов тех времён. А вот почему оно до сих пор работает через ж..., т.е. через сеть - это другой вопрос :)
     
  3. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
    Quantumх

    Я сильно смеялся.
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105


    Жульничество это. Быстрый GUI в WIN 3.11 -

    сам видел на П-2, когда надо было кое-что под

    старый комп проверить. А вот когда перешел

    с 98-го на 2000-й, тоже сначала удивлялся.

    А потом смотрю : приложения медленней работают.

    Стал разбираться : окошки в 2000-м "разворачиваются

    со свистом" , т.е. быстрее чем в 98-м. У юзера

    создается эффект быстроты. Для этого же сделали

    выезжающее меню "Программы". А на деле общее

    время - больше. Не верите - поставьте WIN 3.11

    и увидите, что мы потеряли.
     
  5. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    imho не корректно сравнивать GUI NT систем с 16битными версиями. у них и возможности разные. и от разрешения/глубины цвета оч много зависит. если отключить всякие сглаживания, затенения и прочие рюшечки, то работать будет быстрее, чем в 3.11, т.к. там аппаратное ускорение не используется.
     
  6. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Кто сказал, что оно быстрое? У меня в KDE стартовое меню открывается быстрее, чем в 2000. А вообще секрет скорее всего в драйверах.
     
  7. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск
    valterg

    А потеряли ли? Там кое-где пару галочек поставить и будет все как всегда. Моментально и эффективно.



    А КДЕ да, тормоззит. Гном тоже торопится не шибко.



    В причинах не разбирался, так что скромно промолчу, потупив взор. С позиции юзера мне надо только чтобы эффективно все работало, поэтому размалеваная ХР меня пугает.
     
  8. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    n0p



    аналогично, и тому же, раздражает :lol: , однако у нее есть классический стиль (по крайней мере пока :lol: ). а вот 3.1 с вордом 6.0а на к6/266 гонял было - летало все как пуля!
     
  9. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    пункт №1 - гуя в XP нынче живет в ядре, а не в юзермоде - сделано для скорости.

    пункт №2 - гуя в XP оптимизирована под процессор - т.е. в гуевых либах отдельные блоки кода под процессор конкретный - схема используется практически такая же как для FPU - есть код эмуляции FPU который по прерыванию работает. И есть код работы с FPU - который работает через FPU. если FPU нет - включается эмуляция. В лелексе по умолчанию такого нет.

    пункт №3 - XFree - нынче работает не через сетку (если локально) а через сокеты. Почуствуйте разницу.



    А теперь касательно скорости -

    я когда последний раз на машинку ставил линукс, то все работало не очень быстро. Тогда KDE 3.2 только появилась её и поставил.

    Потом я потратил два дня на следующее - замена компилера и бинутилс на новые, которые поддерживают PIV процессор. А так же определение опций компилятора (имеется ввиду оптимизация + опции поддержки процессоров), с которыми система работала стабильно. В итоге получился набор опций, который включал к примеру такую вещь, как работа с векторами через SIMD.

    После этого я XFree и KDE а так же некоторые либы (libgif, libtiff, libjpeg и некоторые другие) перекомпилил с этими опциями. В итоге получил некоторый прирост производительности.... Небольшой.. 400 процентов всего. Собственно как результат скорость была сравнима с виндовой.



    Кстати. Касательно сравнения KDE и Windows UI - здесь есть некоторая разница. KDE - это C++ с собственной отрисовкой окон и контролов. А вот MSCOMCTL сделана на голом C - т.е. отрисовка контролов в винде сделана на С, исходя из того, что С более быстрый язык чем С++.
     
  10. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    rst



    Эээээ... А как это может не быть FPU? На древний 386 ведь XP всё равно не поставить.





    Локальный сокет сродни именному пайпу? Вы это имеете в виду?





    Зато MFC, WTL и т.д. на C++.
     
  11. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    Quantum - я привел аналогию FPU. Точно так же сейчас работает поддеркжка современных процессоров в ХР.



    Касательно сокетов - да. Сродни.



    Касательно MFС - он использует стандартные виндовые контролы, а не реализует свои. А в KDE именно свои реализуются посредством QT. QT в принципе является аналогом MFC, НО - QT забирается на более низкий уровень - отрисовку объектов. В MFC эта задача делегирована MSCOMCTL (кстати возможно в названии либы ошибаюсь, но суть та же)

    А насчет _полностью_ объектноориентированного интерфейса - милости прошу - VS.Net, HTML Dialogs - по скорости очень медленно.
     
  12. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    rst

    А-а-а... Понял про FPU, а то я уж было испугался :)



    Пример с MFC я неудачно привёл, но есть же либы, которые сами всё рисуют, как в Борланде. Мне кажется, что дело всё-таки не в языке, а в компиляторе. GCC для C++ генерирует отстойный код, и не только в линуксе (я его в основном для PalmOS использую), а для ANSI C чуть лучше, но это всё из-за того, что GCC не дружит с оптимизацией. Java - ещё один расточительный хроник - нативный AWT чтоб нарисовать обычную кнопку 10 раз обратится к реестру, а о Swing я вообще лучше промолчу. Зато VC вполне грамотно оптимизирует C++ код и, если не злоупотреблять всякими виртуальными (короче, пустыми и ненужными) классами, try/catch'ами и т.д., то код будет прамо как в сишном варианте.
     
  13. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    Quantum - вот поэтому я и говорю- оптимизация, оптимизация и ещё раз оптимизация

    unroll loops, omit stack pointers, -march=pentium4, sse -03 переменные в регистрах, использование FPU для переменных... и т.д. и т.п.

    В результате может быть код и будет отстойным, НО зато он будет работать быстро. Как я уже говорил - KDE начинает работать раза в 4 быстрее.

    Вообще.. кстати. надо бы поставить линух жене на ноутбук, заодно и потренируюсь :derisive:
     
  14. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    rst >




    А можно об этом подробнее? afaik единственныя компонент ядра виндоса, который может различаться на конкретном железе - HAL (причины к GUI отношения не имеют). Всё остальное одинаково, причём ядро (почти) не использует FPU/MMX.



    Косвенно об
    можно судить по размеру win32k.sys:

    2K gold - 1 726 256 байт, 214 записей в таблице экспорта;

    XPSP2 - 1 836 032 байт, 225 записей в таблице экспорта.

    Пропорциональное увеличение размера кол-ву функций. Если бы в XP появился процессорозависимыё код, то win32k.sys бы заметно увеличился.



    "Оптимизацию" под процессор использует DirectX, там это вроде бы на уровне "есть mmx, нет mmx". Соответственно и GDI+ тоже. Что там в других юзермодных либах не знаю, но думаю мало что изменилось со времён NT.



    А вот перекомпилировать с нормальными ключами - да, это imho не мешало бы сделать и на виндосе :)