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

[讨论] 为什么ZIP时map时读U盘的速度会这么低?求解

[复制链接]
发表于 2011-10-28 08:24:35 | 显示全部楼层 |阅读模式
不确定是否BUG,在这里提出来,看能否解决。
当UD格式为ZIP或BIOS将HDD的格式识别为ZIP时,g4d在map时,速度非常的慢。此时,根据U盘灯的亮度判断是以非常低的速度在读取U盘,而加上--mem参数时,速度将大大的提高,此时,U盘灯非常亮,说明读取U盘的速度很高。
如果是HDD时,有无--mem参数,map时读U盘数据的速度无变化,都能以高速去读取。所以HDD格式时map的速度很高。
不知zip与hdd对map的影响何以这么大?难不成g4d真把zip当成了软驱,以软驱的速度来读盘?
这种现象,在burg中却没有问题,zip与hdd,map时读U盘速度没有区别。

我想知道的是,为什么zip时map读U盘的速度何以会这么低?
举个例子:hotdll修改的tangope.iso native版,zip时 map启动进桌面要2分钟。而hdd时map启动进桌面30秒钟。
杏雨梨云A版普通PE,内核30M,ZIP时,map进桌面12分钟,而map --mem,2分钟进桌面而hdd时map与map --mem速度并不大。

大家如果空,可进行ZIP格式的测试:
以同一个U盘的ZIP格式,同一台机子,同一个内核的PE,按杏雨梨去A版里的PE为测试基准,分别记录一下map 与map --mem该PE进桌面的时间。
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1


[ 本帖最后由 幸运的草 于 2011-10-29 20:20 编辑 ]
发表于 2011-10-28 08:32:34 | 显示全部楼层

回复 #1 幸运的草 的帖子

我测试的结果是
fbinst启动,u盘被识别为ZIP或者FD的时候,
无论是map还是Map --mem 速度都是很慢
回复

使用道具 举报

发表于 2011-10-28 08:34:35 | 显示全部楼层

回复 #1 幸运的草 的帖子

不做UD,ZIP与HDD速度是否也会有差别?
回复

使用道具 举报

发表于 2011-10-28 08:54:40 | 显示全部楼层
使用FBINST启动时读取速度是根据FBINST的探测结果比如一次读一个扇区或N个扇区,取决于FBINST的检测结果.

READ 0X82B8 第一个字节的值就是读取速度.
回复

使用道具 举报

发表于 2011-10-28 08:57:01 | 显示全部楼层
加mem参数,我的PE在865的机器上1分25秒进桌面。不加MEM参数,卡死在加载镜像处。所以我一直都是加MEM启动的。
回复

使用道具 举报

发表于 2011-10-28 08:57:39 | 显示全部楼层
补充,我说的是UD版,zip模式。
回复

使用道具 举报

发表于 2011-10-28 09:13:57 | 显示全部楼层
原帖由 chenall 于 2011-10-28 08:54 发表
使用FBINST启动时读取速度是根据FBINST的探测结果比如一次读一个扇区或N个扇区,取决于FBINST的检测结果.

READ 0X82B8 第一个字节的值就是读取速度.


fbinst一般默认读取速度是0x3f,如果不是这个值,修改成这个值不知道行不行。

@幸运的草

你那有这个情况,查下识别为zip的时候0X82B8的第一个字节,也就是read 0X82B8 得到结果的最后两位数是啥。
HDD的一般是0xff3f803f
回复

使用道具 举报

发表于 2011-10-28 09:20:55 | 显示全部楼层
后期改下0X82B8处的读取速度值,是否可行?
回复

使用道具 举报

发表于 2011-10-28 09:24:51 | 显示全部楼层
改0x82B8处的读取速度值,有条件的可以测试一下,估计不行。
回复

使用道具 举报

发表于 2011-10-28 09:32:27 | 显示全部楼层
原帖由 chenall 于 2011-10-28 08:54 发表
使用FBINST启动时读取速度是根据FBINST的探测结果比如一次读一个扇区或N个扇区,取决于FBINST的检测结果.

READ 0X82B8 第一个字节的值就是读取速度.

楼主测试的时候,并不是fbinst启动的时候
而是g4d接管控制权后,
map iso文件的速度。这个应该与fbinst无关。
回复

使用道具 举报

发表于 2011-10-28 09:44:40 | 显示全部楼层

回复 #10 hotdll 的帖子

还是让幸运的草给出READ 0X82B8的结果先。
回复

使用道具 举报

 楼主| 发表于 2011-10-28 09:58:09 | 显示全部楼层
回复6#、7#、8#、9#。

实际前几天就有这个想法,就是想通过修改某处的值来欺骗G4D,达到和HDD时MAP一样的速度,和ZXW进行过讨论。
经测试,ZIP时,
0x82b8的值为0xff3f003f;;
0x82b9的值为0x3ff3f00
0x8280的值为0x00
在命令行下修改这三处的值为
0x82b9=0x3ff3f80
0x82b8=0x803f803f
0x8280=0x80
然后进行磁盘交换
map (fd0) (hd0)
map (hd0) (hd1)
map --hook
map (hd0)/boot/imgs/tangope.iso (0xff)
map --hook
chainloader (0xff)
boot   测试速度依旧,可见修改这几处的值并不会改变速度。   

