无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 13470|回复: 35
打印 上一主题 下一主题

[讨论] 几款驱动工具的比较

    [复制链接]
跳转到指定楼层
1#
发表于 2021-5-26 21:06:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hhh333 于 2021-5-27 10:39 编辑

经过各位大佬的努力,驱动工具或代码变得越来越强大,我做了一个粗略的比较
一、参与比较的工具
1、Lightning 的drvIndex.exe
2、834772509 的DriverIndexer
3、m大的PECMD驱动脚本
二、比较条件
1、机器:家里的台式机
2、驱动:显卡驱动包,7z标准压缩后155M(压缩前715M),按软件的要求建好索引文件并外置于驱动包的同一位置,当然以上第一个工具不需要预建索引
3、系统:自做的win1064.19043.1021PE
三、比较方法及结果
1、启动PE进桌面后,启动安装脚本调用相应工具进行安装,在脚本中设一个计时器,记录安装时间,即可进行比较。每换一种方式就重新启动系统测试
2、大致进行了如下比较,录得的结果如下:

测试一、Lightning 的drvIndex.exe(无索引直接驱动)


测试二、834772509 的DriverIndexer(无索引直接驱动)


测试三、834772509 的DriverIndexer(利用索引驱动)


测试四、m大的PECMD驱动脚本(利用索引驱动)

结论:
从目前的情况看,Lightning 的drvIndex.exe耗时最小且不需要预先制作索引,为最优。目前只是安装显卡,按作者的话来说,如果安装多种驱动有多个驱动包,这个程序更有优势。
当然,大家如果有条件可以比较测试更大的包,或者同时安装多种驱动。


又:紧急
刚才我测试了打印机的安装,目前只有M大的脚本能成功安装,前两个工具都不能正确安装,希望作者再接再励,看来前面的测试还全面。

附:
这是测试驱动的核心代码:

  1. _SUB InsDrv7z
  2. `FORX %1\*.7Z,fzip,1,
  3. ENVI fzip=%1
  4. IFEX %fzip%,
  5. {
  6.         NAME &fname=%fzip%
  7.         FDIR &fPath=%fzip%
  8.         ENVI &idx=%&fPath%\%&fname%.%&TAG%
  9.         IFEX %&idx%,SET &_cache=*infcache:"%&idx%"!
  10.         {
  11.                 SET &_cache=
  12.                 PATH %temp%\%&fname%
  13.                 EXEC =!7z.exe x -o"%temp%\%&fname%" -aos -y %fzip% %&TAG%
  14.                 IFEX %temp%\%&fname%\%&TAG%,SET &_cache=*infcache:"%temp%\%&fname%\%&TAG%"!FILE -force -q %temp%\%&fname%
  15.         }
  16.         FIND $%&_cache%=,
  17.         {
  18.                 ENVI &idx=
  19.                 `EXEC =Drvindex.exe -b %fzip% -hide
  20.                 EXEC =!DriverIndexer.exe load-driver %fzip% %&idx%
  21.                 `EXEC =!7z.exe x %fzip% -o"%temp%\%&fname%"
  22.                 `CALL DeviInf %temp%\%&fname%
  23.                 `FILE -force -q %temp%\%&fname%
  24.         }!
  25.         {
  26.                 `DEVI *norescan *sub %&_cache% %fzip%,Display
  27.                 EXEC =!DriverIndexer.exe load-driver %fzip% %&idx%
  28.         }
  29. }
  30. _END
复制代码


