在程序的开发中,如何提高程序的运行效率?

在程序的开发中,如何提高程序的运行效率?,第1张

(1)优化SQL语句,查询语句中尽量不使用select *,用哪个字段查哪个字段;少用子查询可用表连接代替;少用模糊查询,数据表中创建索引。

(2)对程序中经常用到的数据生成缓存(如使用redis缓存数据等)。

(3)对mysql做主从复制,读写分离。从而提高mysq执行亏手效率和查询速度。

(4)使用nginx做负空乱载均衡。将访问压力平均分销亏嫌配到多态服务器。

一、BIOS的优化设置

在BIOS设置的首页我们进入“Advanced BIOS Features”选项,将光标移到“Frist Boot Device”选项,按“PageUP”和“PageDOWN”进行选择滚基,默认值为“Floppy”,这表示启动时系统会先从软驱里读取启动信息,这样做会加长机器的启动时间,减短软驱的寿命。所以我们要选“HDD-0”直接从硬盘启动,这样启动就快上好几秒。 另外,对于BIOS设置中的“Above 1MbMemoryTest”建议选“Disabled”,对于“QuickPowerOnSelftest”建议选择Enabled。

在“Advanced Chipset Features”项中的设置对机子的加速影响非常亮拦大,请大家多加留意。将“Bank 0/1 DRAM Timing”从“8ns/10ns”改为“Fast”或“Turbo”。“Turbo”比“Fast”快,但不太稳定,建议选“Fast”。如果内存质量好可以选“Turbo”试试,不稳定可以改回“Fast”。

对敬备胡于内存品质好的内存条建议在“SDRAM CAS Latency”选项中设置为“2”,这样可以加快速度哦。

较新的主板都支持AGP4X,如果你的显卡也支持AGP4X,那么就在“AGP-4XMode”处将这项激活,即选为“Enabled”,这才会更好的发挥显卡的能力,加快系统启动速度。

二、启动DMA方式,提高硬盘速度

采用UDMA/33、66、100技术的硬盘最高传输速率是33MB/s、66MB/s、100MB/s,从理论上来说是IDE硬盘(这里是指PIO MODE4 模式,其传输率是16.6MB/s)传输速率的3~6倍,但是在Windows里面缺省设置中,DMA却是被禁用的,所以我们必须将它打开。

具体方法是:打开“控制面板→系统→设备管理器”窗口,展开“磁盘驱动器”分支,双击UDMA硬盘的图标,进入“属性→设置→选项”,在“DMA”项前面“√”,然后按确定,关闭所有对话框,重启电脑即可。

三、去掉Windows的开机标志。

首先你要打开“开始”→“设置”→“文件夹选项”,从“查看”标签里的“高级设置”列表框中勾选“显示所有文件”。然后打开C盘,找到Msdos.sys这个文件,并取消它的“只读”属性,打开它,在“Option”段落下,加上一行语句:LOGO=0,这样Windows的开机图案就不会被加载运行,开机时间也可以缩短3秒钟。

四、优化“启动”组。

电脑初学者都爱试用各种软件,用不多久又将其删除,但常常会因为某些莫名其妙的原因,这些软件还会驻留在“启动”项目中(尤其是在使用一些D版软件时),Windows启动时就会为此白白浪费许多时间。要解决这个问题,其实很简单,你可以打开“开始”→“运行”,在出现的对话框的“打开”栏中选中输入“msconfig”,然后点击“确定”,就会调出“系统配置实用程序”,点击其中的“启动”标签,将不用载入启动组的程序前面的“√”去掉就可以了。如此一来,至少可以将启动时间缩短10秒。

五、整理、优化注册表。

Windows在开机启动后,系统要读取注册表里的相关资料并暂存于RAM(内存)中,Windows开机的大部分时间,都花费了在这上面。因此,整理、优化注册表显得十分必要。有关注册表的优化,可以使用Windows优化大师等软件。以Windows优化大师,点击“注册信息清理”→“扫描”,软件就会自动替你清扫注册表中的垃圾,在扫描结束后,会d出个菜单让你选择是否备份注册表,建议选择备份,备份后再点击“清除”即可。

六、经常维护系统。