#10说的对,此时,已经G4D接管,与FBINS无关。
回复

使用道具 举报

发表于 2011-10-28 10:18:39 | 显示全部楼层
原帖由 幸运的草 于 2011-10-28 09:58 发表
...
0x82b8的值为0xff3f003f;;
0x82b9的值为0x3ff3f00
0x8280的值为0x00
在命令行下修改这三处的值为
0x82b9=0x3ff3f80
0x82b8=0x803f803f
0x8280=0x80
...

这样修改自相矛盾,达不到目的。
只需
write 0x82b9 0x3ff3f80
就行了,0x82b8处不用动。
回复

使用道具 举报

 楼主| 发表于 2011-10-28 10:22:22 | 显示全部楼层

回复 #3 rockrock99 的帖子

刚做了一个测试,恢复U盘为普通,用【BOOTICE: 引导扇区维护工具】-(v0.9.2011.0501)写入G4D引导,加载同时一个ISO,速度依然很慢,同时FB没什么区别。
目前可以肯定就是G4D方面的问题,排除FBINST,理由有:
1、非FB时用BOOTICE(v0.9.2011.0501)写入G4D引导,是同样的问题。
2、用FB时BURG引导没有这方面的问题。
回复

使用道具 举报

发表于 2011-10-28 10:26:48 | 显示全部楼层
if ((fb_status) && (drive == ((fb_status >> 8) & 0xff)))
    max_sec = fb_status & 0xff;
  else

这里就是读取速度,每次最多读取几个扇区.在fb_status的第一个字节
即 0x82b8 & 0xff

首先启动后看看这里的值是多少,如果是3F那速度应该会比较快(取决于BIOS和FBINST的检测结果)

人为去修改加大值影响应该不是很大,主要还是因为BIOS的限制.

如果修改这个值为1那读取大文件的速度会明显偏慢的.
回复

使用道具 举报

 楼主| 发表于 2011-10-28 10:27:01 | 显示全部楼层

回复 #13 pseudo 的帖子

也测试过,不行,速度依旧。实际几天前和ZXW讨论时就进行过测试,同一台机,同一个U盘,做成ZIP及HDD进行测试。当时ZXW就进行了否定。但我还是进行了测试。证实了他的结论。

实际修改0x82b9的值后,0x82b8的值也会自动改变。

[ 本帖最后由 幸运的草 于 2011-10-28 10:28 编辑 ]
回复

使用道具 举报

发表于 2011-10-28 10:28:34 | 显示全部楼层

回复 #14 幸运的草 的帖子

看到很多人喜欢那GRUB4DOS和BURG/GRUB2去比.一点意义也没有

因为BURG/GRUB2有自己的驱动,速度一般情况下都会比较快.

而GRUB4DOS是调用BIOS自身的驱动,速度取决于BIOS.
回复

使用道具 举报

发表于 2011-10-28 10:36:45 | 显示全部楼层

回复 #16 幸运的草 的帖子

0x82b9的前三位,就是0x82b8的后三位。你的修改是画蛇添足。
===========================
c大的测试版出来了,你应该测试这个测试版。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=201647&page=7#pid2327637
回复

使用道具 举报

 楼主| 发表于 2011-10-28 11:18:32 | 显示全部楼层

回复 #17 chenall 的帖子

这种比法应该是有意义的。
和BURG比,进一步定位到了G4D本身,排除了BIOS的问题,因为是同一个BIOS。
map 与map --mem对比,进一步定位到了无参数--mem时map本身,因为同一个BIOS,速度肯定也是相同的。

很菜的问题需要弄懂:
1、是不是BIOS有两个模块,HDD模块,ZIP模块,检测到ZIP,就调用ZIP模块,检测到HDD就调用HDD模块,速度是由模块本身来决定的。
2、当G4D接管后,没有MAP时,就已经决定了调用的模块还是MAP时根据8280及82b9的值来决定调用那个模块?如果是后者,能否人为的通过修改该处的值来改变调用模块?
3、加--mem参数map时,为什么没有这方面的问题。ZIP的盘也会高速读盘?而单单是无参数MAP时,按说应该调用的是同一个模块。

为了验证,排除将HDD识别为BIOS的机,没有HDD模块。在可以根据U盘的实际模式正确识别的BIOS的机上试验。
当HDD时,无参数MAP,ISO。速度很快。修改8280值为0x0,82b9的值为0x3ff3f00(原来后两位是80),并不会因此降速度。
同U,转为ZIP时,正确识别,修改8280值为0x80,82B9的值为0x3ff3f80(原来后两位是00),也并不会因此增速。

