Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 593
Благодарности: 222

Профиль | Отправить PM | Цитировать


Я покинул проект 6 месяцев назад и это окончательно. Я решил уделить два дня чтобы исправить баг, который по моим оценкам оказался достаточно критичным и заодно
исправить несколько других багов.

Jekson07, Я думаю это было бы некрасиво захватывать этот проект, как ты описал. Правильно было бы отпочковать новый проект с новым
названием на основе текущей кодовой базы(R149 и т.п.), независимо от DPS и выпускать его в соответсвии с лицензий GPL. Но это не то что
я собираюсь сделать.




Начинка программы.
Процесс индексации, подбора драйверов и правильность установки не так легко сравнить как например интерфейс, поэтому я
расскажу об отличиях DriverPack Solution 10 и Drivers Installer Assistant (2.7.29 Final от 29.07.2010) в этом плане. DPS везде будет подразумеваться R145(6 месячной давности), если не сказано по другому. Я хотел также включить указания в каких ревизиях и датах появился конкретный функционал, но это не так просто, ведь правильная
реализация многих функций удавалась не всегда с одной ревизии и не за один день.

  • Индексация 13 драйверпаков
    DIA: 138 секунд. Размер индексов: 1.010.622 байта.
    DPS: 108 секунд. Размер индексов: 7.943.759 байта.
    При этом DPS заносит в индексы больше и более полную информацию. Помните времена DPS 9, когда индексация длилась вечность? Теперь DPS не уступает DIA в этом.

  • Время старта программы.
    DPS имеет в 10 раз большие индексы и проверяет примерно в 3 раза больше HWID(поскольку учитывает совместимые HWIDы). DIA ищет драйверы только в паках
    рассчитанных на текущую ОС, DPS ищет по всем драйверпакам.
    DPS применяет hash-таблицы чтобы ускорить подбор драйверов, и к моему большому сожалению эта оптимизация дает всего лишь жалкое 4-х кратное ускорение подбора драйверов из-за ограниченности JavaScript.
    Время DPS: 5 секунд.
    Время DIA: 7 секунд.
    DIA осуществлял подбор драйверов по 13 башратовским пакам для XP.
    DPS осуществлял подбор по 101 паку от различных сборок(их объем: 3.4 ГБ)

  • DPS при индексации собирает полные HWID не урезая их, а также собирает названия секций (чтобы подбирать драйвер к нужной версии ОС).
    DIA укорачивает их чтобы увеличить шансы совпадения HWID и уменьшить размер индексов. Драйверпаки должны быть разложены по папкам для разных систем.

  • DPS начиная с R146 использует полный HWID устройства и подбирвает наиболее совместимый HWID из списка HardwareID и CompatibleID(чем выше в списке, тем лучше).
    читать дальше »
    Код: Выделить весь код
    DeviceInfo
      Name:         PCI standard host CPU bridge
      Status:       DRIVER IS RUNNING.
      Manufacturer: (Standard system devices)
      HWID_reg      PCI\VEN_1022&DEV_1100&SUBSYS_00000000&REV_00\3&2411E6FE&0&C0
      Class:        System
      Location:     PCI bus 0, device 24, function 0
      ConfigFlags:  0
      Capabilities: 64
    DriverInfo
      Name:     PCI standard host CPU bridge
      Provider: Microsoft
      Date:     7-1-2001
      Version:  5.1.2600.5512
      HWID:     PCI\CC_0600
      inf:      machine.inf,NO_DRV
    HardwareID
      PCI\VEN_1022&DEV_1100&SUBSYS_00000000&REV_00
      PCI\VEN_1022&DEV_1100&SUBSYS_00000000
      PCI\VEN_1022&DEV_1100&REV_00
      PCI\VEN_1022&DEV_1100
      PCI\VEN_1022&DEV_1100&CC_060000
      PCI\VEN_1022&DEV_1100&CC_0600
    CompatibleID
      PCI\VEN_1022&CC_060000
      PCI\VEN_1022&CC_0600
      PCI\VEN_1022
      PCI\CC_060000
      PCI\CC_0600


    DIA использует только один HWID устройства и укорачивает его чтобы можно было сопоставить с укороченным HWID из индексов.

  • DPS начиная с R146 использует devcon для установки драйверов, который запускает установщик Windows.

    DIA использует DPInst. DPinst сам ищет драйверы во всем распакованном каталоге и сам решает что ставить, не зависимо от того что выбрала оболочка. DPInst содержит глюки что я описал в коментарии к R146. DPInst не выбирает оптимальный драйер, он просматирвает все inf, и ставит все подходящие по его усмотрению драйверы в том порядке в катором он обрабатыает эти файлы.

    Таким образом это означает DPS находит какие драйверы ставить и дает указания их ставить по полному HWID.
    DIA находит драйверы которые имеют похожие на нужные HWID и скармливает эти папки DPInst, который уже дейсвтвует по своему усмотрению.

  • DPS не поддерживает установку PhysX, ATI_TOOLS, finisher(ini файлы в корне). DIA поддерживает. Это единственное упущение DPS, которое мне известно.