如果在系统中安装了太多的游戏、太多的应用软件、太多的旧资料,会让你的电脑运行速度越来越慢,而开机时间也越来越长。因此,最好每隔一段时间,对电脑做一次全面的维护。点击“开始”→“程序”→“附件”→“系统工具”→“维护向导”,然后点击“确定”按钮即可对电脑进行一次全面的维护,这样会使你的电脑保持在最佳状态。对于硬盘最好能每隔2个星期就做一次“磁盘碎片整理”,那样会明显加快程序启动速度的,点击“系统工具”→“磁盘碎片整理程序”即可。注意在整理磁盘碎片时系统所在的盘一定要整理,这样才能真正加快Windows的启动顺序。

七、扩大虚拟内存容量。

如果你的硬盘够大,那就请你打开”控制面板“中的“系统”,在“性能”选项中打开“虚拟内存”,选择第二项:用户自己设定虚拟内存设置,指向一个较少用的硬盘,并把最大值和最小值都设定为一个固定值,大小为物理内存的2倍左右。这样,虚拟存储器在使用硬盘时,就不用迁就其忽大忽小的差别,而将固定的空间作为虚拟内存,加快存取速度。虚拟内存的设置最好在“磁盘碎片整理”之后进行,这样虚拟内存就分不在一个连续的、无碎片文件的空间上,可以更好的发挥作用。

八、去掉“墙纸”、“屏幕保护”等花哨的设置。

这些设置占用系统资源不说,还严重影响Windows的启动顺序。去掉它们的方法是:在桌面空白处点击鼠标右键,在d出的菜单中选择“属性”,在d出的对话框中分别选择“背景”和“屏幕保护程序”标签,将“墙纸”和“屏幕保护程序”设置为“无”即可。

九、删除Autoexec.bat和Config.sys。

系统安装盘根目录下的Autoexec.bat和Config.sys这两个文件,Windows已经不需要它们了,可以将它们安全删除,这样可以加快Windows的启动速度。

十、精简*.ini文件,尤其是System.ini和Win.ini的内容。

在system.ini的[boot]和[386Enh]小节中加载了许多驱动程序和字体文件,是清除重点。尤其要注意的是,[boot]字段的shell=Explorer.exe是木马喜欢的隐蔽加载之所,木马们通常会将该句变为这样:shell=Explorer.exe file.exe,注意这里的file.exe就是木马服务端程序!有了木马随后加载运行不仅对系统安全造成了威胁,电脑启动也慢了许多;对Win.ini中的“Run”及“Load”后面加载的、不是每次开机必须运行的程序,可以暂时清除,等以后要用时再点击运行。这样开机时Windows调用的相关文件就会减少许多,启动速度自然就会快多了。

十一、关闭磁盘扫描。

用文本编辑器打开msdos.sys,会看到以下内容:

[Options]

bootmulti=1

bootgui=1

autoscan=1

如果不想非正常关机后运行磁盘扫描程序,可以把atuoscan=1改为autoscan=0,这样在非正常关机后计算机的启动速度也会快上一些(因为scandisk没有运行嘛)。

十二、让引导信息停留时间最短。

用文本编辑器打开msdos.sys,设置[Options]中的BootDelay为0即可。

十三、减少不必要的字体文件。

字体文件占用系统资源多,引导时很慢,并且占用硬盘空间也不少。因此尽量减少不必要的字体文件。但如果删错了字体文件,搞不好会使Windows不正常。因此可以采用下面这个“偷梁换柱”的方法(可以实现字体文件的安装,而不占用大量的磁盘空间):首先打开字库文件夹(如F:\zk),选中全部TrueType字体文件,用鼠标的右键将它们拖动到C:\Windows\Fonts文件夹中,在d出的菜单中选择“在当前位置创建快捷方式”,这样就可以在系统的字体文件夹下建立字库文件的快捷方式了。当需要使用这些字库文件时,只要插入字库光盘,不用时取出就可以了。

十四、删去多余的Dll文件。在Window *** 作系统的System子目录里有许多的Dll文件,这些文件可能被许多文件共享,但有的却没有没有一个文件要使用它,也就是说这些文件没用了,为了不占用硬盘空间和提高启动运行速度,完全可以将其删除。

十五、“旁门左道”的办法。如采用系统悬挂,即将当前系统状态在关机后保存,下次开机后,系统会直接进入上次关机前的桌面,用这种方法,开机时间最快可以达到4-5秒钟,但不是所有的主板BIOS都支持的,设置起来也稍显麻烦。