[ 本帖最后由 幸运的草 于 2011-10-28 11:52 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-10-28 11:28:49 | 显示全部楼层
注:测试是以第一个修订测试版进行测试的。
用第二个测试版也是一样的结果。

最终问题:

采用G4D引导方式,包括FB、U+,是BIOS给什么模块,G4D就用什么模块还是G4D要什么模块BIOS就给什么模块?
只要这一个答案,其他问题就明了了。

[ 本帖最后由 幸运的草 于 2011-10-28 11:36 编辑 ]
回复

使用道具 举报

发表于 2011-10-28 12:07:43 | 显示全部楼层
原帖由 <i>chenall</i> 于 2011-10-28 10:28 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2327644&ptid=201709" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
看到很多人喜欢那GRUB4DOS和BURG/GRUB2去比.一点意义也没有<br />
<br />
因为BURG/GRUB2有自己的驱动,速度一般情况下都会比较快.<br />
<br />
而GRUB4DOS是调用BIOS自身的驱动,速度取决于BIOS.
<br />
chenall说到点子上了,驱动的问题,假如速度慢了,建议加--mem,这样确实会比不加的快
回复

使用道具 举报

 楼主| 发表于 2011-10-28 12:16:33 | 显示全部楼层

回复 #21 rockrock99 的帖子

问题是为什么加了--mem就会快,是不是加--mem与不加--mem调用的不是同一个驱动模块?

主要是不明所以。

  加上--mem的问题是如果镜像大了。内存偏小就没法执行。同时也会由于内存方面的冲突也会造成启动失败,有反映加--mem启动失败而不加--MEM成功例子。
  当然也可以用加速器,速度也是很快的,但这不属于本贴讨论的范围。
回复

使用道具 举报

发表于 2011-10-28 12:32:11 | 显示全部楼层

回复 #22 幸运的草 的帖子

用最新版的grldr,plop加速器(包括P大的封装)都失效了,要不没有加速效果,要不死机
回复

使用道具 举报

 楼主| 发表于 2011-10-28 13:32:16 | 显示全部楼层

回复 #23 rockrock99 的帖子

我用22日的GRLDR,P大的USB_ACC.0PE,测试正常。在我的ZIP机上加速明显。
回复

使用道具 举报

发表于 2011-10-28 14:29:42 | 显示全部楼层

回复 #24 幸运的草 的帖子

我用22日的GRLDR,Plop 5.0.12,联想T4900V(怀疑是USB-ZIP模式)加速效果明显,可以正常启动PE;技嘉EG31-S2加速载入,但导致不能进入PE

[ 本帖最后由 rockrock99 于 2011-10-28 14:37 编辑 ]
回复

使用道具 举报

发表于 2011-10-28 14:33:48 | 显示全部楼层

回复 #25 rockrock99 的帖子

只要用PLPBT加速成功,启动后都是USBHDD了。
回复

使用道具 举报

 楼主| 发表于 2011-10-28 15:09:42 | 显示全部楼层

回复 #26 zhuyoucheng 的帖子

是的,加速后,查看8280及82B9的值,确实是HDD。

这也给我们解决ZIP MAP速度慢带来了一线希望。也就是PLBPT如何修改使ZIP变成了HDD?,这是关键的,至于加载了2.0的驱动是另外的问题。

也就是在G4D下是可以改变ZIP为HDD的。

[ 本帖最后由 幸运的草 于 2011-10-28 15:14 编辑 ]
回复

使用道具 举报

发表于 2011-10-28 15:56:16 | 显示全部楼层

回复 #27 幸运的草 的帖子

加载plbpt是加载驱动的过程。
加载plbpt的时候,grub4dos将系统控制权交给plbpt,plpbt加载usb2.0驱动后又把系统控制权交个指定的引导设备。

这个过程,内存中的设备信息被更新了。所以g4d获取的设备是usb-hdd。

除非有人开发grub4dos的usb2.0驱动,否则无解。
回复

使用道具 举报

 楼主| 发表于 2011-10-28 16:27:13 | 显示全部楼层

回复 #28 hotdll 的帖子

如果是驱动的问题导致ZIP格式MAP速度慢,是可以理解的。也是正常的。但为何加参数--mem就会很快。难道加了--mem参数就有了驱动?

有空时可以找个内核为30M左右的普通PE。(内置式的,不是外挂的那种)就以杏雨梨云A版中的那个PE。
将U盘做成ZIP格式,分别测试下单map时与加参数--mem时的启动速度,以进入桌面为准就知道了。
我测试加参数1分钟多一点,不加参数要12分钟。内核如果更大,两者的速度差就更大了。当然根据机型的不同,差异也不同。以同机同U盘为例对照。

少驱动应该这两种方式差别不会很大吧。MAP慢一点也是正常的。

[ 本帖最后由 幸运的草 于 2011-10-28 16:29 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-10-28 16:35:50 | 显示全部楼层
以你修改的tangope.iso native版为例,不加参数map 进桌面2分钟。加参数67秒进桌面(我增大了二级内核,ISO体积由23M增大到30M,不增大是57秒)。
HDD加参数与不加都是30秒。

都是ZIP格式,加与不加参数,何以速度差异那么大?

[ 本帖最后由 幸运的草 于 2011-10-28 16:38 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-20 08:52

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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