无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 13560|回复: 40
打印 上一主题 下一主题

单/双核PE自适应

[复制链接]
跳转到指定楼层
1#
发表于 2011-8-12 11:28:36 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
现在的机器已经普及双核(或多核)了,相应地使用双核PE也许有好处。例如更好的性能(只理论想象,未实际比较过)。

当然,有人说,PE主要用来搞维护,单核PE兼容性好,够用了,用不着弄什么双核PE。那么,以下内容就不必看了。
=======================================================================

双核PE与单核PE一个直观上的差异是,在任务管理器中前者可以看到两个CPU的状态图:


而后者只看到一个:


双核PE早些年已经有人做过。其不足之处是兼容性比单核PE差。主要表现在把双核PE用于单核机器时,不加载网络还好,一加载网络就死机没商量。
而单核PE,用于双核机器没问题,顶多把双核当单核用,没发挥双核性能而已。

所以,以往大家PE都不采用双核。即使提供双核PE,一般也同时提供单核PE,由用户手工选择使用哪个。



本贴讨论单双核自适应问题,无需手选。具体思路是先检测CPU是单核还是多核,然后根据结果选择启动单核PE还是双核PE。

这里提供一个检测工具:CPUID。它作为grub4dos外部命令。


参考菜单:

title 启动单双核自适应PE
#假定CPUID在启动分区根目录
(bd)/CPUID || echo -n
set cores=1
checkrange 1:-1 read 0x60000 && set cores=2
#核心数现已存放在变量cores。其值1表示单核,2表示双核(及多核)。

#显示检测结果
if “%cores%”==“1” echo 检测到单核cpu
if “%cores%”==“2” echo 检测到多核cpu

#以下根据cores值分别启动单双核PE。

#假定单核、双核pe的引导文件分别是peldr1.bin和peldr2.bin
if “%cores%”==“1” chainload (bd)/peldr1.bin
if “%cores%”==“2” chainload (bd)/peldr2.bin


附件里有简化的0PE用于测试单双核自适应效果。

其中
0PE\XP\NTKRNLMP.EX_
是可剪裁外置双核组件。
当有此组件时,在双核机器上会自动启用双核心PE,在单核机器上会自动启用单核心PE。
当无此组件时,无论单双核机器,一律启用单核心PE。

0PE是动态核心PE,单双核合一、组件化了。其它PE一般是静态核心PE,要准备两个不同内核。
目前,PE双核化条件已经成熟。

已知问题:目前这个CPUID工具在vm虚拟机上测不出双核。但不影响使用PE。

[ 本帖最后由 pseudo 于 2011-8-12 21:41 编辑 ]

双核测试8.12.rar

377 Bytes, 下载次数: 670, 下载积分: 无忧币 -2

2#
 楼主| 发表于 2011-8-12 11:29:05 | 显示全部楼层
想起一个问题。
把单核、双核所需文件都放入pe内核,配以适当的txtstup.sif设置,window pe本身应该就有自动检测并启用单核/双核支持的机制。
就是说,单核、双核并不是对立的。

不过本贴采用事先检测的方式,灵活、主动、组件化。
对于单核老机,并不需要读取NTKRNLMP.EX_。
启动初期读盘数据量比较少,对读U盘慢的机器的U启是有利的。

[ 本帖最后由 pseudo 于 2011-8-13 00:17 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2011-8-12 21:43:20 | 显示全部楼层

回复 #7 ksafei 的帖子

#1楼已修正,请重新下载测试。
回复

使用道具 举报

4#
 楼主| 发表于 2011-8-13 08:30:28 | 显示全部楼层

回复 #20 zxw 的帖子

出中文主菜单时按c,执行
ls (hd-1,0)/bin/cpuid
fat del (hd-1,0)/bin/cpuid
ls (hd-1,0)/bin/cpuid
再按esc。
回复

使用道具 举报

5#
 楼主| 发表于 2011-8-13 08:34:50 | 显示全部楼层
回复 #14 zqywult 的帖子
目前不适用于虚拟机。

回复 #19 happy_tin 的帖子
什么启动介质?usbzip格式?
回复

使用道具 举报

6#
 楼主| 发表于 2011-8-13 15:41:16 | 显示全部楼层
原帖由 zxw 于 2011-8-13 08:56 发表
与cpuid无关。
换0619版grub.exe启动成功,并成功识别双核。


那就跟grub4dos版本有关了。

试试
cat --locate=cycles=1 --replace=cycles=-1 (hd-1,0)/kernel/auto_exe.bat
让-1在
-1,0,1,2,3,4,5
之间变化,可能有适当的取值。
回复

使用道具 举报

7#
 楼主| 发表于 2011-8-13 19:12:36 | 显示全部楼层
原帖由 htt_rd 于 2011-8-12 14:00 发表
哇!
    沒想到P大與neo4026版大 2008年在這裡 [[讨论]关于hal.dll与ntoskrnl.exe自动选择的问题] ,現在開花結果了。
P大真是個不放棄解決問題的人。
請問P大;給多核用的setupldr.bin是不是要經過修改,如果是、需要改哪些地方呢?


我用同一个。
回复

使用道具 举报

8#
 楼主| 发表于 2011-8-13 23:56:15 | 显示全部楼层

回复 #32 zxw 的帖子

自己好了就好。

要重现问题,只有等你下次从外面回来再试了。
回复

使用道具 举报

9#
 楼主| 发表于 2013-7-6 11:36:54 | 显示全部楼层
1e3e 发表于 2011-8-21 00:18
学习了,据说双核性能不会提高好多

后来,双核03pe终于找到了发挥性能优势的用场:据论坛一键恢复区网友反馈,使用03pe运行贝壳还原工具时,双核的比单核的快一倍左右。

双核pe发挥作用的场合:硬件是双核(这里说的双核泛指多核)的,而且软件是设计为可以利用多核功能的。
如果硬件是单核cpu的老机,即使软件设计为可以利用多核功能并使用多核pe,也只有单核性能;
如果软件是没有利用多核功能的老软件,例如旧版ghost,那么多核cpu、多核pe无从发挥,基本上也只有单核性能;
如果硬件是多核cpu,软件设计为可以利用多核功能,但使用单核pe,也只有单核性能。

0pe是最早也是目前唯一自动识别单双核并以可剪裁组件方式支持双(多)核的03/xppe。
在单核机器上,不会加载多核组件,由于多核组件外置,pe核心体积小,启动快。

注意只有xppe/03pe谈单双核问题,7pe/8pe都是多核pe,不存在单双核问题。
现在谈单双核,有点过时。

点评

还好我一直保留P大03PE的双核组件!实机测试CPU温度最低50上下,最高也60上下,个人感觉挺满意!不知道P大下一版做哪些方面的更新?能否预告一下,嘻嘻。。。  详情 回复 发表于 2013-7-6 11:58
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-14 12:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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