打开注册表,展开到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls子键,在右边的有许多Dll文件,如果数据为0,则可以判定该Dll文件没有程序共享,可以删掉它。

如果按以上的方法做了电脑启动速度仍不够快,除了升级硬件(CPU、内存、硬盘等)外,另一个好办法是重装系统,这样可以明显加快电脑启动速度

好的代码没有一个统一的衡量标准,在程序员们的世界里大家也是各自按照自己的标准衡量着自己和别人的代码。不过有一个标准几乎是被所有人认同的。服役时间越长、出错率越高的代码就是好代码。所有的编程方法、代码技巧甚至于设计模式都是为了达到这个目的而产生的。

   如何提高程序效率

程序的效率分两部分:时间效率和空间效率。

时间效率 : 指的是程序运行的速度

空间效率 : 指的是程序占用内存或者外存的大小

对于这两点的把握,我们没有明确的方法。这里给出一些能够达成共识的规则,大家在今后自己编码的时候,可以通过这些规则来衡量自己的代码是否符合要求。

规则1:不要一味地追求程序的效率

如果追求程序效率需要付出降低正确性、可靠性、健壮性、可读性等质量代价,那么可以放弃这部分效率的提高。

规则2:优先提高全局效率

只有整个程序的执行效率提高才有意义,把时间和精力放在某一个不常被调用的小模块优化上得不偿失。

规则3:针对瓶颈部分优化

在实际开发工作中,我们经常遇到一些程序执行时间过长,需要优化。有些人上来就开始逐行检查代码,把认为可能影响效率的地方都尽量修改一遍。这样做不仅浪费时间,更重姿举差要的是,常常修改一遍后依然看不到明显的效果。

这种情况下,正确的方法是先找出限制效率的“瓶颈”,在这个答察部分做有针对性的优化。这么做才事半功倍。

   规则4:先优化数据结构和算法,再优化执行代码

程序的两大要素是算法和数据结构,它们贯迹皮穿于程序的始终。因此,对它们的优化能够起到意想不到的良好效果。

规则5:时间效率和空间效率的矛盾

大多数时候,时间效率和空间效率是对立的。这就是程序设计中两个很重要的方法论,一个是“以空间换时间”,另一个是“以时间换空间”。此时应当分析那个更重要,作出适当的折中。

早间年,硬件成本比较高,人们大多都采用以时间换空间的策略,花费一些时间,减少内存开销。如今,内存条的价格已经非常便宜了,人们注重的`是软件的友好性,因此大部分时候都是用空间换时间。

规则6:代码不是越短越好

很多资深程序员都会有这样一个误区,完成同一个功能,代码越短越好。还经常有人说这样的话:“就这么个功能我几行代码就搞定了”。其实,追求代码精简是一个很大的误区。因为精简的代码并不一定产生高效的机器码。同时,它还付出了可读性这一代价。正确的做法是适当地做到代码精简。

注意事项

1. 书写错误

经常有人把“==”误写成“=”。“||”、“&&”、“<=”、“>=”这类符号也很容易发生少一个的错误。最可怕的是编译器根本发现不了这样的错误。

2. 初始化

变量(指针、数组)被创建之后应当立刻初始化,防止把未被初始化的变量当成右值使用。

3. 数值错误

这也是一类非常容易忽略的错误。变量的初值、缺省值错误,或精度不够,一旦出错不易发现。

4. 类型转换

为了避免数据类型转换的错误,我们要尽量使用显式的数据类型转换,避免在编译器中执行非我们所愿的隐式数据类型转换。

5. 溢出

溢出分两种,一种是超过数据类型取值范围的赋值,另一种是数组下标范围越界。这两种都是要时刻注意的。

7. 避免编写技巧性很高代码

技巧性过高的代码一定是可读性较差的代码,这种代码不易维护,后期的成本较高。

8. 好代码要复用,坏代码要重写

如果原有的代码质量比较好,尽量复用它。但是不要修补很差劲的代码。当我们遇到差劲代码时,最好的方法是重写新代码替换它。

9. 尽量使用标准库函数

对于标准库中有的函数,我们不要再花时间自己实现。很简单,你自己实现的一定不比库函数效率高。

10. 把编译器的选择项设置为最严格状态

只有最严格的审查自己的代码,才能写出优秀的软件产品。很多人甚至连编译过程中出现的warning都懒得处理,这种态度坚决不能有。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12222760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存