这是驱动安装计时工具代码:

  1. _SUB DRVALL,W560H410,请选定要驱动的硬件,,SHELL32.DLL#21
  2.         TEAM ENVI $CM_NET=0|ENVI RM_LAN=1|ENVI RM_PPP=0|ENVI RM_WAN=0|ENVI RM_RLT=1|ENVI RM_VBE=0|ENVI RM_4=0|ENVI CM_IE=0|ENVI $RM_ADDPKG=0|ENVI iTimes=0
  3.         TEAM FORM -free &X=%SystemDrive%|CALC #xSize=%X%/1024/1024|IFEX MEM=?,iMemFree
  4.         `不存在变灰 
  5.         IFEX %CurDir%\DX9\IE.7z,!ENVI CM_IE=-2
  6.         IFEX %CurDir%\DX9\BDE.7z,!ENVI CM_BDE=-2
  7.         IFEX %CurDir%\DX9\CPU.7z,!ENVI CM_CPU=-2
  8.         IFEX %CurDir%\Print\PRT_PART.7Z,!ENVI CM_PRT=-2
  9.         IFEX %CurDir%\DX9\CAM.7z,!ENVI CM_CAM=-2
  10.         IFEX %CurDir%\DX9\MTP.7z,!ENVI CM_MTP=-2
  11.         
  12.         `已驱动过一次则三卡按钮变灰
  13.         IFEX %WinDir%\LD_NET_WAN.OK,ENVI RM_WAN=-2
  14.         IFEX %WinDir%\LD_NET_LAN.OK,ENVI RM_LAN=-2
  15.         IFEX %WinDir%\LD_NET_PPP.OK,ENVI RM_PPP=-2
  16.         IFEX $%RM_WAN%=-2,IFEX $%RM_LAN%=-2,IFEX $%RM_PPP%=-2,ENVI $CM_NET=-2
  17.         IFEX %WinDir%\LD_SND.OK,ENVI CM_SND=-2
  18.         IFEX %WinDir%\System32\driverstore\FileRepository\basicdisplay.inf*\,!ENVI RM_VBE=-2
  19.         IFEX %WinDir%\LD_DSP.OK,TEAM ENVI CM_DSP=-2|ENVI RM_RLT=-1|ENVI RM_VBE=-2
  20.         IFEX %WinDir%\LD_PRT.OK,ENVI CM_PRT=-2
  21.         IFEX %WinDir%\LD_MTP.OK,ENVI CM_MTP=-2
  22.         IFEX %WinDir%\LD_DX9.OK,ENVI CM_DX9=-2
  23.         IFEX %WinDir%\LD_CAM.OK,ENVI CM_CAM=-2
  24.         IFEX %WinDir%\LD_CHM.OK,ENVI CM_CHM=-2
  25.         IFEX %WinDir%\LD_IE.OK,ENVI CM_IE=-2
  26.         IFEX %WinDir%\LD_BDE.OK,ENVI CM_BDE=-2
  27.         IFEX %WinDir%\LD_CPU.OK,ENVI CM_CPU=-2
  28.         FIND $%BootOS%=,ENVI RM_4=-2
  29.         FIND $%BootOS%=03,ENVI RM_4=-2
  30.         GROU Group0,L5T2W245H215,硬件安装
  31.         CHEK CHK_NET,L15T25W80H20,驱动网卡→,,%CM_NET%        
  32.         RADI RadioNetLAN,L30T50W40H17,有线,,%RM_LAN%,1
  33.         RADI RadioPPPOE,L100T50W40H17,宽带,,%RM_PPP%,1
  34.         RADI RadioNetWAN,L170T50W40H17,无线,,%RM_WAN%,1

  35.         CHEK CHK_DSP,L15T80W80H20,驱动显卡→,TEAM ,%CM_DSP%        
  36.         RADI RadioDSPRLT,L30T105W80H17,真实驱动,,%RM_RLT%,2
  37.         RADI RadioDSPVBE,L130T105W80H17,MS通用驱动,,%RM_VBE%,2
  38.         
  39.         CHEK CHK_SND,L15T135W80H20,驱动声卡,,%CM_SND%        
  40.         CHEK CHK_PRT,L15T190W80H20,驱动打印机,,%CM_PRT%        

  41.         GROU Group1,L250T2W295H215,安装方式
  42.         RADI Radio1,L260T25W140H20,内置CAB/WIM/7z包安装,TEAM ENVI @EdtCAB.Enable=0|ENVI @ButCAB.Enable=0|ENVI @CHK_SUB.Enable=0|ENVI @CHK_INF.Enable=0|ENVI @EdtINF.Enable=0|ENVI @ButINF.Enable=0,1
  43.         RADI Radio1_1,L275T45W85H20,内置包优先,,1,3
  44.         RADI Radio1_2,L365T45W85H20,附加包优先,,0,3
  45.         RADI Radio2,L260T80W140H20,指定CAB/WIM/7z包安装,TEAM ENVI @EdtCAB.Enable=1|ENVI @ButCAB.Enable=1|ENVI @CHK_SUB.Enable=0|ENVI @CHK_INF.Enable=0|ENVI @EdtINF.Enable=0|ENVI @ButINF.Enable=0,0
  46.         EDIT EdtCAB,L275T100W160H20,,,-2
  47.         ITEM ButCAB,L437T100W20H20,…,CALL DEFCAB,,-2
  48.         RADI Radio3,L260T135W120H20,指定INF文件夹安装,TEAM ENVI @EdtINF.Enable=1|ENVI @ButINF.Enable=1|ENVI @CHK_INF.Enable=1|ENVI @CHK_SUB.Enable=1|ENVI @EdtCAB.Enable=0|ENVI @ButCAB.Enable=0,0
  49.         CHEK CHK_SUB,L460T145W70H20,搜子目录,,-2
  50.         EDIT EdtINF,L275T155W160H20,,,-2
  51.         ITEM ButINF,L437T155W20H20,…,CALL DEFINF,,-2
  52.         CHEK CHK_INF,L460T165W60H20,双设备,,-2
  53.         RADI Radio4,L260T190W180H20,搜索本机资源安装(WIN7以上),TEAM ENVI @EdtCAB.Enable=0|ENVI @ButCAB.Enable=0|ENVI @EdtINF.Enable=0|ENVI @ButINF.Enable=0,%RM_4%

  54.         GROU Group2,L5T220W540H45,组件支持
  55.         CHEK CHK_DX9,L15T240W60H20,DiretX,,%CM_DX9%
  56.         CHEK CHK_CAM,L80T240W100H20,扫描仪摄像头,CALL SelDX9,%CM_CAM%
  57.         CHEK CHK_CHM,L185T240W110H20,管理员登录+CHM,CALL SelCPU,%CM_CHM%
  58.         CHEK CHK_IE,L300T240W30H20,IE,CALL SelCHM,%CM_IE%
  59.         CHEK CHK_MTP,L340T240W60H20,手机MTP,,%CM_MTP%        
  60.         CHEK CHK_BDE,L410T240W80H20,BitLocker,,%CM_BDE%
  61.         CHEK CHK_CPU,L495T240W40H20,CPU,,%CM_CPU%

  62.         LABE lblVREM,L15T272W530H40,说明:选框灰色表示已驱动过;改变安装方式时请只驱动某一种硬件;IE和BC3文本比较需要CHM支持,管理员用户下才能打开CHM文件!附加CAB包与外置同目录放在H3PE\ADD_DRV下。
  63.         ITEM Button5,L90T320W60H24,刷新,CALL CtrlRefresh
  64.         ITEM Button1,L155T320W100H24,清除变灰标志,TEAM FILE %WinDir%\*.OK|ENVI @lblVREM=全部清除!|WAIT 500|CALL CtrlRefresh
  65.         ITEM Button2,L270T320W70H24,设备管理,EXEC MMC.EXE "%windir%\System32\devmgmt.msc"
  66.         ITEM Button3,L345T320W60H24,应用,THREAD* TEAM CALL CheckMode|ENVI @lblVREM=驱动脚本运行完成!|WAIT 500|CALL CtrlRefresh
  67.         ITEM Button4,L410T320W60H24,关闭,KILL \%DRVALL%
  68.         LABE -left -vcenter lblxSize,L0T358W559H22,系统盘(%SystemDrive%)剩余空间:%xSize% MB  系统剩余可用内存:%iMemFree% MB 耗时:%iTimes%秒,,0xFFFFFF#0x000000,11
  69.         `LABE -left -vcenter lblTimes,L500T358W555H22,耗时:0秒,,0xFFFFFF#0x000000,11
  70.         TIME Timer1,0,CALL TimeRefresh
  71.         DATE &iTimeStart uptime
  72. _END

  73. _SUB SelCHM
  74.         IFEX $%CHK_CHM.Check%=0,IFEX $%CHK_IE.Check%=1,ENVI @CHK_CHM.Check=1
  75. _END

  76. _SUB SelCPU
  77.         IFEX $%CHK_CPU.Check%=0,IFEX $%CHK_CHM.Check%=1,ENVI @CHK_CPU.Check=1
  78. _END

  79. _SUB SelDX9
  80.         IFEX $%CHK_DX9.Check%=0,IFEX $%CHK_CAM.Check%=1,ENVI @CHK_DX9.Check=1
  81. _END

  82. _SUB TimeRefresh
  83.         TEAM DATE &iTimeCur uptime|CALC iTimes=(%&iTimeCur%-%&iTimeStart%)/1000#2
  84.         TEAM FORM -free &X=%SystemDrive%|CALC #xSize=%X%/1024/1024|IFEX MEM=?,iMemFree|ENVI @lblxSize=系统盘(%SystemDrive%)剩余空间:%xSize% MB  系统剩余可用内存:%iMemFree% MB  耗时:%iTimes%秒
  85. _END

  86. _SUB CtrlRefresh
  87.         ENVI @CHK_NET.Enable=0
  88.         IFEX %WinDir%\LD_NET_WAN.OK,ENVI @RadioNetWAN.Enable=0!TEAM ENVI @RadioNetWAN.Enable=1|ENVI @CHK_NET.Enable=1
  89.         IFEX %WinDir%\LD_NET_LAN.OK,ENVI @RadioNetLAN.Enable=0!TEAM ENVI @RadioNetLAN.Enable=1|ENVI @CHK_NET.Enable=1
  90.         IFEX %WinDir%\LD_NET_PPP.OK,ENVI @RadioPPPOE.Enable=0!TEAM ENVI @RadioPPPOE.Enable=1|ENVI @CHK_NET.Enable=1
  91.         IFEX %WinDir%\LD_SND.OK,ENVI @CHK_SND.Enable=0!ENVI @CHK_SND.Enable=1
  92.         IFEX %WinDir%\LD_DSP.OK,TEAM ENVI @CHK_DSP.Enable=0|ENVI @RadioDSPRLT.Enable=0|ENVI @RadioDSPVBE.Enable=0!TEAM ENVI @CHK_DSP.Enable=1|ENVI @RadioDSPRLT.Enable=1|IFEX %WinDir%\System32\driverstore\FileRepository\basicdisplay.inf*\,ENVI @RadioDSPVBE.Enable=1
  93.         IFEX %WinDir%\LD_DX9.OK,ENVI @CHK_DX9.Enable=0!ENVI @CHK_DX9.Enable=1
  94.         IFEX %WinDir%\LD_CAM.OK,ENVI @CHK_CAM.Enable=0!ENVI @CHK_CAM.Enable=1
  95.         IFEX %WinDir%\LD_CHM.OK,ENVI @CHK_CHM.Enable=0!ENVI @CHK_CHM.Enable=1
  96.         IFEX %WinDir%\LD_PRT.OK,ENVI @CHK_PRT.Enable=0!IFEX %CurDir%\Print\PRT_PART.7Z,ENVI @CHK_PRT.Enable=1
  97.         IFEX %WinDir%\LD_MTP.OK,ENVI @CHK_MTP.Enable=0!IFEX %CurDir%\DX9\MTP.7z,ENVI @CHK_MTP.Enable=1
  98.         IFEX %WinDir%\LD_IE.OK,ENVI @CHK_IE.Enable=0!IFEX %CurDir%\DX9\IE.7z,ENVI @CHK_IE.Enable=1
  99.         IFEX %WinDir%\LD_BDE.OK,ENVI @CHK_BDE.Enable=0!IFEX %CurDir%\DX9\BDE.7z,ENVI @CHK_BDE.Enable=1
  100.         IFEX %WinDir%\LD_CPU.OK,ENVI @CHK_CPU.Enable=0!IFEX %CurDir%\DX9\CPU.7z,ENVI @CHK_CPU.Enable=1
  101.         CALL TimeRefresh
  102.         TEXT
  103. _END

  104. _SUB CheckMode
  105.         TEAM ENVI @Button1.Enable=0|ENVI @Button3.Enable=0|ENVI @Button4.Enable=0|ENVI MYPKG=|ENVI MYINF=|ENVI INSHOST=0
  106.         DATE &iTimeStart uptime
  107.         ENVI @Timer1=1000
  108.         IFEX $%Radio1.Check%=1,CALL InsRadio1
  109.         IFEX $%Radio2.Check%=1,FIND $%EdtCAB%=,!!TEAM ENVI MYPKG=%EdtCAB%|CALL InsRadio1
  110.         IFEX $%Radio3.Check%=1,FIND $%EdtINF%=,!!TEAM ENVI MYINF=%EdtINF%|CALL InsRadio1
  111.         IFEX $%Radio4.Check%=1,TEAM ENVI INSHOST=1|CALL InsRadio1
  112.         TEAM ENVI @Button1.Enable=1|ENVI @Button3.Enable=1|ENVI @Button4.Enable=1|ENVI @Timer1=0
  113. _END

  114. _SUB InsRadio1
  115.         `挂起下述行,可以在某类型驱动有多选项时,只要主项非灰色并选定,多选项灰色但是选定状态,也能执行
  116.         TEAM ENVI $CM_NET=0|ENVI $CM_SND=0|ENVI $CM_DSP=0|ENVI $CM_DX9=0|ENVI $CM_CHM=0|ENVI $CM_PRT=0|ENVI $CM_IE=0|ENVI $CM_BDE=0|ENVI $CM_CPU=0
  117.         IFEX $%Radio1_2.Check%=1,ENVI $RM_ADDPKG=1
  118.         IFEX $%RadioNetLAN.Check%=1,IFEX $%RadioNetLAN.Enable%=1,ENVI $CM_NET=1
  119.         IFEX $%RadioPPPOE.Check%=1,IFEX $%RadioPPPOE.Enable%=1,ENVI $CM_NET=2
  120.         IFEX $%RadioNetWAN.Check%=1,IFEX $%RadioNetWAN.Enable%=1,ENVI $CM_NET=3
  121.         IFEX $%RadioDSPRLT.Check%=1,IFEX $%RadioDSPRLT.Enable%=1,ENVI $CM_DSP=1
  122.         IFEX $%RadioDSPVBE.Check%=1,IFEX $%RadioDSPVBE.Enable%=1,ENVI $CM_DSP=2
  123.         IFEX $%CHK_NET.Check%=0,ENVI $CM_NET=0
  124.         IFEX $%RadioNetLAN.Check%<1,IFEX $%RadioPPPOE.Check%<1,IFEX $%RadioNetWAN.Check%<1,ENVI $CM_NET=0
  125.         IFEX $%CHK_DSP.Check%=0,ENVI $CM_DSP=0
  126.         ENVI $CM_SND=%CHK_SND.Check%
  127.         ENVI $CM_PRT=%CHK_PRT.Check%
  128.         ENVI $CM_MTP=%CHK_MTP.Check%
  129.         ENVI $CM_DX9=%CHK_DX9.Check%
  130.         ENVI $CM_CAM=%CHK_CAM.Check%
  131.         ENVI $CM_CHM=%CHK_CHM.Check%
  132.         ENVI $CM_IE=%CHK_IE.Check%
  133.         ENVI $CM_BDE=%CHK_BDE.Check%
  134.         ENVI $CM_CPU=%CHK_CPU.Check%
  135.         ENVI $CM_INF=%CHK_INF.Check%
  136.         ENVI $CM_SUB=%CHK_SUB.Check%

  137.         `如果复选框为灰色则置贮存Check状态值的变量为0
  138.         IFEX $%CHK_NET.Enable%=0,ENVI $CM_NET=0
  139.         IFEX $%CHK_SND.Enable%=0,ENVI $CM_SND=0
  140.         IFEX $%CHK_DSP.Enable%=0,ENVI $CM_DSP=0
  141.         IFEX $%CHK_PRT.Enable%=0,ENVI $CM_PRT=0
  142.         IFEX $%CHK_MTP.Enable%=0,ENVI $CM_MTP=0
  143.         IFEX $%CHK_DX9.Enable%=0,ENVI $CM_DX9=0
  144.         IFEX $%CHK_CAM.Enable%=0,ENVI $CM_CAM=0
  145.         IFEX $%CHK_CHM.Enable%=0,ENVI $CM_CHM=0
  146.         IFEX $%CHK_IE.Enable%=0,ENVI $CM_IE=0
  147.         IFEX $%CHK_BDE.Enable%=0,ENVI $CM_BDE=0
  148.         IFEX $%CHK_CPU.Enable%=0,ENVI $CM_CPU=0

  149.         THRD ENVI
  150.         IFEX $%CM_DSP%>0,TEAM ENVI @lblVREM=正在驱动显卡……|WAIT 500|LOAD %CurDir%\Display\START_VGA.INI
  151.         IFEX $%CM_SND%>0,TEAM ENVI @lblVREM=正在驱动声卡……|WAIT 500|LOAD %CurDir%\Sound\START_SND.INI
  152.         IFEX $%CM_PRT%>0,TEAM ENVI @lblVREM=正在驱动打印机……|WAIT 500|LOAD %CurDir%\Print\INSPRINT.INI
  153.         IFEX $%CM_MTP%>0,TEAM ENVI @lblVREM=正在驱动手机MTP……|WAIT 500|LOAD %CurDir%\DX9\INSMTP.INI
  154.         IFEX $%CM_NET%>0,TEAM ENVI @lblVREM=正在驱动网卡……|WAIT 500|LOAD %CurDir%\Ethernet\START_NET.INI
  155.         IFEX $%CM_DX9%>0,TEAM ENVI @lblVREM=正在加载DX支持……|WAIT 500|LOAD %CurDir%\DX9\INSDX9.INI
  156.         IFEX $%CM_CAM%>0,TEAM ENVI @lblVREM=正在加载摄像头扫描仪支持……|WAIT 500|LOAD %CurDir%\DX9\INSCAM.INI
  157.         IFEX $%CM_CHM%>0,TEAM ENVI @lblVREM=正在加载管理员登录和CHM支持……|WAIT 500|LOAD %CurDir%\DX9\INSCHM.INI
  158.         IFEX $%CM_IE%>0,TEAM ENVI @lblVREM=正在加载IE支持……|WAIT 500|LOAD %CurDir%\DX9\INSIE.INI
  159.         IFEX $%CM_BDE%>0,TEAM ENVI @lblVREM=正在加载Bitlocker支持……|WAIT 500|LOAD %CurDir%\DX9\INSBDE.INI
  160.         IFEX $%CM_CPU%>0,TEAM ENVI @lblVREM=正在加载CPU及内存信息支持……|WAIT 500|LOAD %CurDir%\DX9\INSCPU.INI
  161. _END

  162. _SUB DEFINF
  163.         BROW Tag,*%CurDir%,请选择包含.INF文件的程序文件夹:
  164.         FIND $%Tag%=,!ENVI @EdtINF=%Tag%
  165. _END

  166. _SUB DEFCAB
  167.         BROW Tag,%CurDir%\*.cab,请选择您的驱动包:,CAB压缩包|*.CAB|Wim镜像包|*.WIM|7z压缩包|*.7z
  168.         FIND $%Tag%=,!ENVI @EdtCAB=%Tag%
  169. _END

  170. ENVI -mode EnviMode=1
  171. ENVI -mode EnviBroad=0
  172. CALL @DRVALL
复制代码


注:以上代码脚本M大进行了几次修进。

评分

参与人数 5无忧币 +25 收起 理由
boy6585948 + 5 很给力!
whyme22 + 5
wuxin9712 + 5
zbaby523 + 5 赞一个!
dfw9 + 5 很给力!

查看全部评分

2#
发表于 2021-5-26 21:22:51 | 只看该作者
最高最低相差3秒多,应该可以认定为影响不大,准确性通用性易用性才是要考虑的问题

评分

参与人数 1无忧币 +5 收起 理由
q8155128 + 5 神马都是浮云

查看全部评分

回复

使用道具 举报

3#
发表于 2021-5-26 21:24:44 来自手机 | 只看该作者
支持一下
回复

使用道具 举报

4#
发表于 2021-5-26 21:28:15 | 只看该作者
支持一下下。
回复

使用道具 举报

5#
发表于 2021-5-26 21:34:37 来自手机 | 只看该作者
稳定和兼容性压倒一切,还没见过哪款工具能应付所有的驱动

评分

参与人数 1无忧币 +5 收起 理由
q8155128 + 5 神马都是浮云

查看全部评分

回复

使用道具 举报

6#
发表于 2021-5-26 21:35:58 | 只看该作者
L大速度最快,原因是多线程同时开始读取识别硬件ID的原因吗?

点评

按作者的说法这个还没开多线程,同时安装多种驱动才开,譬如显卡网卡打印机等等同时安装  详情 回复 发表于 2021-5-26 21:43
回复

使用道具 举报

7#
 楼主| 发表于 2021-5-26 21:43:24 | 只看该作者
sairen139 发表于 2021-5-26 21:35
L大速度最快,原因是多线程同时开始读取识别硬件ID的原因吗?

按作者的说法这个还没开多线程,同时安装多种驱动才开,譬如显卡网卡打印机等等同时安装
回复

使用道具 举报

8#
发表于 2021-5-26 22:25:25 来自手机 | 只看该作者
哪个装了显卡可以不重启就用,在pe里?不重启就能用是pe的原因还是驱动安装工具的功劳?这个我好想知道。

点评

是PE,非驱动工具。  详情 回复 发表于 2021-5-26 22:32
回复

使用道具 举报

9#
发表于 2021-5-26 22:32:36 | 只看该作者
窄口牛 发表于 2021-5-26 22:25
哪个装了显卡可以不重启就用,在pe里?不重启就能用是pe的原因还是驱动安装工具的功劳?这个我好想知道。

是PE,非驱动工具。
回复

使用道具 举报

10#
发表于 2021-5-26 22:33:21 来自手机 | 只看该作者
似乎找到了答案,原来什么驱动都没装就能即刻生效,否则就必须重启。
回复

使用道具 举报

11#
发表于 2021-5-27 02:21:24 | 只看该作者
发表点个人观点,欢迎来辩。
不带索引的驱动安装工具,它凸现的效率高,只局限你当先的使用环境。
比如LZ测试的显卡驱动安装,本机只有一块显卡,样本小,不具有代表性。
猜测快的逻辑是,多线程去找N个INF,找到第一个合适的INF就安装,这样确实有优势。但是对判断你INF是否适合当前系统就比较麻烦了,INF和操作系统的匹配逻辑是极其复杂的,这里就够喝上好几壶的。如果第一个合适的INF没判断好,就耽误时间了。
猜测慢的逻辑是,单线程去找索引中匹配出的所有INF列表,找完索引里所有合适的INF,再去安装,所以表现的结果可能就是相对第一种可能的慢。不过利用索引可以很轻松的去处理INF和操作系统的匹配逻辑,只要索引做的好。


当脱离了LZ的这种只安装显卡驱动的情况,整理对比才能一决高下,毕竟我们要玩的是很多驱动对吧,你都在PE里玩起来显卡驱动了,肯定在其他驱动也要搞一搞的。
假如安装本机所有驱动的时候,有众多设备,我们假设总共有200个设备,然后有100000个驱动需要去匹配,这种量级的我不相信测试结果还像LZ说的那样。结果肯定是反过来的,可能反过来差成百上千倍的速度。LZ的测试,还是很小的量级。


当然,整理好仅适合当前PE内核版本的驱动包,是王道。整理好了,不用索引,只安装需要的那几个驱动,速度能飞起也更适用,就像LZ测试的结果就符合广大PE爱好者使用。


----------------------------
半夜有点迷糊。说不不明不白的,有空继续来扯。
顺便说一下,CeoMSX一直用的索引方式,之前用PECMD硬干,到一定数量级后就表现的有点牵强了。
经过了一年的折腾,已经把SQLite3数据库C/C++的DLL接口引擎翻译成PECMD的代码,目前新版CeoMSX已经使用了SQLite3数据库。设计之初就是为了大家PE使用方便,给离线系统导入驱动,给当前PE系统安装驱动等。
下一步打算把我精简的PE显卡驱动也做到CeoMSX里,等于是全驱动全系列PE可以跑起来。

点评

用数据库确实有点儿杀鸡用牛刀了…  详情 回复 发表于 2021-6-4 09:26
个人觉得没必要上数据库,使用结构化索引格式一般单个驱动包的索引不会超过10MB,这个数据量我觉得用json这类的存储格式就足够了。  详情 回复 发表于 2021-5-27 06:38
期待新的CeoMSX,比较看好,你们一直专注于驱动,积累比较多。做好了广大PE爱好者就有福了。 确实样本比较小,驱动库也不多,只能是一个侧面。  详情 回复 发表于 2021-5-27 06:11

评分

参与人数 2无忧币 +10 收起 理由
yesfei + 5 很给力!
wuxin9712 + 5

查看全部评分

回复

使用道具 举报

12#
 楼主| 发表于 2021-5-27 06:11:35 | 只看该作者
红毛樱木 发表于 2021-5-27 02:21
发表点个人观点,欢迎来辩。
不带索引的驱动安装工具,它凸现的效率高,只局限你当先的使用环境。
比如LZ ...

期待新的CeoMSX,比较看好,你们一直专注于驱动,积累比较多。做好了广大PE爱好者就有福了。
确实样本比较小,驱动库也不多,只能是一个侧面。
回复

使用道具 举报

13#
发表于 2021-5-27 06:38:02 来自手机 | 只看该作者
红毛樱木 发表于 2021-5-27 02:21
发表点个人观点,欢迎来辩。
不带索引的驱动安装工具,它凸现的效率高,只局限你当先的使用环境。
比如LZ ...

个人觉得没必要上数据库,使用结构化索引格式一般单个驱动包的索引不会超过10MB,这个数据量我觉得用json这类的存储格式就足够了。

点评

受限于我们用pecmd,没有第三方接口,自己硬解析这些东西很吃力。  详情 回复 发表于 2021-5-27 08:50
这个索引好,比较小,结构清晰  详情 回复 发表于 2021-5-27 07:44
回复

使用道具 举报

14#
发表于 2021-5-27 06:52:28 来自手机 | 只看该作者
本帖最后由 窄口牛 于 2021-5-27 06:54 编辑

感觉总裁驱动还是只装最新的,从来不信新的绝对比旧的好,比如驱动里面的遥测就是去年才加的哇,哪就怎么个匹配了?
回复

使用道具 举报

15#
发表于 2021-5-27 07:33:54 | 只看该作者
感谢分享
回复

使用道具 举报

16#
 楼主| 发表于 2021-5-27 07:44:47 | 只看该作者
834772509 发表于 2021-5-27 06:38
个人觉得没必要上数据库,使用结构化索引格式一般单个驱动包的索引不会超过10MB,这个数据量我觉得用json ...

这个索引好,比较小,结构清晰
回复

使用道具 举报

17#
发表于 2021-5-27 08:24:14 | 只看该作者
感谢分享,学习了。
回复

使用道具 举报

18#
发表于 2021-5-27 08:39:16 | 只看该作者
学习大佬们的东东
回复

使用道具 举报

19#
发表于 2021-5-27 08:50:21 来自手机 | 只看该作者
834772509 发表于 2021-5-27 06:38
个人觉得没必要上数据库,使用结构化索引格式一般单个驱动包的索引不会超过10MB,这个数据量我觉得用json ...

受限于我们用pecmd,没有第三方接口,自己硬解析这些东西很吃力。

点评

确实,即便现在的SQLite3也是手动移植到PECMD,工作量也是巨大的(其实相对而言解析json工作量更小)。  详情 回复 发表于 2021-5-27 09:21
回复

使用道具 举报

20#
发表于 2021-5-27 09:21:27 来自手机 | 只看该作者
红毛樱木 发表于 2021-5-27 08:50
受限于我们用pecmd,没有第三方接口,自己硬解析这些东西很吃力。

确实,即便现在的SQLite3也是手动移植到PECMD,工作量也是巨大的(其实相对而言解析json工作量更小)。

点评

看了下json主要就是这些字段 “Path":"Intelx64\\456", "Inf":"igdlh64_new.inf", "Class":"Display", "Arch":["NTamd64"], "Date":"12/15/2015", "Version":"20.19.15.4352", "DriverList": 做出来的inde  详情 回复 发表于 2021-5-27 09:36
总裁驱动兼顾的硬件种类、版本更多吧,用数据库觉得更好。就驱动来说是不是有点杀猪用牛刀之感(纯自己想的,哈哈)  详情 回复 发表于 2021-5-27 09:28
回复

使用道具 举报

21#
 楼主| 发表于 2021-5-27 09:28:30 | 只看该作者
834772509 发表于 2021-5-27 09:21
确实,即便现在的SQLite3也是手动移植到PECMD,工作量也是巨大的(其实相对而言解析json工作量更小)。

总裁驱动兼顾的硬件种类、版本更多吧,用数据库觉得更好。就驱动来说是不是有点杀猪用牛刀之感(纯自己想的,哈哈)
回复

使用道具 举报

22#
 楼主| 发表于 2021-5-27 09:36:39 | 只看该作者
834772509 发表于 2021-5-27 09:21
确实,即便现在的SQLite3也是手动移植到PECMD,工作量也是巨大的(其实相对而言解析json工作量更小)。

看了下json主要就是这些字段
“Path":"Intelx64\\456",
"Inf":"igdlh64_new.inf",
"Class":"Display",
"Arch":["NTamd64"],
"Date":"12/15/2015",
"Version":"20.19.15.4352",
"DriverList":

做出来的index比m大那个cache体积要小2/3,我觉得更优
回复

使用道具 举报

23#
发表于 2021-5-27 10:08:23 | 只看该作者
Double Driver 的信息:

[RestoreInformation]
DriverDesc=Intel(R) Centrino(R) Advanced-N 6205
DriverVersion=15.4.1.1
DriverDate=1-23-2013
DriverProvider=Intel
DriverClass=Net
DriverInfPath=oem15.inf
DriverInfSection=Install_MPCIEX_Gui_6205_AGN_2x2_HMC_WIN7_64_MOW
DriverHardwareID=pci\ven_8086&dev_0085&subsys_13118086
回复

使用道具 举报

24#
发表于 2021-5-27 10:29:17 | 只看该作者


以前G4D不是有个工具F6IMG通过INF文件查找硬件ID, 然后安装驱动.

在硬盘上20个INF文件中查找一个硬件ID,我的电脑需要大概0.3秒(I5处理器).
回复

使用道具 举报

25#
发表于 2021-5-27 10:51:25 | 只看该作者
来观看比较结果
回复

使用道具 举报

26#
发表于 2021-5-27 11:53:42 | 只看该作者
支持一下下。
回复

使用道具 举报

27#
发表于 2021-5-27 12:06:00 | 只看该作者
参观学习.0.0
回复

使用道具 举报

28#
发表于 2021-5-27 15:13:23 来自手机 | 只看该作者
打印机驱动不能正确安装具体是没匹配到驱动还是安装失败?

点评

应该是没匹配到吧,没仔细看了  详情 回复 发表于 2021-5-27 15:55
回复

使用道具 举报

29#
 楼主| 发表于 2021-5-27 15:55:47 | 只看该作者
834772509 发表于 2021-5-27 15:13
打印机驱动不能正确安装具体是没匹配到驱动还是安装失败?

应该是没匹配到吧,没仔细看了
回复

使用道具 举报

30#
发表于 2021-5-27 17:45:56 | 只看该作者
good
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-15 15:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表