系统为啥这么慢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统为啥这么慢相关的知识,希望对你有一定的参考价值。
@_@
一、软件篇1、设定虚拟内存
硬盘中有一个很宠大的数据交换文件,它是系统预留给虚拟内存作暂存的地方,很多应用程序都经常会使用到,所以系统需要经常对主存储器作大量的数据存取,因此存取这个档案的速度便构成影响计算机快慢的非常重要因素!一般Windows预设的是由系统自行管理虚拟内存,它会因应不同程序所需而自动调校交换档的大小,但这样的变大缩小会给系统带来额外的负担,令系统运作变慢!有见及此,用户最好自定虚拟内存的最小值和最大值,避免经常变换大小。要设定虚拟内存,在“我的电脑”上按右键选择“属性”,在“高级”选项里的“效能”的对话框中,对“虚拟内存”进行设置。
3、检查应用软件或者驱动程序
有些程序在电脑系统启动会时使系统变慢。如果要是否是这方面的原因,我们可以从“安全模式”启动。因为这是原始启动,“安全模式”运行的要比正常运行时要慢。但是,如果你用“安全模式”启动发现电脑启动速度比正常启动时速度要快,那可能某个程序是导致系统启动速度变慢的原因。
4、桌面图标太多会惹祸
桌面上有太多图标也会降低系统启动速度。Windows每次启动并显示桌面时,都需要逐个查找桌面快捷方式的图标并加载它们,图标越多,所花费的时间当然就越多。同时有些杀毒软件提供了系统启动扫描功能,这将会耗费非常多的时间,其实如果你已经打开了杀毒软件的实时监视功能,那么启动时扫描系统就显得有些多余,还是将这项功能禁止吧! 建议大家将不常用的桌面图标放到一个专门的文件夹中或者干脆删除!
5、ADSL导致的系统启动变慢
默认情况下Windows XP在启动时会对网卡等网络设备进行自检,如果发现网卡的IP地址等未配置好就会对其进行设置,这可能是导致系统启动变慢的真正原因。这时我们可以打开“本地连接”属性菜单,双击“常规”项中的“Internet协议”打开“TCP/IP属性”菜单。将网卡的IP地址配置为一个在公网(默认的网关是192.168.1.1)中尚未使用的数值如192.168.1.X,X取介于2~255之间的值,子网掩码设置为255.255.255.0,默认网关和DNS可取默认设置。
6、字体对速度的影响
虽然 微软 声称Windows操作系统可以安装1000~1500种字体,但实际上当你安装的字体超过500 种时,就会出现问题,比如:字体从应用程序的字体列表中消失以及Windows的启动速度大幅下降。在此建议最好将用不到或者不常用的字体删除,为避免删除后发生意外,可先进行必要的备份。
7、删除随机启动程序
何谓随机启动程序呢?随机启动程序就是在开机时加载的程序。随机启动程序不但拖慢开机时的速度,而且更快地消耗计算机资源以及内存,一般来说,如果想删除随机启动程序,可去“启动”清单中删除,但如果想详细些,例如是QQ、popkiller 之类的软件,是不能在“启动”清单中删除的,要去“附属应用程序”,然后去“系统工具”,再去“系统信息”,进去后,按上方工具列的“工具”,再按“系统组态编辑程序”,进去后,在“启动”的对话框中,就会详细列出在启动电脑时加载的随机启动程序了!XP系统你也可以在“运行”是输入Msconfig调用“系统配置实用程序”才终止系统随机启动程序,2000系统需要从XP中复制msconfig程序。
8、取消背景和关闭activedesktop
不知大家有否留意到,我们平时一直摆放在桌面上漂亮的背景,其实是很浪费计算机资源的!不但如此,而且还拖慢计算机在执行应用程序时的速度!本想美化桌面,但又拖慢计算机的速度,这样我们就需要不在使用背景了,方法是:在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,选“无”,在“外观”的对话框中,在桌面预设的青绿色,改为黑色......至于关闭activedesktop,即是叫你关闭从桌面上的web画面,例如在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,有一幅背景,名为Windows XX,那副就是web画面了!所以如何系统配置不高就不要开启。
10、把Windows变得更苗条
与DOS系统相比,Windows过于庞大,而且随着你每天的操作,安装新软件、加载运行库、添加新游戏等等使得它变得更加庞大,而更为重要的是变大的不仅仅是它的目录,还有它的 注册表 和运行库。因为即使删除了某个程序,可是它使用的DLL文件仍然会存在,因而随着使用日久,Windows的启动和退出时需要加载的DLL动态链接库文件越来越大,自然系统运行速度也就越来越慢了。这时我们就需要使用一些彻底删除DLL的程序,它们可以使Windows恢复苗条的身材。建议极品玩家们最好每隔两个月就重新安装一遍Windows,这很有效。
11、更改系统开机时间
虽然你已知道了如何新增和删除一些随机启动程序,但你又知不知道,在开机至到进入Windows的那段时间,计算机在做着什么呢?又或者是,执行着什么程序呢?那些程序,必定要全部载完才开始进入Windows,你有否想过,如果可删除一些不必要的开机时的程序,开机时的速度会否加快呢?答案是会的!想要修改,可按"开始",选"执行",然后键入win.ini,开启后,可以把以下各段落的内容删除,是删内容,千万不要连标题也删除!它们包括:[compatibility]、[compatibility32]、[imecompatibility]、[compatibility95]、[modulecompatibility]和[embedding]。
二、硬件篇
1、Windows系统自行关闭硬盘DMA模式
硬盘的DMA模式大家应该都知道吧,硬盘的PATA模式有DMA33、DMA66、DMA100和DMA133,最新的SATA-150都出来了!一般来说现在大多数人用的还是PATA模式的硬盘,硬盘使用DMA模式相比以前的PIO模式传输的速度要快2~8倍。DMA模式的起用对系统的性能起到了实质的作用。但是你知道吗?Windows 2000、XP、2003系统有时会自行关闭硬盘的DMA模式,自动改用PIO模式运行!这就造成在使用以上系统中硬盘性能突然下降,其中最明显的现象有:系统起动速度明显变慢,一般来说正常Windows XP系统启动时那个由左向右运动的滑条最多走2~4次系统就能启动,但这一问题发生时可能会走5~8次或更多!而且在运行系统时进行硬盘操作时明显感觉变慢,在运行一些大的软件时CPU占用率时常达到100%而产生停顿,玩一些大型3D游戏时画面时有明显停顿,出现以上问题时大家最好看看自己硬盘的DMA模式是不是被Windows 系统自行关闭了。查看自己的系统是否打开DMA模式:
a. 双击“管理工具”,然后双击“计算机管理”;
b. 单击“系统工具”,然后单击“设备管理器”;
c. 展开“IDE ATA/ATAPI 控制器”节点;
d. 双击您的“主要IDE控制器”;
2、CPU 和风扇是否正常运转并足够制冷
当CPU风扇转速变慢时,CPU本身的温度就会升高,为了保护CPU的安全,CPU就会自动降低运行频率,从而导致计算机运行速度变慢。有两个方法检测CPU的温度。你可以用“手指测法”用手指试一下处理器的温度是否烫手,但是要注意的是采用这种方法必须先拔掉电源插头,然后接一根接地线来防止身上带的静电击穿CPU以至损坏。另一个比较科学的方法是用带感温器的万用表来检测处理器的温度。
因为处理器的种类和型号不同,合理温度也各不相同。但是总的来说,温度应该低于 110 度。如果你发现处理器的测试高于这处温度,检查一下机箱内的风扇是否正常运转。
3、USB和扫描仪造成的影响
由于Windows 启动时会对各个驱动器(包括光驱)进行检测,因此如果光驱中放置了光盘,也会延长电脑的启动时间。所以如果电脑安装了扫描仪等设备,或在启动时已经连接了USB硬盘,那么不妨试试先将它们断开,看看启动速度是不是有变化。一般来说,由于USB接口速度较慢,因此相应设备会对电脑启动速度有较明显的影响,应该尽量在启动后再连接USB设备。如果没有USB设备,那么建议直接在Bios设置中将USB功能关闭。
4、是否使用了磁盘压缩
因为“磁盘压缩”可能会使电脑性能急剧下降,造成系统速度的变慢。所以这时你应该检测一下是否使用了“磁盘压缩”,具体操作是在“我的电脑”上点击鼠标右键,从弹出的菜单选择“属性”选项,来检查驱动器的属性。
5、网卡造成的影响
只要设置不当,网卡也会明显影响系统启动速度,你的电脑如果连接在局域网内,安装好网卡驱动程序后,默认情况下系统会自动通过DHCP来获得IP地址,但大多数公司的局域网并没有DHCP服务器,因此如果用户设置成“自动获得IP地址”,系统在启动时就会不断在网络中搜索DHCP 服务器,直到获得IP 地址或超时,自然就影响了启动时间,因此局域网用户最好为自己的电脑指定固定IP地址。
6、文件夹和打印机共享
安装了Windows XP专业版的电脑也会出现启动非常慢的时候,有些时候系统似乎给人死机的感觉,登录系统后,桌面也不出现,电脑就像停止反应,1分钟后才能正常使用。这是由于使用了Bootvis.exe 程序后,其中的Mrxsmb.dll文件为电脑启动添加了67秒的时间!
要解决这个问题,只要停止共享文件夹和打印机即可:选择“开始→设置→网络和拨号连接”,右击“本地连接”,选择“属性”,在打开的窗口中取消“此连接使用下列选定的组件”下的“ Microsoft 网络的文件和打印机共享”前的复选框,重启电脑即可。
7、系统配件配置不当
一些用户在组装机器时往往忽略一些小东西,从而造成计算机整体配件搭配不当,存在着速度上的瓶颈。比如有些朋友选的CPU档次很高,可声卡等却买了普通的便宜货,其实这样做往往是得不偿失。因为这样一来计算机在运行游戏、播放影碟时由于声卡占用CPU资源较高且其数据传输速度较慢,或者其根本无硬件解码而需要采用软件解码方式,常常会引起声音的停顿,甚至导致程序的运行断断续续。又如有些朋友的机器是升了级的,过去老机器上的一些部件如内存条舍不得抛弃,装在新机器上照用,可是由于老内存的速度限制,往往使新机器必须降低速度来迁就它,从而降低了整机的性能,极大地影响了整体的运行速度。
9、断开不用的网络驱动器
为了消除或减少 Windows 必须重新建立的网络连接数目,建议将一些不需要使用的网络驱动器断开,也就是进入“我的电脑”,右击已经建立映射的网络驱动器,选择“断开”即可。
10、缺少足够的内存
Windows操作系统所带来的优点之一就是多线性、多任务,系统可以利用CPU来进行分时操作,以便你同时做许多事情。但事情有利自然有弊,多任务操作也会对你的机器提出更高的要求。朋友们都知道即使是一个最常用的WORD软件也要求最好有16MB左右的内存,而运行如3D MAX等大型软件时,64MB的内存也不够用。所以此时系统就会自动采用硬盘空间来虚拟主内存,用于运行程序和储存交换文件以及各种临时文件。由于硬盘是机械结构,而内存是电子结构,它们两者之间的速度相差好几个数量级,因而使用硬盘来虚拟主内存将导致程序运行的速度大幅度降低。
11、硬盘空间不足
使用Windows系统平台的缺点之一就是对文件的管理不清楚,你有时根本就不知道这个文件对系统是否有用,因而Windows目录下的文件数目越来越多,容量也越来越庞大,加之现在的软件都喜欢越做越大,再加上一些系统产生的临时文件、交换文件,所有这些都会使得硬盘可用空间变小。当硬盘的可用空间小到一定程度时,就会造成系统的交换文件、临时文件缺乏可用空间,降低了系统的运行效率。更为重要的是由于我们平时频繁在硬盘上储存、删除各种软件,使得硬盘的可用空间变得支离破碎,因此系统在存储文件时常常没有按连续的顺序存放,这将导致系统存储和读取文件时频繁移动磁头,极大地降低了系统的运行速度。
12、硬盘分区太多也有错
如果你的Windows 2000没有升级到SP3或SP4,并且定义了太多的分区,那么也会使启动变得很漫长,甚至挂起。所以建议升级最新的SP4,同时最好不要为硬盘分太多的区。因为Windows 在启动时必须装载每个分区,随着分区数量的增多,完成此操作的时间总量也会不断增长。
三、病毒篇
如果你的计算机感染了病毒,那么系统的运行速度会大幅度变慢。病毒入侵后,首先占领内存这个据点,然后便以此为根据地在内存中开始漫无休止地复制自己,随着它越来越庞大,很快就占用了系统大量的内存,导致正常程序运行时因缺少主内存而变慢,甚至不能启动;同时病毒程序会迫使CPU转而执行无用的垃圾程序,使得系统始终处于忙碌状态,从而影响了正常程序的运行,导致计算机速度变慢。下面我们就介绍几种能使系统变慢的病毒。
1、使系统变慢的bride病毒
病毒类型:黑客程序
发作时间:随机
传播方式:网络
感染对象:网络
警惕程度:★★★★
病毒介绍:
此病毒可以在Windows 2000、Windows XP等操作系统环境下正常运行。运行时会自动连接www.hotmail.com网站,如果无法连接到此网站,则病毒会休眠几分钟,然后修改注册表将自己加入注册表自启动项,病毒会释放出四个病毒体和一个有漏洞的病毒邮件并通过邮件系统向外乱发邮件,病毒还会释放出FUNLOVE病毒感染局域网计算机,最后病毒还会杀掉已知的几十家反病毒软件,使这些反病毒软件失效。
病毒特征
如果用户发现计算机中有这些特征,则很有可能中了此病毒。
·病毒运行后会自动连接www.hotmail.com网站。
·病毒会释放出Bride.exe,Msconfig.exe,Regedit.exe三个文件到系统目录;释放出:Help.eml, Explorer.exe文件到桌面。
·病毒会在注册表的HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun项中加入病毒Regedit.exe的路径。
·病毒运行时会释放出一个FUNLOVE病毒并将之执行,而FUNLOVE病毒会在计算机中大量繁殖,造成系统变慢,网络阻塞。
·病毒会寻找计算机中的邮件地址,然后按照地址向外大量发送标题为:<被感染的计算机机名>(例:如果用户的计算机名为:张冬, 则病毒邮件的标题为:张冬)的病毒邮件。
·病毒还会杀掉几十家国外著名的反病毒软件。
用户如果在自己的计算机中发现以上全部或部分现象,则很有可能中了Bride(Worm.bride)病毒,请用户立刻用手中的杀毒软件进行清除。
2、使系统变慢的阿芙伦病毒
病毒类型:蠕虫病毒
发作时间:随机
传播方式:网络/文件
感染对象:网络
警惕程度:★★★★
病毒介绍:
此病毒可以在Windows 9X、Windows NT、Windows 2000、Windows XP等操作系统环境下正常运行。病毒运行时将自己复到到TEMP、SYSTEM、RECYCLED目录下,并随机生成文件名。该病毒运行后,会使消耗大量的系统资源,使系统明显变慢,并且杀掉一些正在运行的反病毒软件,建立四个线程在局域网中疯狂传播。
病毒特征
如果用户发现计算机中有这些特征,则很有可能中了此病毒:
·病毒运行时会将自己复到到TEMP、SYSTEM、RECYCLED目录下,文件名随机
·病毒运行时会使系统明显变慢
·病毒会杀掉一些正在运行的反病毒软件
·病毒会修改注册表的自启动项进行自启动
·病毒会建立四个线程在局域网中传播
用户如果在自己的计算机中发现以上全部或部分现象,则很有可能中了“阿芙伦(Worm.Avron)”病毒,由于此病毒没有固定的病毒文件名,所以,最好还是选用杀毒软件进行清除。
3、恶性蠕虫 震荡波
病毒名称: Worm.Sasser
中文名称: 震荡波
病毒别名: W32/Sasser.worm [Mcafee]
病毒类型: 蠕虫
受影响系统:WinNT/Win2000/WinXP/Win2003
病毒感染症状:
·莫名其妙地死机或重新启动计算机;
·系统速度极慢,cpu占用100%;
·网络变慢;
·最重要的是,任务管理器里有一个叫"avserve.exe"的进程在运行!
破坏方式:
·利用WINDOWS平台的 Lsass 漏洞进行广泛传播,开启上百个线程不停攻击其它网上其它系统,堵塞网络。病毒的攻击行为可让系统不停的倒计时重启。
·和最近出现的大部分蠕虫病毒不同,该病毒并不通过邮件传播,而是通过命令易受感染的机器
下载特定文件并运行,来达到感染的目的。
·文件名为:avserve.exe
解决方案:
·请升级您的操作系统,免受攻击
·请打开个人防火墙屏蔽端口:445、5554和9996,防止名为avserve.exe的程序访问网络
·手工解决方案:
首先,若系统为WinMe/WinXP,则请先关闭系统还原功能;
步骤一,使用进程程序管理器结束病毒进程
右键单击任务栏,弹出菜单,选择“任务管理器”,调出“Windows任务管理器”窗口。在任务管理器中,单击“进程”标签,在例表栏内找到病毒进程“avserve.exe”,单击“结束进程按钮”,点击“是”,结束病毒进程,然后关闭“Windows任务管理器”;
步骤二,查找并删除病毒程序
通过“我的电脑”或“资源管理器”进入 系统安装目录(Winnt或windows),找到文件“avser ve.exe”,将它删除;然后进入系统目录(Winntsystem32或windowssystem32),找 到文件"*_up.exe", 将它们删除;
步骤三,清除病毒在注册表里添加的项
打开注册表编辑器: 点击开始——>运行, 输入REGEDIT, 按Enter;
在左边的面板中, 双击(按箭头顺序查找,找到后双击):
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun
在右边的面板中, 找到并删除如下项目:"avserve.exe" = %SystemRoot%avserve.exe
关闭注册表编辑器。
第二部份 系统加速
一、Windows 98
1、不要加载太多随机启动程序
不要在开机时载入太多不必要的随机启动程序。选择“开始→程序→附件→系统工具→系统信息→系统信息对话框”,然后,选择“工具→系统配置实用程序→启动”,只需要internat.exe前打上钩,其他项都可以不需要,选中后确定重起即可。
2、转换系统文件格式
将硬盘由FAT16转为FAT32。
3、不要轻易使用背景
不要使用ActiveDesktop,否则系统运行速度会因此减慢(右击屏幕→寻显示器属性→Web标签→将其中关于“活动桌面”和“频道”的选项全部取消)。
4、设置虚拟内存
自己设定虚拟内存为机器内存的3倍,例如:有32M的内存就设虚拟内存为96M,且最大值和最小值都一样(此设定可通过“控制面板→系统→性能→虚拟内存”来设置)。
5、一些优化设置
a、到控制面板中,选择“系统→性能→ 文件系统”。将硬盘标签的“计算机主要用途”改为网络服务器,“预读式优化"调到全速。
b、将“软盘”标签中“每次启动就搜寻新的软驱”取消。
c、CD-ROM中的“追加高速缓存”调至最大,访问方式选四倍速或更快的CD-ROM。
6、定期对系统进行整理
定期使用下列工具:磁盘扫描、磁盘清理、碎片整理、系统文件检查器(ASD)、Dr�Watson等。
二、Windows 2000
1、升级文件系统
a、如果你所用的操作系统是win 9x与win 2000双重启动的话,建议文件系统格式都用FAT32格式,这样一来可以节省硬盘空间,二来也可以9x与2000之间能实行资源共享。
提醒:要实现这样的双重启动,最好是先在纯DOS环境下安装完9x在C区,再在9x中或者用win 2000启动盘启动在DOS环境下安装2000在另一个区内,并且此区起码要有800M的空间以上
b、如果阁下只使用win 2000的话,建议将文件系统格式转化为NTFS格式,这样一来可节省硬盘空间,二来稳定性和运转速度更高,并且此文件系统格式有很好的纠错性;但这样一来,DOS和win 9x系统就不能在这文件系统格式中运行,这也是上面所说做双启动最好要用FAT32格式才能保证资源共享的原因。而且,某些应用程序也不能在此文件系统格式中运行,大多是DOS下的游戏类。
提醒:在win 2000下将文件系统升级为NTFS格式的方法是,点击“开始-程序-附件”选中“命令提示符”,然后在打开的提示符窗口输入"convert drive_letter:/fs:ntfs",其中的"drive"是你所要升级的硬盘分区符号,如C区;还需要说明的是,升级文件系统,不会破坏所升级硬盘分区里的文件,无需要备份。
· 再运行“添加-删除程序”,就会看见多出了个“添加/删除 Windows 组件”的选项;
b、打开“文件夹选项”,在“查看”标签里选中“显示所有文件和文件夹”,此时在你安装win 2000下的区盘根目录下会出现Autoexec.bat和Config.sys两个文件,事实上这两个文件里面根本没有任何内容,可以将它们安全删除。
c、右击“我的电脑”,选中“管理”,在点“服务和应用程序”下的“服务”选项,会看见win 2000上加载的各个程序组见,其中有许多是关于局域网设置或其它一些功能的,你完全可以将你不使用的程序禁用;
如:Alertr,如果你不是处于局域网中,完全可以它设置为禁用;还有Fax Service,不发传真的设置成禁用;Print Spooler,没有打印机的设置成制用;Uninterruptible power Supply,没有UPS的也设置成禁用,这些加载程序你自己可以根据自己实际情况进行设置。
各个加载程序后面都有说明,以及运行状态;选中了要禁用的程序,右击它,选“属性”,然后单击停止,并将“启动类型”设置为“手动”或者“已禁用”就行了
d、关掉调试器Dr. Watson;
运行drwtsn32,把除了“转储全部线程上下文”之外的全都去掉。否则一旦有程序出错,硬盘会响很久,而且会占用很多空间。如果你以前遇到过这种情况,请查找user.dmp文件并删掉,可能会省掉几十兆的空间。这是出错程序的现场,对我们没用。另外蓝屏时出现的memory.dmp也可删掉。可在我的电脑/属性中关掉
参考资料:百度历史资料 参考技术A 病毒
运行程序太多 参考技术B 使Windows XP快上几倍的三招,设置起来非常简单,但是文章又不乏实用性。
1、减少开机磁盘扫描等待时间,开始→运行,键入:chkntfs /t:0
2、删除系统备份文件:
在各种软硬件安装妥当之后,其实XP需要更新文件的时候就很少了。开始→运行,敲入:sfc.exe /purgecache 然后回车即可,近3xxMb。
3、压缩文件夹:
这是一个相当好的优化,Windows XP内置了对.ZIP文件的,我们可以把zip文件当成文件夹浏览。不过,系统要使用部分资源来实现 这一
功能,因此禁用这一功能可以提升系统性能。实现方法非常简单,只需取消zipfldr.dll的注册就可以了,点击开始——运行,
敲入: regsvr32 /u zipfldr.dll。然后回车即可。
千元电脑跑Win XP全攻略及心得
作者:阿榕在线 时间:2005-7-5 4:15:52 来源:阿榕在线 点击次数:1040
首先介绍一下偶的“笨4”电脑主要零件,CPU:赛扬800 。内存:128M+32M。 硬盘:20个G。 显卡、声卡:主板集成。 主板:什么型号我还真就不知道。但知道一点,市面上这种型号的主板已经停产,坏一个就少一个。 显示器:17普屏。这就是偶一千元装的二手电脑,即使不优化,在Win98下玩像传奇那种对大脑和电脑都不需要太讲究的游戏还是绰绰有余的。这还是辽阳的价格,要是在鞍山电脑城,还能和老板侃出来一个二手光驱钱。另外,偶一个吃大锅饭的兄弟还在单位库房给我弄了个三星光驱、杂牌子软驱、还有一块32的内存条。不要小看这个32M的内存条,没它,想带起来XP,还真是个力气活。微软强调XP最低配置为256M内存,不要听它放屁,128M的要是带着有点累,去二手电脑市场再花二三十元买一个32M的加上,肯定能让XP“折腾”起来。但前提是必须得手动优化,否则这种二手配置装XP和老牛没什么区别。
呵呵,偶的配置够垃圾吧?你可能怀疑了,这也能带起来XP?对,没错,盖茨用啥咱用啥,他能研究,咱就能用。不仅能带起来,而且要让它像98一样飘。(当然,偶不是指让XP恢复像98一样的朴素页面,虽然那样能更快,但以下我介绍的方法,足够快了。没必要非得蹂躏自己的眼睛。)
下面,我主要讲一下对系统的各种优化,这都是从电子图书或帖子中学来的,首先向各位将注册表修改意见传到网上的兄弟表示感谢。
要让1K元的电脑速度飞起来,难免要对注册表下手。改之前,建议先去软件市场买张XP盗版安装盘,因为注册表改不好,就容易把系统弄疯。(附:建议像偶一样菜的选手去软件市场买一种淡蓝色包装的XP安装盘,叫什么名偶忘了,那种安装盘安装几乎不需要用大脑,而且安装后SP1,SP2补丁都自动打上,且一些常用的软件像BT,网际快车,QQ什么的都直接装上。鞍山东山街是统一盗版价,3元,别被砸了,别以为XP就得多掏银子)
千万不要因为我说注册表改不好系统就崩溃而手软,咱手里不是有安装盘吗?改明白之前,连备份都不用做,就当是练习装系统好了。
R U ready?Let‘s go
一、加速计划
WinXP的启动会有许多影响速度的功能,尽管ms说已经作最优化处理过,但对我们来说还是有许多可定制之处。我一般是这样来做的。
1、修改注册表的run键,取消那几个不常用的东西,比如Windows Messenger 。启用注册表管理器:开始→运行→Regedit→找到 “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\MSMSGS” /BACKGROUND 这个键值,右键→删除,世界清静多了,顺便把那几个什么cfmon的都干掉吧。
2、修改注册表来减少预读取,减少进度条等待时间,效果是进度条跑一圈就进入登录画面了,开始→运行→regedit动注册表编辑器,找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management \PrefetchParameters, 有一个键EnablePrefetcher把它的数值改为“1”就可以了。另外不常更换硬件的朋友可以在系统属性中把总线设备上面的设备类型设置为none(无)。
3、关闭系统属性中的特效,这可是简单有效的提速良方。点击开始→控制面板→系统→高级→性能→设置→在视觉效果中,设置为调整为最佳性能→确定即可。这样桌面就会和win2000很相似的,我还是挺喜欢XP的蓝色窗口,所以在“在窗口和按钮上使用视觉样式”打上勾,这样既能看到漂亮的蓝色界面,又可以加快速度。
4、我用Windows commadner+Winrar来管理文件,Win XP的ZIP支持对我而言连鸡肋也不如,因为不管我需不需要,开机系统就打开个zip支持,本来就闲少的系统资源又少了一分,点击开始→运行,敲入:“regsvr32 /u zipfldr.dll”双引号中间的,然后回车确认即可,成功的标志是出现个提示窗口,内容大致为:zipfldr.dll中的Dll UnrgisterServer成功。
5、据说XP的一个系统服务Qos,这个调度要占用20%的网络带宽,像我们这种一毛不拔的人是无法忍受的,去掉方法是:开始菜单→运行→键入 gpedit.msc ,出现“组策略”窗口, 展开 “管理模板“→“网络” , 展开 “QoS数据包调度程序”, 在右边窗右键单击“限制可保留带宽” ,在属性中的“设置”中有“限制可保留带宽” ,选择“已禁用”,确定即可。当上述修改完成并应用后,用户在网络连接的属性对话框内的一般属性标签栏中如果能够看到“QoS Packet Scheduler(QoS数据包调度程序)”。说明修改成功,否则说明修改失败,顺便把网络属性中的那个Qos协议也一起干掉(卸载)吧。
6、快速浏览局域网络的共享
通常情况下,Windows XP在连接其它计算机时,会全面检查对方机子上所有预定的任务,这个检查会让你等上30秒钟或更多时间。去掉的方法是开始→ 运行→Regedit→在注册表中找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ Current Version\Explorer\RemoteComputer\NameSpace。在此键值下,会有个D6277990- 4C6A-11CF-8D87-00AA0060F5BF键,把它删掉后,重新启动计算机,Windows XP就不再检查预定任务了, hoho~~~ ,速度明显提高啦!
7、关掉调试器Dr. Watson
我好像从win95年代开始一次也没用过这东西,可以这样取消:打开册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\AeDebug子键分支,双击在它下面的Auto键值名称,将其“数值数据” 改为0,最后按F5刷新使设置生效,这样就取消它的运行了。沿用这个思路,我们可以把所有具备调试功能的选项取消,比如蓝屏时出现的memory.dmp,在“我的电脑→属性→高级→设置→写入调试信息→选择无”等等。
8、记得关了错误报告,KAO !这东西搞得我像个微软免费的测试员似的:点击控制面板---->系统---->高级---->右下角--->错误报告---->禁用错误汇报——>确定!
9、去掉磁盘扫描的等待时间
当Windows XP非正9关机时,重新开机需要等待10秒才会开始磁盘扫描。如果你觉得这10秒钟太长,那就干脆让它变成0秒吧!按下“开始”→“所有程序”→“附件”→“命令提示符”,在提示符下键入“CHKNTFS /T:0”然后回车,这样下次就不用等待那漫长的10秒了
10、缩短启动时间
推荐大家使用微软发布的Bootvis软件,它能够对系统进行自动优化,以缩短启动所用的时间,在“Trace”中选择“Optimize System”然后重新启动即可;另外也可以通过Windows XP内建的MsConfig设置程序减少启动时所加载的程序来缩短启动时间,只在运行中输入启动“msconfig”再通过“Startup”进行相关设置即可。
都忙乎完了吗?还没改完呢,接着来:
二、瘦身计划
1、在各种软硬件安装妥当之后,其实XP需要更新文件的时候就很少了。删除系统备份文件吧:开始→运行→sfc.exe /purgecache近3xxM。
2、删除驱动备份: %windows%\driver cache\i386目录下的driver.cab文件,通常这个文件是76M。
3、其实微软的help帮不了你什么,偶是没有看help的习惯,所以保留着%windows%\help目录下的东西对我来说是一种伤害,呵呵。。。都干掉,近4xM。
4、一会在升级完成后你还会惊喜的发现%windows%\多了许多类似$NtUninstallQ311889$这些目录,别以为是盖茨送你的礼包,都干掉吧,1x-3xM。
6、卸载不常用组件:用记事本修改\%windows%\inf\sysoc.inf,用查找/替换功能,在查找框中输入,hide,全部替换为空。这样,就把所有的,hide都去掉了,存盘退出后再运行“添加-删除程序”,就会看见“添加/删除Windows组件”中多出不少选项;删除掉游戏啊,码表啊等不用的东西。
7、?h除\windows\ime下不用的??入法,8xM。您可瞅准了删,别把自己用的都卡卡消灭了。
8、实在空间紧张,启用NTFS的压缩功能,这样还会少用2x% 的空间,不过我不知道NTFS是啥东东,如果你会用不妨试试。
9、关了系统还原,这破功能对我这样常下载、测试软件的人来说简直是灾难,用鼠标右健单击桌面上的“我的电脑”,选择“属性”,找到“系统还原”,选择“在所有驱动器上关闭系统还原”呵呵,又可以省空间了。
10、自动关闭停止响应的程序
在Windows XP操作系统中,我们可以通过修改注册表,使Windows XP诊测到某个应用程序已经停止响应时就自动关闭它,这样就不需要手工干预了。想要实现这个功能,请点击“开始”→“运行”输入RegEdit,打开注册表编辑器,依次为HKEY_CURRENT_USER\ Control Panel\Desktop\Auto End Tasks,将其键值改为1即可。
11、关闭休眠功能
休眠支持只需要通过控制面板 -> 电源选项 -> 休眠(Hibernate),把“Enable Hibernate”前面的勾去掉就可以了,哈哈,这样一来又可以空出512MB的硬盘空间了。对20G的硬盘来说可不是小数目呀。
如果你能按照上面的过程做完,你的原本1.4G的XP,完全可以减少到800以下。
优化基本结束,可以进行备份了。做备份懂吧?不懂?不要紧,去买张GHOST的盘,要里面有讲解说明的,多读几遍就可以下手了。建议机器里有重要物什的在高手指导下做备份。
什么?你说系统安全咋办?对于一个菜鸟,少看黄色网页就是最安全的设定,如果非要看,一般也不会被瞄上被入侵,能入侵你机器的一般都不屑入侵你。一般入侵你的都是拿你练手,天网防火墙基本不用慌他。如果真倒霉到走路被雷劈,那多当几次肉鸡就学聪明了。但有木马、病毒的网站实在可恶,浏览网页时多注意点。一般的恶意攻击网站天网防火墙基本能搞定,若真被病毒缠上了,配合诺顿(我选择,我喜欢,也不是非得用诺顿)杀一圈,系统应该还能屹立不倒。
下面还有两个挺实在的问题,贴上来供大家参考。
常见问题:为何我的Windows XP安装了简体中文语言包后还是英文的
在一些BBS上,很多朋友说不大会安装这个语言包,其实安装好了后,欢迎屏幕已经由WELCOME变成了欢迎了,至于界面,到控制面板,地区区域选项,菜单显示,选择简体中文即可,注销后重新登录即可。如果你不选择所有用户都使用这个配置的话,你会发现,其它用户里面还是英文界面的,哈哈,恭喜你,都会享受双语言了。
为何我的QQ在Windows XP下运行很慢
这个问题好像是目前版本的QQ和Windows XP不大兼容,尤其是老的版本,QQ710还可以,难道是微软为了推广MSNMessenger故意这么做的?哈哈哈……如果真的菜到连下载珊瑚虫版或木子版都不会,看来你只能等QQXP了。
以上修改办法,加速计划我全都亲身试过,没啥大问题,就是一个字:爽!瘦身计划我没全试过,自己机器瘦身用到过其中的几个方法,感觉还是爽!
三、菜鸟心得:
1 别以为改完注册表就无敌了,其实硬件还是那些垃圾,3D游戏除了3D弹球我能运行,其 余的3D游戏只有流口水的份。手里有闲钱了记得把能换的都换了。
2 系统盘(一般都为C盘)尽量少装东西,但凡不是非得装在系统盘的东西就不要装在系统盘里。
3 如果要花一千元装台二手机,建议无论怎么样,风扇千万要买新的。像偶当时不懂,风扇买的也是二手的,后来发现,偶机器风扇转起来,托拉机都显得特安静。尤其装这种二手机的一般都是在校大学生,晚上难免要玩网游或是挂机,风扇太垃圾了,就没人能睡得着。
4 如果是在寝室,机箱挡板建议留一侧不装,除了弥补二手风扇散热缺点以外,还有一个用途就是去别人机器复制东东摘硬盘方便。什么?怕弄坏下不了手?不会吧。。。一千元的机器你不敢练习卸硬盘玩,等买笔记本了,那还不得麻爪了呀。复制办法:硬盘认识吧?弄下来,要温柔。然后把目标机器机箱打开,把目标机器连光驱那根数据线从光驱那端拉下来,塞到你硬盘接口上。(悠着点,就一种塞法能塞进去)同样办法,把连光驱那根电源线也塞你硬盘上。然后开机,你就发现目标机器“我的电脑”中多了个盘,对,那就是你的硬盘。嘿嘿,想拷毛片拷毛片,想拽电影拽电影啦。(附:就当是移动硬盘了,反正再买个二手20G的也就百八十元,不过记得轻拿轻放,断电作业。带电作业,搞不好可就不是钱的事儿了。)
如果在同一寝室,或是整楼为一个局域网,此条省略。
5 如果按照一千元装机,就一切以简朴为主,光电鼠切不可买。因为:1会是一笔在配置 过程中比较大的开销。而鼠标键盘甚至鼠标垫都可以在付钱时问老板免费要一套旧的。2在寝室玩,等晚上睡觉挂机下载东西时,你就知道光电鼠是多么讨厌的东西了。不出三天别人一定会优先考虑照顾一下你的光电鼠让它坏掉。
6 如果确实懒得动手,还想优化系统,那也不是没办法。买张带优化大师的盘,记得里面要有注册码,按提示进行选择优化项目就行了。但如果菜得各选项是什么东东都不知道,那优化大师也解决不了什么问题,找本基础书狂啃吧。
7 想隐藏IP?没问题,需下载一个工具:Steganos Internet Anonym Pro 6 但首先要用于正当防卫,不厚道的同志偶不支持使用。 安装后不要急于测试,先关闭所有的浏览器,然后重新打开。如果还没有效果,那么重新启动,就可以看到效果了
我为类编写了这个汉明编码代码。为啥这么慢?
【中文标题】我为类编写了这个汉明编码代码。为啥这么慢?【英文标题】:I wrote this Hamming Encoding code for class. Why is it so slow?我为类编写了这个汉明编码代码。为什么这么慢? 【发布时间】:2014-05-01 06:38:00 【问题描述】:我为我的操作系统课写了这个:
#include <iostream>
#include <fstream>
//encodes a file using the (8,4) Hamming Code.
//usage : HammingEncode.out < inputFile > outputFile
int main()
unsigned char const codebook[] = 0x00, 0x1E, 0x2D, 0x33, 0x4B, 0x55, 0x66, 0x78, 0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1, 0xFF;
unsigned char in, nextByte;
unsigned char const leftMask = 0xF0, rightMask = 0x0F;
in = std::cin.get();
while (!std::cin.eof())
nextByte = (in & leftMask) >> 4;
std::cout << codebook[nextByte];
nextByte = in & rightMask;
std::cout << codebook[nextByte];
in = std::cin.get();
然后我决定在詹姆士国王圣经中的旧约中测试它的速度(只是为了看看)。这是我们用 Java 教授的数据结构类的标准测试文件,我们几乎可以立即对其进行排序和 Huffman 编码,但这需要相当长的时间来编码。怎么回事?
【问题讨论】:
很可能,java 正在为您缓冲输入和输出。你在这里一次读/写一个字节。 @Blorgbeard iostream 也可以进行缓冲。 @j_kubik 我的立场是正确的。 你的编译标志是什么?在这种情况下,未优化的代码会非常慢,但优化有可能将其加速几个数量级。 @j_kubik g++ HammingEncode.cpp -O2 -o HammingEncode.out 【参考方案1】:std::cin
在文本模式下打开,因此它会不断地寻找各种需要注意的东西(如换行符等)。
鉴于std::cin
输入流对字符的持续嗅探,我并不感到惊讶它需要更长的时间,但它似乎有点过分。以下,绕过iostream
并直接使用FILE
流可能会达到您的预期:
#include <cstdlib>
#include <cstdio>
int main(int argc, char *argv[])
static unsigned char const codebook[] =
0x00, 0x1E, 0x2D, 0x33, 0x4B, 0x55, 0x66, 0x78,
0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1, 0xFF
;
for (int c = std::fgetc(stdin); c!=EOF; c=std::fgetc(stdin))
std::fputc(codebook[c >> 4], stdout);
std::fputc(codebook[c & 0x0F], stdout);
return EXIT_SUCCESS;
我在一个 10MB 的随机文件上测试了上面的 exact 代码,该文件加载了从a
到z
的字符,当使用std::cin
和std::cout
时,结果非常长。直接使用FILE
流,差异是巨大的。此答案中的所有代码均已使用Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)
使用-O3
优化进行了测试。
使用FILE
流
time ./hamming < bigfile.txt > bigfile.ham
real 0m1.855s
user 0m1.812s
sys 0m0.041s
使用std::cin
和std::cout
time ./hamming < bigfile.txt > bigfile.ham
real 0m23.819s
user 0m7.416s
sys 0m16.377s
将std::cin
和std::cout
与std::cout.sync_with_stdio(false);
一起使用
time ./hamming < bigfile.txt > bigfile.ham
real 0m24.867s
user 0m7.705s
sys 0m17.118s
总之,哎哟。值得注意的是在系统中花费的时间。如果我有机会使用std::istream::get()
和put()
方法来更新它,我会的,但老实说,我不希望有任何奇迹发生。除非有一些魔法(对我来说,而不是对其他人)从std::cin
关闭 io xlat 的方法,否则FILE
流可能是一个合理的选择。我还没有调查啜饮std::cin
的rdbuf()
是否是一个可行的选择,但它可能也有希望。
编辑:使用std::istreambuf_iterator<char>
使用 streambuf 迭代器类有显着改进,因为它基本上绕过了所有内联 slat 垃圾,但它仍然不如 FILE
流高效:
#include <iostream>
#include <cstdlib>
#include <cstdio>
int main(int argc, char *argv[])
static unsigned char const codebook[] =
0x00, 0x1E, 0x2D, 0x33, 0x4B, 0x55, 0x66, 0x78,
0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1, 0xFF
;
std::istreambuf_iterator<char> cin_it(std::cin), cin_eof;
std::for_each(cin_it, cin_eof, [](char c)
std::cout.put(static_cast<char>(codebook[static_cast<unsigned char>(c) >> 4]));
std::cout.put(static_cast<char>(codebook[static_cast<unsigned char>(c) & 0x0F]));
);
return EXIT_SUCCESS;
结果:
time ./hamming < bigfile.txt > bigfile.ham
real 0m6.062s
user 0m5.795s
sys 0m0.053s
请注意,system
现在与FILE
流结果相当,但是user
中其余 iostream 模板的开销似乎是一个痛点(但仍然比其他 iostream
尝试更好)。你赢了一些,你失去了一些=P
编辑:无缓冲系统 IO
为了做到完全公平,绕过所有运行时缓冲并仅依靠系统调用来完成这种疯狂的行为,以下内容也值得注意:
#include <cstdlib>
#include <cstdio>
#include <unistd.h>
int main(int argc, char *argv[])
static unsigned char const codebook[] =
0x00, 0x1E, 0x2D, 0x33, 0x4B, 0x55, 0x66, 0x78,
0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1, 0xFF
;
unsigned char c;
while (read(STDIN_FILENO, &c, 1)> 0)
unsigned char duo[2] =
codebook[ c >> 4 ],
codebook[ c & 0x0F ]
;
write(STDOUT_FILENO, duo, sizeof(duo));
return EXIT_SUCCESS;
如你所料,结果很糟糕:
time ./hamming < bigfile.txt > bigfile.ham
real 0m26.509s
user 0m2.370s
sys 0m24.087s
【讨论】:
static_cast<unsigned char>(c)
是多余的; fgetc
函数被定义为返回转换为unsigned char
范围的字符的值。
@MattMcNabb 内部的(索引码本)?是的,当c
是char
而不是int
时,它是std::cin.get(c)
的char
代码的保留。可能应该把它去掉。感谢收看。
你能像我在回答中建议的那样测试自制缓冲吗?
很棒的回复,非常感谢!我认为读/写头有很多硬件开销,但是作为仍在学习 c++ 的人,这很棒:D【参考方案2】:
通过进行 2 个小改动,我的改进接近了一个数量级。
-
添加
std::ios_base::synch_with_stdio(false)
(没有明显差异,尽管影响通常是特定于实现的)
在写入之前缓冲输出(这是最大的不同)
更新后的代码如下所示:
int main()
//encodes a file using the (8,4) Hamming Code.
//usage : HammingEncode.out < inputFile > outputFile
unsigned char const codebook[] = 0x00, 0x1E, 0x2D, 0x33, 0x4B, 0x55, 0x66, 0x78, 0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1, 0xFF ;
unsigned char in, nextByte;
unsigned char const leftMask = 0xF0, rightMask = 0x0F;
std::stringstream os;
std::ios_base::sync_with_stdio(false);
in = std::cin.get();
while (std::cin)
nextByte = (in & leftMask) >> 4;
os.put(codebook[nextByte]);
nextByte = in & rightMask;
os.put(codebook[nextByte]);
in = std::cin.get();
std::cout << os.rdbuf();
更新
我尝试了另一种实现方式——使用底层的std::streambuf
。
在我的系统上,原始代码大约需要 14 秒 来处理完整的国王詹姆斯圣经 - 大约 4.3 MB
我最初尝试中的代码大约需要 2.1 秒来处理。
这个新的实现需要 0.71 秒来处理同一个文档。
int main()
//encodes a file using the (8,4) Hamming Code.
//usage : HammingEncode.out < inputFile > outputFile
unsigned char const codebook[] = 0x00, 0x1E, 0x2D, 0x33, 0x4B, 0x55, 0x66, 0x78, 0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1, 0xFF ;
unsigned char in, nextByte;
unsigned char const leftMask = 0xF0, rightMask = 0x0F;
std::stringstream os;
std::ios_base::sync_with_stdio(false);
std::streambuf * pbuf = std::cin.rdbuf();
do
in = pbuf->sgetc();
nextByte = (in & leftMask) >> 4;
os << codebook[nextByte];
nextByte = in & rightMask;
os << codebook[nextByte];
while (pbuf->snextc() != EOF);
std::cout << os.rdbuf();
【讨论】:
+1 streambuf 读取端是有意义的,因为它本质上是使用istreambuf_iterator<>
会做的事情,减少开销。考虑到您的文件测试大小与我测试的 10MB 相比大约小 2.3 倍,与 10MB 文件的差异几乎符合预期。写得不错。【参考方案3】:
C++ iostreams 对效率低下有不好的看法,尽管不同的数字表明它是实现质量问题,而不是 iostream 的劣势。
无论如何,为了确保它不是慢速硬盘,您可以将执行时间与例如进行比较
cat file1 > file2
当然cat
会更快一些,因为它不会使您的数据大小翻倍。
然后尝试将您的代码的效率与以下内容进行比较:
#include <stdio.h>
#include <unistd.h>
int main()
unsigned char buffer[1024*1024]; // 1MB buffer should be enough
while (!eof(STDIN_FILENO))
size_t len = read(STDIN_FILENO, &buffer[0], 1024*1024);
write(STDOUT_FILENO, &buffer[0], len);
write(STDOUT_FILENO, &buffer[0], len);
return 0;
编辑:
对不起,我的错。试试
#include <stdio.h>
#include <unistd.h>
int main()
unsigned char buffer[1024*1024]; // 1MB buffer should be enough
size_t len = read(STDIN_FILENO, &buffer[0], 1024*1024);
while(len > 0)
write(STDOUT_FILENO, &buffer[0], len);
write(STDOUT_FILENO, &buffer[0], len);
len = read(STDIN_FILENO, &buffer[0], 1024*1024);
return 0;
【讨论】:
这不编译,它不识别eof。我用 feof 替换它并编译,但给了我一个段错误。【参考方案4】:如果我理解正确,对于您读取的每个字节,您将写入 2 个字节。所以输出文件将是输入的两倍大小。如果您的输入足够大 - 总 IO(读取 + 2 * 写入)时间将很重要。
在 Huffman 编码中情况并非如此 - 因为您通常写的比读的少,总 IO 时间会少得多。
编辑: 正如Blorgbeard 所说,这可能是缓冲的不同。 C++ 也进行缓冲,但可能默认缓冲区比 Java 小得多。此外,HDD 磁头应该在一个位置读取文件然后在另一个位置写入文件之间不断跳转这一事实 - 显着影响整体 IO 性能。
在任何情况下,编码都应该分块进行,以确保大块的顺序读写
【讨论】:
嗯,是的。但我不明白为什么写一个文件比直接用 Java 写要花两倍的时间。就像我用 Java 写两次这个文件一样,它会快得多。所以我想知道为什么这段代码需要 30 秒才能写入 8 MB 30 秒 8MB 听起来确实很慢。我会尝试实验:尝试逐字节读取文件,并且对于每个字节,只需将读取的字节两次写入输出文件。这将有助于了解问题是在 IO 中还是在算法本身中(不太可能)。但重要的是读取字节然后立即写入两次(而不是读入缓冲区然后写入两次缓冲区) @DenisItskovitch 我不确定我是否知道如何在不使用缓冲的 iostream 的情况下直接编写。我不能做 nextByte = std::cin.get() & rightMask; std::cout @JonCohen 我不是直接的意思。我的意思是完全按照您在问题中所做的那样读/写,但没有编码 试过了,时间一样长:(以上是关于系统为啥这么慢的主要内容,如果未能解决你的问题,请参考以下文章