论文部分内容阅读
公主长年假死状(诈尸!?),王子吻一下就醒了,要是用这种老掉牙的故事情节来编个故事实在是对不起大家啊!所以今天要唤醒的不是公主,而是一只叫做QQ的企鹅……
图1
企鹅何时会睡着
QQ当然并非真的睡着了,只是大家常说的程序假死,聊天窗口鼠标点了没反应,想用键盘敲字进去更是想都别想。不过,根据大多数人的症状,我们发现了一些规律:
①QQ启动时,很有可能假死一段时间,然后突然爆发出N个消息(好友稀少且寡言者除外)。
②当一个好友发送夹带图片的消息来时,可能会造成QQ几秒的反应迟滞。
③在发送消息时,在表情选择框中浏览自定义表情时,经常出现几秒甚至几十秒的假死。
④突然QQ甚至系统有几秒的迟滞,然后弹出群的消息。
从中我们可以发现一个共性,就是凡是出现接收消息或数据的情况时,QQ都有可能假死。由于QQ有聊天记录功能,所以接收消息的同时会向聊天记录对应的文件中写入数据,而接收图片时QQ也是先把接收到的数据保存成图片放在特定目录下,并以该图片文件的MD5值作为文件名(所以你在QQ目录下有时会看到一大堆文件名奇怪的图片文件)。这些数据的读写本来应该是一瞬间的事,何以造成迟滞呢?
图2
谁给企鹅吃了毒苹果
公主一般是吃了巫婆的苹果才开始长眠不醒,那么QQ假死是谁给的苹果呢?根据大量的案例分析得出的结论,QQ读写文件时的迟滞主要在于杀毒软件的文件实时监控,在读写时文件时先对聊天记录文件/临时图片等进行扫描,而点表情框在显示大堆自定义表情时实际上也需要杀毒软件扫描一遍几十甚至上百个缩略图片。有很多杀毒软件因此对聊天软件进行了优化,比如诺顿就提供了MSN相关的选项,可谁来可怜可怜QQ?
对症下药,唤醒企鹅
吻醒公主是件有成就感的事,可是吻企鹅就不同了……要唤醒企鹅,我们决定使用其他方法!
1.脱掉厚重的马甲:不使用QQ皮肤
原理:QQ皮肤其实是程序利用系统中的GDI(Graphic Device Interface,图形设备接口)对象将图片不断“画”到程序界面上的,减少这个画的过程有助于减少QQ资源占用,减少假死。
方法:选择QQ“菜单→更换皮肤→标准界面”。
2.卸掉多余装备:面板优化
原理:多余面板的载入需要时间和程序运算,去除多余面板有助于减少QQ启动时的假死时间,同时减少内存占用。
方法:选择QQ“菜单→界面管理器”,在“组件管理”选项卡中只保留“群/校友录”和“最近联系人”,其他一律去除勾选。在“面板设置”选项卡中,如图1所示取消不需要的面板前的勾选(个人觉得除了“网络硬盘”之外没什么值得保留的)。
3.别为点小事瞎叫唤:禁用上线提示
原理:QQ中默认每个好友上线都会弹出框提示一下,建立弹出框的系统消耗很大,特别是当很多好友同时上线时。
方法:选择QQ“菜单→设置→系统设置”,选择左侧的“基本设置”,在右侧窗格中勾选“禁止所有用户上线提示”。同时建议去除“宠物随QQ自动启动”和“自动播放魔法表情”的勾选。
4.拒绝监视:加入杀毒软件排除目录
原理:杀毒软件在QQ读写文件操作时都会先加一道扫描的过程,当涉及多文件读写时(如一大堆自定义表情)很有可能造成延时,因此应在安全的范围内将QQ目录下的部分子目录及文件设为杀毒软件的排除目录。
方法:几乎所有杀毒软件都能设置在实时监控中不扫描的目录或文件,一般称为排除目录。以McAfee Antivirus 7.1为例:右击屏幕右下角系统托盘中的McAfee图标,选择“按访问扫描属性”,在弹出窗口左侧选择“所有进程”,在右侧窗格中打开“检测”选项卡,在“不扫描内容”栏中点击“排除”按钮,在弹出窗口中点击“添加”,依次执行此操作将下列文件及目录加入排除列表(勾选“同时排除子目录”),路径请按实际安装位置进行修改(见图2)。
D:\Program Files\Tencent\qq\[QQ号码]\CacheFolder\*.*
D:\Program Files\Tencent\qq\[QQ号码]\image\*.*
D:\Program Files\Tencent\qq\[QQ号码]\MsgEX.db
D:\Program Files\Tencent\qq\[QQ号码]\User.db
图1
企鹅何时会睡着
QQ当然并非真的睡着了,只是大家常说的程序假死,聊天窗口鼠标点了没反应,想用键盘敲字进去更是想都别想。不过,根据大多数人的症状,我们发现了一些规律:
①QQ启动时,很有可能假死一段时间,然后突然爆发出N个消息(好友稀少且寡言者除外)。
②当一个好友发送夹带图片的消息来时,可能会造成QQ几秒的反应迟滞。
③在发送消息时,在表情选择框中浏览自定义表情时,经常出现几秒甚至几十秒的假死。
④突然QQ甚至系统有几秒的迟滞,然后弹出群的消息。
从中我们可以发现一个共性,就是凡是出现接收消息或数据的情况时,QQ都有可能假死。由于QQ有聊天记录功能,所以接收消息的同时会向聊天记录对应的文件中写入数据,而接收图片时QQ也是先把接收到的数据保存成图片放在特定目录下,并以该图片文件的MD5值作为文件名(所以你在QQ目录下有时会看到一大堆文件名奇怪的图片文件)。这些数据的读写本来应该是一瞬间的事,何以造成迟滞呢?
图2
谁给企鹅吃了毒苹果
公主一般是吃了巫婆的苹果才开始长眠不醒,那么QQ假死是谁给的苹果呢?根据大量的案例分析得出的结论,QQ读写文件时的迟滞主要在于杀毒软件的文件实时监控,在读写时文件时先对聊天记录文件/临时图片等进行扫描,而点表情框在显示大堆自定义表情时实际上也需要杀毒软件扫描一遍几十甚至上百个缩略图片。有很多杀毒软件因此对聊天软件进行了优化,比如诺顿就提供了MSN相关的选项,可谁来可怜可怜QQ?
对症下药,唤醒企鹅
吻醒公主是件有成就感的事,可是吻企鹅就不同了……要唤醒企鹅,我们决定使用其他方法!
1.脱掉厚重的马甲:不使用QQ皮肤
原理:QQ皮肤其实是程序利用系统中的GDI(Graphic Device Interface,图形设备接口)对象将图片不断“画”到程序界面上的,减少这个画的过程有助于减少QQ资源占用,减少假死。
方法:选择QQ“菜单→更换皮肤→标准界面”。
2.卸掉多余装备:面板优化
原理:多余面板的载入需要时间和程序运算,去除多余面板有助于减少QQ启动时的假死时间,同时减少内存占用。
方法:选择QQ“菜单→界面管理器”,在“组件管理”选项卡中只保留“群/校友录”和“最近联系人”,其他一律去除勾选。在“面板设置”选项卡中,如图1所示取消不需要的面板前的勾选(个人觉得除了“网络硬盘”之外没什么值得保留的)。
3.别为点小事瞎叫唤:禁用上线提示
原理:QQ中默认每个好友上线都会弹出框提示一下,建立弹出框的系统消耗很大,特别是当很多好友同时上线时。
方法:选择QQ“菜单→设置→系统设置”,选择左侧的“基本设置”,在右侧窗格中勾选“禁止所有用户上线提示”。同时建议去除“宠物随QQ自动启动”和“自动播放魔法表情”的勾选。
4.拒绝监视:加入杀毒软件排除目录
原理:杀毒软件在QQ读写文件操作时都会先加一道扫描的过程,当涉及多文件读写时(如一大堆自定义表情)很有可能造成延时,因此应在安全的范围内将QQ目录下的部分子目录及文件设为杀毒软件的排除目录。
方法:几乎所有杀毒软件都能设置在实时监控中不扫描的目录或文件,一般称为排除目录。以McAfee Antivirus 7.1为例:右击屏幕右下角系统托盘中的McAfee图标,选择“按访问扫描属性”,在弹出窗口左侧选择“所有进程”,在右侧窗格中打开“检测”选项卡,在“不扫描内容”栏中点击“排除”按钮,在弹出窗口中点击“添加”,依次执行此操作将下列文件及目录加入排除列表(勾选“同时排除子目录”),路径请按实际安装位置进行修改(见图2)。
D:\Program Files\Tencent\qq\[QQ号码]\CacheFolder\*.*
D:\Program Files\Tencent\qq\[QQ号码]\image\*.*
D:\Program Files\Tencent\qq\[QQ号码]\MsgEX.db
D:\Program Files\Tencent\qq\[QQ号码]\User.db