Интерфейс.
Я недавно разговаривал с Samlab, и он сказал что предпочитает интерфейс DIA. Поэтому я здесь поговорю о интерфейсе.

Немного истории. Вы, наверное, помните какой он был в DPS 9. Этот интерфейс был сделан вокруг драйверпаков, и на определенном этапе я решил перейти на интерфейс ориентированный на драйверы, так как это позволит сразу видеть все драйверы, которые доступны в драйверпаках, не наводя мышью на них, также за одним драйверпаком могут стоять несколько драйверов и у каждого свой статус актуальности/установленности. Также драйверы ищутся по всем драйверпакам, а не только по тем которые предназначены для определенной ОС: если делать как у DIA, то кнопки драйверпаков заняли бы не один экран.
Еще перед тем как изменять интерфейс, я нарисовал blueprint(прототип) в Paint и вы можете посмотреть как я задумывал, и что в результате мы имеем сейчас.
http://code.google.com/p/driverpacks...il?id=10&can=1
Я помню первую реакцию ArtX, QuarQ и других на это. Мне тогда пришлось каждому объяснять что это за списки и отстаивать необходимость каждого из них. В результате, пришлось добавить подсказки к спискам и ввести "режим эксперта", чтобы можно было скрывать "продвинутые" списки и настройки.

Вы, наверное, заметили что названия драйверов обрезаются справа, хотя место еще есть. Механизм, который подгоняет размер названия под ширину экрана пришлось отключить чтобы программу можно было использовать с Internet Explorer 6.0(это стоит изначально на свежеустановленном XP). Обеспечение совместимости с IE6 часто было значительной проблемой и например R130 на официальном сайте выдает скриптовую ошибку на IE6.

Кстати я бы хотел спросить: как вы думаете, стоит ли отображать название драйверпака в котором был найден драйвер(тот что отображается синим цветом)?
Это я спрашиваю поскольку ArtX считает, что лучше это скрывать и в его сборках эти надписи не отображаются.
Изменить эту опцию можно в tools\config.js:
var showPackNames = true; // показывать
var showPackNames = false; // скрывать

Возвращаясь к дискуссии об интутивности интерфейса. Помните ли вы как было ваше первое знакомство с интерфейсом R130, R145, 10.6 R43.
Насколько сложно было разобраться? Какие действия выполняются более наглядно, интуитивней, проще в каждом из
интерфейсов DIA и DPS?
Хотелось бы также узнать конкретные примеры использования, где интерфейс DIA превосходит DPS.

И на последок рубрика: "А знаете ли вы, что..."
Если DPS не может найти драйверпаки в папке DRP, то он пытается найти и использовать драйверпаки на CD или DVD. Эта фича задумывалась чтобы те пользователи, кто получил диск с прогой(или сами записали на болванку), могли продолжать использовать драйверпаки с диска, даже в том случае если программа на диске или индексы на диске становятся устаревшими или выяснится что прога содержит критические баги.

Таким образом пользователи могут запускать новую версию программы(с винта или флешки) и использовать драйверпаки c CD/DVD.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:03, 04-08-2010 | #1323