文档库 最新最全的文档下载
当前位置:文档库 › 开启SATA模式 提高上网本运行速度

开启SATA模式 提高上网本运行速度

开启SATA模式 提高上网本运行速度
开启SATA模式 提高上网本运行速度

开启SATA模式提高上网本运行速度

最近朋友买了一台上网本,搭配Atom N450处理器和250GB SATA2硬盘,预装Linux系统。升级到2GB内存后,改装了Windows 7,但却无法安装AHCI磁盘驱动开启SATA2模式,影响速度发挥。由于这种情况很典型,以下讲解开启SATA2模式的方法。

STEP 01:修改注册表

装完Win7后,如直接执行AHCI磁盘驱动,会弹出“系统不符合要求”的警告提示,这是因为没有开启硬盘SATA模式,但若进入BIOS开启SATA模式后,进入系统时会蓝屏。

解决办法是在IED兼容模式下登录Win7,进入“运行”窗口,输入Regedit命令(图1),点击“确定”按钮进入注册表编辑。

●图1 启动注册表编辑器

依次展开HKEY_LOCAL_MACHINESystemCurrentControlSetServicesMsahci项目,双击右边窗口的“Start”名称,看到“数据数值”默认为“3”,将其改为“0”后,点击“确定”按钮退出(图2)。

●图2 设置相应选项的数值

STEP 02:设置BIOS参数

重新启动Win7,在开机时按F2键登录BIOS设置界面,切换到“Advcanced”设置页,将“SATA Mode”选项值改为“AHCI Mode”(图3),然后按F10键保存退出。再次登录Win7时就不会蓝屏了。

●图3 修改BIOS中的SATA模式

STEP 03:装AHCI驱动

这台上网本采用了Intel NM10芯片组,顺利登录Win7后,系统会提示找到新硬件设备,此时取消不要安装,上网下载Intel AHCI磁盘驱动,然后执行磁盘安装程序。

安装完磁盘驱动后,系统会提示正在安装设备驱动,大约过1分钟左右,会弹出“设备准备就绪”的提示窗口(图4),点击“关闭”按钮重新启动系统即可。

●图4 设备准备就绪

STEP 04:优化SATA磁盘性能

开启SATA2模式后,在BT下载或传输资料时,速度会有不小提升,不过要开启Aero高级特效,建议优化SATA硬盘性能。

方法是进入设备管理器,展开“磁盘驱动器”,右键单击硬盘标志,并选择“属性”(图5),切换到“策略”窗口,勾寻启用设备上的写入缓存”(图6),然后点“确定”按钮。

●图5 查看磁盘的属性

●图6 启用设备上的写入缓存

提高代码的运行速度

提高代码的运行速度 本文描述了如何通过一些技术手段来提高VB代码的执行效率。这些手段可以分为两个大的部分:编码技术和编译优化技术。本文从编码技术和编译技术来讨论。 第一部分:编码技术。 下面的这些方法(到现在为止共27种)可以帮助你提高代码的运行速度: 1. 使用整数(Integer)和长整数(Long) 提高代码运行速度最简单的方法莫过于使用正确的数据类型了。也许你不相信,但是正确地选择数据类型可以大幅度提升代码的性能。在大多数情况下,程序员可以将Single,Double和Currency类型的变量替换为Integer或Long类型的变量,因为VB处理Integer和Long的能力远远高于处理其它几种数据类型。下面是排序: Long 最快 Integer . Byte . Single . Double . Currency 最慢 在大多数情况下,程序员选择使用Single或Double的原因是因为它们能够保存小数。但是小数也可以保存在Integer类型的变量中。例如程序中约定有三位小数,那么只需要将保存在Integer变量中的数值除以1000就可以得到结果。根据我的经验,使用Integer和Long替代Single,Double和Currency后,代码的运行速度可以提高将近10倍。 2. 避免使用变体 对于一个VB程序员来说,这是再明显不过的事情了。变体类型的变量需要16个字节的空间来保存数据,而一个整数(Integer)只需要2个字节。通常使用变体类型的目的是为了减少设计的工作量和代码量,也有的程序员图个省事而使用它。但是如果一个软件经过了严格设计和按照规范编码的话,完全可以避免使用变体类型。 在这里顺带提一句,对于Object对象也存在同样的问题。请看下面的代码: Dim FSO Set FSO = New Scripting.FileSystemObject 或 Dim FSO as object Set FSO = New Scripting.FileSystemObject 上面的代码由于在申明的时候没有指定数据类型,在赋值时将浪费内存和CPU时间。正确的代码应该象下面这样: Dim FSO as New FileSystemObject 3. 尽量避免使用属性 在平时的代码中,最常见的比较低效的代码就是在可以使用变量的情况下,反复使用属性(Property),尤

一些提高fpga运行速度的方法

1. 修改你的系统结构设计,或者VERILOG代码: 这个是最好的方法,另外一个是加TIMING CONSTRAINTS,这个我呆会儿说。具体的方法很多,比如切割大的逻辑,用一个大CLK(比如10NS)完成的大逻辑切割成两个小CLK (6NS)完成的小逻辑,这样虽然延时增加了,但是系统的频率上去了,你的设计就可以突破这个BOTTLE NECK. 那什么是大的逻辑什么是小的逻辑,你可以看静态时序报告,这玩艺你一定要懂,不然你做FPGA就是在玩,即使你的设计能跑起来,那你也是玩起来的,而不是做起来的。 静态时序报告会提示你那个PATH是延迟最大的,这个延迟就是你设计中制约你频率的PATH,这个延时有两个东西带来,逻辑延迟和布线延迟,逻辑延迟大的话,就切割逻辑为小的逻辑,现在FPGA基本上是一个4输入SRAM,你的逻辑输入就被当作地址,而逻辑结果早就在FPGA配置后放在SRAM里面,这样FPGA运行的时候,根据不同的逻辑输入,从SRAM中取得逻辑结果输出,比如你的逻辑是Fout = f(x,y,z,t),那么x,y,z,t就是当作了一个sram的地址,各种结果就放在sram的16个内存中,根据不同的x,y,z,t来取出结果放在Fout上输出,如果你的逻辑比较复杂,比如要5个输入信号(超过了4个)要在一个clk 中完成,那你的逻辑一个sram一定完成不了,需要两个sram,好,这就是一个大逻辑,你要切割它,所谓切割就是搞一个临时中间变量,比如F= X + Y + Z,你可以分为两步走:第一个CLK: TEMP = X + Y;第二个CLK: F = TEMP + Z。简单的判断你可以通过综合结果也可以看到,比如在SYNPLIFYPRO里的TECKNOLOGUY OR RTL VIEWER看你的逻辑是不是在一个SRAM里,如果不在就是大逻辑了。另外一个就是布线延迟带来的频率BOTTLE NECK。这就需要用布局布线的TIME CONSTRAINTS来辅助你了。 2 TIME CONSTRAINTS: 作IC的和作FPGA的什么区别:?CONSTRAINTS!做IC你不但要写RTL CODE,还要加面积CONSTRAINTS,时序CONSTRAINTS,功耗CONSTRAINTS。那你现在就可以明白了CONSTRAINTS有多重要,CONSTRAINTS得工具要看FPGA厂商的工具了,比如ISE QUANTUS。同时在写RTL代码的时候也要加CONSTRAINTS,因为它直接决定你的网表的结构,如果你的RTL的约束写的不好,比如一个状态机有ONEHOT 或者GRAY CODE风格,你如果写的是ONEHOT风格,但是在CONSTRAINTS却让综合期综合为GRAY CODE风格(现在的综合器很智能,可以把你写的风格代码综合为你设定的CONSTRAINTS其他风格),那你的网表就不一样了,后边的布局布线工具再努力也没有用。 要加CONSTRAINTS,就要看FPGA厂商的CONSTRAINTS文件格式,比如 UCF(ISE),QSF(ALTERA)。具体不谈了,自己好好学习,这个实在太多,比如你看一个逻辑的输入源和输出目的地太远,带来了很大布线延迟,那就把加CONSTRAINTS把他们尽量拉近,但是距离近不一定他们布线就近了,FPGA可能会在两个很近的单元之间布很长的线,你还要在CONSTRAINTS里告诉布局布线工具让他们的的布线也很短,不推荐用手工拉线,这样你以后的代码就不能当作IP给被人用了,而是要用CONSTRAINTS,这样你以后写好RTL代码和CONSTRAINTS文件,就能当作IP卖给客户了,不然你就留着自己玩玩算了。

提高VBA运行效率方法

提高VBA运行效率方法 速度问题一直是VBA程序值得关注的一个方面。当您编写了一个对大量数据进行操作的程序后,在运行时可能会发现程序运行得很慢,有的甚至达好几分钟,就像Excel应用程序已崩溃了一样。但当您发现程序确实在运行,并得到正确的结果后,您可能就会想到如何使程序更快的运行了。当然,代码运行速度慢可能是VBA程序的一个缺点,这也可能是程序语言本身的一个原因,但我们也可以找到一些方法优化VBA代码并使程序尽可能快的运行。 下面是我整理的一些优化VBA代码或提高程序运行速度的方法,有些方法是我们在编程中好的做法和应该养成的好习惯,希望能带给您一些有益的参考。高质量的程序和运行效率是需要不断实践,并在实践中不断总结和积累经验的,也希望您能将在编写程序过程中发现的一些优化方法介绍给大家共享。 1、尽量简化代码 通过简化代码,可以提高程序的性能。您可以将通用过程编写为子过程来调用。例如,假设有一个应用程序需要在不同的地方实现查找一定范围内的某个特殊条目,在一个没有简化代码的应用程序中,不同的过程可能需要应用各自的算法以实现在某个范围内查找某一条目,修改每个过程使其采用一个更有效的算法并不是一件很容易的事。而一个简化的程序则只有一个查找算法,即将该查找算法编写成通用的子程序,需要查找某个范围的过程都调用该子程序,通过在查找方法的子程序中优化查找算法,使得调用该方法的所有过程都享受性能提高所带来的好处。 另外,删除所有无关的代码,这在所录制宏中表现得尤为明显。在录制宏时,经常会产生一些与所实现的功能无关的代码,您可以将这些代码删除,以使得代码得以简化。 在下面将要讲到的设置对象变量代替长对象引用,使用With…End With语句、执行For Each…Next循环语句,根据程序环境尽量减少OLE引用,等等,均是简化代码的好方法。 2、强制声明变量 在VBE编辑器中的菜单“工具——选项”对话框中“编辑器”选项卡中,您应该始终保持“要求变量声明”复选框被选中,这样将在模块代码顶部出现Option Explicit语句,要求您在编写代码时对所有出现的变量均进行声明,这样,在使用变量时减少内存需求并加速性能。 (1)要节省内存资源,必须始终用特定的数据类型声明所有变量。如果不使用特定的数据类型声明变量,VBA 会创建Variant类型的变量,这将比任何其他数据类型要求更多的内存。 (2)清楚每种数据类型需要多少内存以及它可以存储的值的范围。除使用较小的数据类型会导致隐性转换的情况外,应始终使用尽可能小的数据类型。例如,因为Integer类型的变量将被转换成Long类型的变量,应该将那些存储整型值的变量声明为Long类型,而不是Integer类型。 (3)除非确实需要,应避免使用浮点数据类型。尽管Currency数据类型更大,但它比Single 数据类型快,因为Currency数据类型不使用浮点处理器。 (4)如果在一个过程中多次引用一个对象,可以创建对象变量,并将对该对象的引用指派给它。因为对象变量存储对象在内存中的位置,VBA将不必再次查找其位置。 (5)将对象变量声明为特定的类型(不是Object类型),以便利用早期绑定。 3、减少变量的作用范围并及时释放变量 主要是对象变量,在其使用完后,及时释放。例如, Dim TempObj As AnyObject,AnObj As AnyObject Set TempObj=New AnyObject Set AnObj=TempObj Set TempObj=Nothing …释放对象变量

提高C语言程序的执行效率

提高C语言程序的执行效率 我们平常所说的执行效率就是使用相同的算法在相同输入条件下完成相同计算所产生的系统开销,目前来说一般会更多关注执行时间方面的开销。所有语言编写的代码最终要运行,都要转化成机器码。在更短的时间内完成相同的事那么效率就高。 下面说说如何提高C语言程序的执行效率。 1、尽量避免调用延时函数 没有带操作系统的程序只能在while(1)里面循环执行,如果在这里面调用大量的延时这样会很消耗CPU的资源,延时等于是让它在这歇着不干事了,只有中断里面的才会执行。如果仅仅是做一个LED一秒闪烁一次的程序,那么很简单,可以直接调用延时函数,但是实际的项目中往往在大循环里有很多事要做,对于实时性要求较高的场合就不行了。 为了避免使用延时,可以使用定时器中断产生一个标志位,到了时间标志位置1,在主程序里面只需要检测标志位,置1了才执行一次,然后清标志。其他时间就去做别的事了,而不会在这等待了。 最好的例子就是数码管的显示,使用中断调显示。然后是按键检测,一般的程序都是做的while(!key)等待按键释放,如果按键一直按着,那后面的程序就永远得不到运行死在这了,其实可以做一个按键标志检测下降沿和上升沿就可以避免这个问题了。 2、代码尽量简洁,避免重复

在10天学会单片机那本书上看到写的数码管显示那部分代码,选中一个位,然后送数据,再选中一个位,再送数据,依次做完。代码重复率太高了,不仅占用过多的类存,而且执行效率差可读性差,仅仅是实现了功能而已,实际的编程可以做一个循环,for循环或者while循环。这样的代码看起来更有水平。 3、合理使用宏定义 在程序中如果某个变量或寄存器经常用到,可以使用宏定义定义一个新的名代替它。这样的好处是方便修改,比如液晶的数据端总线接的P1,现在想改到P0,那么只需要修改宏定义这里就可以了,编译器编译的时候,会自动的把定义的名替换成实际的名称。 4、使用尽量小的数据类型 比如某个变量的值范围是0~255,那么就定义成unsignedchar,当然也可以定义成unsignedint,但是这样造成了内存的浪费,而且运算时效率要低一点。 如果数据没有负数的话,尽量定义成无符号的类型。应尽量避免定义成浮点型数据类型或双精度(占8个字节)类型,这两种类型运算时很消耗CPU资源。 比如采集电压范围是0-5v,精确到小数点后三位,可以把采集到的数据扩大1000倍,即使最大也才到5000,然后多采集几次做个滤波算法,最后电压算出来后只需要在第一位后面加个小数点就可以了,变量定义成unsignedint型变量就没问题了。 5、避免使用乘除法 乘除法很消耗CPU资源,查看汇编代码会发现,一个乘除法运算会编译出10几甚至几10行代码。如果是乘以或除以2的n次方,可以用<<或>>来实现,这种移位运算在编译时就已经算好了,所以代码很简洁,运算效率就高。但是需要特别注意运算符的优先级问题。

如何提高VBA代码的运行速度

如何提高代码的运行速度(VB/access Vba) 本文描述了如何通过一些技术手段来提高编程代码的执行效率。这些手段可以分为两个大的部分:编码技术和编译优化技术。本文从编码技术和编译技术来讨论。大家发现有好的代码,也请回贴或更新。 第一部分:编码技术。 下面的这些方法(到现在为止共27种)可以帮助你提高代码的运行速度: 1. 使用整数(Integer)和长整数(Long) 提高代码运行速度最简单的方法莫过于使用正确的数据类型了。也许你不相信,但是正确地选择数据类型可以大幅度提升代码的性能。在大多数情况下,程序员可以将Single,Double和Currency类型的变量替换为Integer或Long类型的变量,因为VB处理Integer和Long的能力远远高于处理其它几种数据类型。下面是排序: Long 最快 Integer . Byte . Single . Double . Currency 最慢 在大多数情况下,程序员选择使用Single或Double的原因是因为它们能够保存小数。但是小数也可以保存在Integer类型的变量中。例如程序中约定有三位小数,那么只需要将保存在Integer变量中的数值除以1000就可以得到结果。根据我的经验,使用Integer和Long替代Single,Double和Currency后,代码的运行速度可以提高将近10倍。 2. 避免使用变体 对于一个VB程序员来说,这是再明显不过的事情了。变体类型的变量需要16个字节的空间来保存数据,而一个整数(Integer)只需要2个字节。通常使用变体类型的目的是为了减少设计的工作量和代码量,也有的程序员图个省事而使用它。但是如果一个软件经过了严格设计和按照规范编码的话,完全可以避免使用变体类型。 在这里顺带提一句,对于Object对象也存在同样的问题。请看下面的代码: Dim FSO Set FSO = New Scripting.FileSystemObject 或 Dim FSO as object Set FSO = New Scripting.FileSystemObject 上面的代码由于在申明的时候没有指定数据类型,在赋值时将浪费内存和CPU时间。正确的代码应该象下面这样:

教你如何提高电脑程序的运行速度

教你如何提高电脑程序的运行速度!一、清理磁盘和整理磁盘碎片。... 1、在我的电脑窗口,右击要清理的盘符—“属性”—“清理磁盘”--勾选要删除的文件--确定--是。 2、清除临时文件,开始—运行—输入%temp% --确定。 3、用优化大师或超级兔子清理注册表和垃圾文件。 4、关闭一些启动程序,开始-运行-msconfig---启动,除杀毒软件、输入法外一般的程序都可以关掉。 5、删除不用的程序软件。 6、整理磁盘碎片--开始--所有程序--附件--系统工具--磁盘碎片整理程序--选定C--分析--碎片整理。 二、用优化大师或超级兔子优化你的计算机,再挑选以下办法进行再优化。 1、禁用闲置的IDE通道 右键点击“我的电脑-属性”,然后点击“硬件”接着点击“设备管理器”,在其中打开“IDE ATA/PATA控制器”然后分别进入主要和次要IDE通道,选择“高级设置”,在这里找到“当前传送模式”为“不适用”的一项,将此项的“设备类型”设置为“无”。 2、优化视觉效果

右键单击“我的电脑”--“属性”—“高级”,在“性能”栏中,点击“设置”--“视觉效果”,调整为最佳性能,或只保留一些必要的项目。 3、启动和故障恢复 "我的电脑"--"属性"--"高级"--"启动和故障修复"中点击“设置”,去掉"将事件写入系统日志","发送管理警报","自动重新启动"选项;将"写入调试信息"设置为"无";点击"编辑",在弹出记事本文件中: [Operating Systems] timeout=30 把30 秒改为0 秒。 4、禁用错误报告 "我的电脑"--"属性”--"高级”--点"错误报告”,点选“禁用错误汇报”,勾选"但在发生严重错误时通知我”--确定。 5、设置系统还原 单击“开始”--“所有程序”--“附件”--“系统工具”—“系统还原”,在系统还原界面,去掉“在所有驱动器上关闭系统工程还原”前边的勾,在“可用的驱动器”区中,选系统盘所在的分区,单击“设置”进入“系统还原设置”窗口,将“要使用的磁盘空间”调到5%或更小,“确定”返回,按上述方法将其它分区设禁用。 6、关闭自动更新

提高电脑运行速度

电脑用久了,运行速度慢了,教你们怎样清除电脑里面的垃圾 1、单击“开始”菜单中“程序”的“附件”,单击“系统工具”再单击“清理磁盘”,选择C盘,确认后,选中所有的“口”,再确认;再在“系统工具”中点击“磁盘碎片整理程序”,这需要花很长时间,请耐心等待。一些程序删除了,但并非完全删除,在计算机的注册表中仍然保留安装信息,如不及时删除这些无用的信息,时间久了,注册表就会变得越来越大,影响系统的工作性能。你可利用下述方法将其彻底删除。 2、在多次安装和反安装后,系统保留了很多无用的DLL文件,应将其删除。单击“开始”菜单,单击“运行”,在文本框内键入“regedit”,打开“注册表编辑器”窗口,依次打开 HKEY_LOCAL_MACHINE\Software\Micosoft\Windows\CurrentVersion\SharedDLL s分支。在对话框的右侧,其键值数据后面的括号中都有一个数字,如果数字为0,说明该DLL文件已成为垃圾,将其删除。 3、将不要的程序卸载时,应在“控制面板”中的“添加/删除程序”选择确定删除,这才是彻底的删除方法。在磁盘分区中删除效果不好,有时有些程序是删除不掉的。即使在“控制面板”中的“添加/删除程序”卸载了,但有的程序在注册表中仍有这些程序的名称,成为垃圾。用上述方法打开“注册表编辑器”窗口,依次打开 HKEY_LOCAL_MACHINE\Software\Micosoft\Windows\CurrentVersion\Uninstall 分支。Uninstall主键下的每一个文件夹对应一个应用程序,打开某一文件夹,即可看到程序反安装的内容,包括程序名DisplayName和UninstallString。找到你删除过的程序名后,右键单击其上层文件夹,选择“删除”。 4、一些不带Uninstall程序或不用安装(复制到计算机中的)即可在Windows 中直接运行的程序,如许多小型游戏等,注册表记录程序运行的参数。如果删除了这样的程序,仍要在注册表中删除这些无用的信息。依次打开 HKEY_CURRENT_USER\Software分支。从各子键中找到相应程序的文件夹后,将其删除。你也可单击“编辑”|“查找”命令逐一查找包含这些软件信息的子键或键值项,进行彻底清理 这是高手最常用的第一快捷组合键。这个快捷键组合可以将桌面上的所有窗口瞬间最小化,无论是聊天的窗口还是游戏的窗口……只要再次按下这个组合键,刚才的所有窗口都回来了,而且激活的也正是你最小化之前在使用的窗口! -这个就是winkey winkey+f : 不用再去移动鼠标点“开始→搜索→文件和文件夹”了,在任何状态下,只要一按winkey+f就会弹出搜索窗口。

提高PLC程序运行速度的编程方法

提高PLC程序运行速度的编程方法 一、根据工程实际需求,进行功能块规划,编写子程序 在PLC中,子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,如果条件不满足子程序调用时,程序的扫描就仅在主程序中进行,不再去扫描这段子程序,这样就减少了不必要的扫描时间。 二、用字或双字数据传送给DO点方法来控制输出 在PLC的应用中通常都会有大量的输出控制,用字或双字数据传送给DO 点方法来控制输出可以提高速度,只要根据实际应用的要求,合理分配输出地址,变换控制输出控制字,可以大大减少PLC程序执行的步数,从而加快PLC 的程序运行速度。 三、脉冲触发SET、RESET PLC中,使用SET指令只执行一次即可,不必每次扫描都执行这个指令,很适合与脉冲输出(PLS/PLF)指令配合使用。有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间 四、避免类型转换,方法如下 以S7-200为例,它的内存格式与我们常用的PC机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。 如我们定义符号时将字变量定义在VW2,同时保持VW0的值为零。则程序中可以用VW2以字型访问该变量,同时也可以VD0以双字型访问,避免了类型转换。 为了避免使用时混淆,最好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀: b----字节型变量(byte) w----字型变量(word)

提高C程序运行效率

提高C程序运行效率 1、选择合适的算法和数据结构 应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,都可以大大提高程序执行的效率。.选择一种合适的数据结构也很重要,比如你在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。 数组与指针语句具有十分密码的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。但是在Keil中则相反,使用数组比使用的指针生成的代码更短。。 3、使用尽量小的数据类型 能够使用字符型(char)定义的变量,就不要使用整型(int)变量来定义;能够使用整型变量定义的变量就不要用长整型(long int),能不使用浮点型(float)变量就不要使用浮点型变量。当然,在定义变量后不要超过变量的作用范围,如果超过变量的范围赋值,C编译器并不报错,但程序运行结果却错了,而且这样的错误很难发现。 在ICCA VR中,可以在Options中设定使用printf参数,尽量使用基本型参数(%c、%d、%x、%X、%u和%s格式说明符),少用长整型参数(%ld、%lu、%lx和%lX格式说明符),至于浮点型的参数(%f)则尽量不要使用,其它C编译器也一样。在其它条件不变的情况下,使用%f参数,会使生成的代码的数量增加很多,执行速度降低。 4、使用自加、自减指令 通常使用自加、自减指令和复合赋值表达式(如a-=1及a+=1等)都能够生成高质量的程序代码,编译器通常都能够生成inc和dec之类的指令,而使用a=a+1或a=a-1之类的指令,有很多C编译器都会生成二到三个字节的指令。在A VR单片适用的ICCA VR、GCCA VR、IAR等C编译器以上几种书写方式生成的代码是一样的,也能够生成高质量的inc和dec 之类的的代码。 5、减少运算的强度 可以使用运算量小但功能相同的表达式替换原来复杂的的表达式。如下: (1)、求余运算。 a=a%8; 可以改为: a=a&7; 说明:位操作只需一个指令周期即可完成,而大部分的C编译器的“%”运算均是调用子程序来完成,代码长、执行速度慢。通常,只要求是求2n方的余数,均可使用位操作的方法来代替。 (2)、平方运算 a=pow(a,2.0); 可以改为: a=a*a;

如何优化VBA代码并使程序尽可能快的运行

如何优化VBA代码并使程序尽可能快的运行 速度问题一直是VBA程序值得关注的一个方面。当您编写了一个对大量数据进行操作的程序后,在运行时可能会发现程序运行得很慢,有的甚至达好几分钟,就像Excel应用程序已崩溃了一样。但当您发现程序确实在运行,并得到正确的结果后,您可能就会想到如何使程序更快的运行了。当然,代码运行速度慢可能是VBA程序的一个缺点,这也可能是程序语言本身的一个原因,但我们也可以找到一些方法优化VBA代码并使程序尽可能快的运行。 下面是我整理的一些优化VBA代码或提高程序运行速度的方法,有些方法是我们在编程中好的做法和应该养成的好习惯,希望能带给您一些有益的参考。高质量的程序和运行效率是需要不断实践,并在实践中不断总结和积累经验的,也希望您能将在编写程序过程中发现的一些优化方法介绍给大家共享。 1、尽量简化代码 通过简化代码,可以提高程序的性能。您可以将通用过程编写为子过程来调用。例如,假设有一个应用程序需要在不同的地方实现查找一定范围内的某个特殊条目,在一个没有简化代码的应用程序中,不同的过程可能需要应用各自的算法以实现在某个范围内查找某一条目,修改每个过程使其采用一个更有效的算法并不是一件很容易的事。而一个简化的程序则只有一个查找算法,即将该查找算法编写成通用的子程序,需要查找某个范围的过程都调用该子程序,通过在查找方法的子程序中优化查找算法,使得调用该方法的所有过程都享受性能提高所带来的好处。 另外,删除所有无关的代码,这在所录制宏中表现得尤为明显。在录制宏时,经常会产生一些与所实现的功能无关的代码,您可以将这些代码删除,以使得代码得以简化。 在下面将要讲到的设置对象变量代替长对象引用,使用With…End With语句、执行For Each…Next循环语句,根据程序环境尽量减少OLE引用,等等,均是简化代码的好方法。 2、强制声明变量 在VBE编辑器中的菜单“工具——选项”对话框中“编辑器”选项卡中,您应该始终保持“要求变量声明”复选框被选中,这样将在模块代码顶部出现Option Explicit 语句,要求您在编写代码时对所有出现的变量均进行声明,这样,在使用变量时减少内存需求并加速性能。 (1)要节省内存资源,必须始终用特定的数据类型声明所有变量。如果不使用特定的数据类型声明变量,VBA会创建Variant类型的变量,这将比任何其他数据类型要求更多的内存。 (2)清楚每种数据类型需要多少内存以及它可以存储的值的范围。除使用较小的数据类型会导致隐性转换的情况外,应始终使用尽可能小的数据类型。例如,因为Integer类型的变量将被转换成Long类型的变量,应该将那些存储整型值的变量声明为Long类型,而不是Integer类型。 (3)除非确实需要,应避免使用浮点数据类型。尽管Currency数据类型更大,但它比Single 数据类型快,因为Currency数据类型不使用浮点处理器。 (4)如果在一个过程中多次引用一个对象,可以创建对象变量,并将对给对象的引用指派给它。因为对象变量存储对象在内存中的位置,VBA将不必再次查找其位置。 (5)将对象变量声明为特定的类型(不是Object类型),以便利用早期绑定。

C语言程序设计优化(提速)

1对以下程序代码进行调整,提升程序的运行速度:scanf("%c", &ch); printf("%c", ch); 改:用getc har(),putchar(); 2对以下程序代码进行调整,提升程序的运行速度:if (m / n > 9) { printf("ok\n"); } 改:乘法运算比除法速度快 3对以下程序代码进行调整,提升程序的运行速度:int n=5, m=6; n = n + 1; m = m - 1; 改:n++; m—更快 4对以下程序代码进行调整,提升程序的运行速度:scanf("%d", &num1); scanf("%d", &num2); scanf("%d", &num3);

scanf("%d", &num4); scanf("%d", &num5); scanf("%d", &num6); 改:可写成一个:scanf(“%d%d%d…”, &…) 5对以下程序代码进行调整,提升程序的运行速度:double x=2; printf( "%.0f的4次方等于 %.0f\n", x, pow(x, 4));改:将pow(x,4)改作:x*x*x*x; 6对以下程序代码进行调整,提升程序的运行速度:for (i=0; i

7对以下程序代码进行调整,提升程序的运行速度: int i, n, sum, num; n = 0; sum = 0; num = 0; scanf("%d", &n); for (i=1; i<=n; i++) { scanf("%d", &num); sum += num; } 改:去掉多余的赋值:n=0和num=0; sum=0写成初始化形式 8对以下程序代码进行调整,提升程序的运行速度: if (num >= 0) { printf("num是大于或等于0的数\n"); } if (num < 0) {

提高写代码的能力

提高写代码的能力(转载) 2012-07-25 22:38:02| 分类:默认分类|字号订阅 首先让我们看一看刚入软件公司会出现的情况: 1.你可能会常常发现,写了一段代码后,编译程序时是一大堆的出错(原因:语法不熟) ──别担心,这是每个程序员必须经历的事,这时候你就需要更大的耐心及细心, 对每一行代码进行仔细人阅读并改正,这个很重要,这可以培养你的理解代码能力,所以要常读程序,不要等到程序运行以后才知道你的程序的结果。 ──如何避免:在写代码以前,要认真的学习计算机语言的语法,如关键点,易错点,易忘点。同时要自已动手写自已的测试代码,而尽量不要抄别人的代码示例。即使抄,在学习阶段也尽量不要每一行一模一样的对着抄。而应对着代码示例写有所不同的例子。 比如:在学java 知识点时,你最好建一个工程把所有的代码都写到这个工程中,以便对照分析学习. 2.你可能会常常发现,写完一段码后,编译通过,可是运行起来却出来很多逻辑上的错误。(原因:理解错误或逻辑上想错了) ──提高逻辑思维和理解能力 3.拿到一个需求却不知从那里开始(对系统不太了解) 4.常常为了一个小小的错误用了很长的时间,不知从那里查,也查不出结果 5.常常做出来的东西是有了东却少了西(考虑不全) 6.有时为了一个特殊功能模块的实现查了很工时间却没有查出结果来(备查的资料不全) 7.有时是否要项目经理叫你做东,你做了完全没有必要的西?(沟通不及时) 8.有时为了能提前完成某一个任务,加班到深夜,可是到了明天却效率低下,还不如不加班(要注意休息) 9.有时自已认为已测好了好多次,可以保证不会出错,可是经测试人员一测试却很多错误(不够细心或测试方法有问题) 10.有时为了避免出错,常常全比写代码的时间超出两倍用于测试(方法有误) 11.有时写好了一段代码给质量管理人员时却因为代码不够规范而导致重写?(代码不够规范)

怎样提高代码效率精编版

怎样提高代码效率文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重要,比如正确地、巧妙地运用类和类,它能够显着地提高程序的性能。下面我们就来具体地分析一下这方面的问题。 1、尽量指定类的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如。为String类指定final防止了人们覆盖length()方法。另外,如果指定一个类为final,则该类所有的方法都是final。Java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50% 。 2、尽量重用对象。特别是String 对象的使用中,出现字符串连接情况时应用StringBuffer 代替。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。因此,生成过多的对象将会给程序的性能带来很大的影响。 3、尽量使用局部变量,调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其他变量,如静态变量、实

例变量等,都在堆(Heap)中创建,速度较慢。另外,依赖于具体的编译器/JVM,局部变量还可能得到进一步优化。请参见《尽可能使用堆栈变量》。 4、不要重复初始化变量默认情况下,调用类的构造函数时, Java会把变量初始化成确定的值:所有的对象被设置成null,整数变量(byte、short、int、long)设置成0,float和double变量设置成,逻辑值设置成false。当一个类从另一个类派生时,这一点尤其应该注意,因为用new关键词创建一个对象时,构造函数链中的所有构造函数都会被自动调用。 5、在JAVA + ORACLE 的应用系统开发中,java中内嵌的SQL语句尽量使用大写的形式,以减轻ORACLE解析器的解析负担。 6、 Java 编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,即使关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,会导致严重的后果。 7、由于JVM的有其自身的GC机制,不需要程序开发者的过多考虑,从一定程度上减轻了开发者负担,但同时也遗漏了隐患,过分的创建对象会消耗系统的大量内存,严重时会导致内存泄露,因此,保证过期对象的及时回收具有重要意义。JVM回收垃圾的条件是:对象不在被引用;然而,JVM的GC并非十分的机智,即使对象满足了垃圾回收的条件也不一定会被立即回收。所以,建议我们在对象使用完毕,应手动置成null。

提高PLC程序运行速度的编程方法有哪些

提高PLC程序运行速度的编程方法有哪些 1:根据工程实际需求,进行功能块规划,编写子程序 在PLC中,子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,如果条件不满足子程序调用时,程序的扫描就仅在主程序中进行,不再去扫描这段子程序,这样就减少了不必要的扫描时间。 2:用字或双字数据传送给DO点方法来控制输出 在PLC的应用中通常都会有大量的输出控制,用字或双字数据传送给DO点方法来控制输出可以提高速度,只要根据实际应用的要求,合理分配输出地址,变换控制输出控制字,可以大大减少PLC程序执行的步数,从而加快PLC的程序运行速度。 3:脉冲触发SET、RESET PLC中,使用SET指令只执行一次即可,不必每次扫描都执行这个指令,很适合与脉冲输出(PLS/PLF)指令配合使用。有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间 4:避免了类型转换,方法如下: 以S7-200为例,它的内存格式与我们常用的PC 机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。 如我们定义符号时将字变量定义在VW2,同时保持VW0 的值为零。则程序中可以用VW2 以字型访问该变量,同时也可以VD0 以双字型访问,避免了类型转换。 为了避免使用时混淆,最好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀: b ---- 字节型变量(byte) w ---- 字型变量(word) d ---- 双字变量(double) r ---- 实型变量(real) f ---- 位变量(flag) btn --- 自复位按钮式输入(button) sw ---- 切换开关或自锁按钮输入(switch)

提高MATLAB的运行速度

首先说说Matlab与其他语言的差异:例如对于C或者C++来说,只要算法的思想不变、采用的数据结构相同,不同人写出来的语句在效率上一般不会产生太大的差别。所以,对于C来说,程序的好坏一般由算法来决定。但是,在matlab中,同样的算法、同样的结构、同样的流程,如果采用的语句不一样,在效率上就会大大不同。所以,我认为,使用matlab 比使用其他语言更加困难,也显得matlab更难以掌握。另外,由于matlab在存储管理上的不便,使得在同时提高时空两域的效率变得更加困难,特别是在空间上(因为在时间上matlab提供了profiler这个非常有用的工具,但是在空间上就没有)。当需要处理大量的数据时,精简时空两域的程序语句就尤为重要了。 空间上: 1.建议使用A=logical(sparse(m,n)),不建议使用A=sparse(false(m,n)),两者结果一样,但是后者生成m×n的临时矩阵,浪费空间,且当m、n很大时,后者不一定能申请成功; 2.使用sparse几点注意: a)只能用在二维以下的矩阵上; b)由于matlab按照“先行后列”的方式读取数据(即先把第一列所有行读取完以后再读取第二列的各行),因此定义稀疏矩阵时,最好“行数>列数”,这样有利于寻址和空间的节省(自己试试a=sparse(10,5);whos a和b=sparse(5,10);whos b就知道了); c)对大型矩阵用sparse非常有效(不但节省空间,而且加快速度,强烈推荐!这在动态申请数组空间的时候尤其方便,当然了,数组不是太大的时候也可以使用eval即字符串的方法),但对小型矩阵使用反而增加存储量(自己试试a=false(5,1);whos a和 b=logical(sparse(5,1));whos b就知道了),相信这是由稀疏矩阵需要存储额外的信息引起的。 3.尽量按照精度来选择数据的类型,例如,如果只需用到0-255之间的整数,则定义矩阵为uint8型就ok了,定义方式:A=zeros(10,10,’uint8’);可以用intmin(‘uint8’)和intmax(‘uint8’)返回该种类型的最值。 时间上: 1.在for循环中,清零操作用赋值语句A=B,其中B是在for循环外的一个同A大小一样的全0阵,不要使用A(:)=0;但这样会大大影响后面的逐点运算速度。这个问题要请教高手,那就是“个别语句的改动会引起其他语句的执行速度”。例如分别运行3万多次下面代码,但执行时间有较大差别: iLen=length(find(alRegion));%0.58s if iLen>=iThreshold_2%0.05s …

如何才能提高软件的开发效率及写代码效率

本文的适应读者:刚毕业的学生,并刚入软件公司同时又打算在软件业有所发展的人 首先让我们看一看刚入软件公司会出现的情况: 1.你可能会常常发现,写了一段代码后,编译程序时是一大堆的出错 (原因:语法不熟)──别担心,这是每个程序员必须经历的事,这时候你就需要更大的耐心及细心,对每一行代码进行仔细人阅读并改正,这个很重要,这可以培养你的理解代码能力,所以要常读程序,不要等到程序运行以后才知道你的程序的结果。 ──如何避免:在写代码以前,要认真的学习计算机语言的语法,如关键点,易错点,易忘点。同时要自已动手写自已的测试代码,而尽量不要抄别人的代码示例。即使抄,在学习阶段也尽量不要每一行一模一样的对着抄。而应对着代码示例写有所不同的例子。 比如:在学java 知识点时,你最好建一个工程把所有的代码都写到这个工程中,以便对照分析学习. 2.你可能会常常发现,写完一段码后,编译通过,可是运行起来却出来很多逻辑上的错误。(原因:理解错误或逻辑上想错了)──提高逻辑思维和理解能力 3.拿到一个需求却不知从那里开始(对系统不太了解) 4.常常为了一个小小的错误用了很长的时间,不知从那里查,也查不出结果 5.常常做出来的东西是有了东却少了西(考虑不全) 6.有时为了一个特殊功能模块的实现查了很工时间却没有查出结果来(备查的资料不全) 7.有时是否要项目经理叫你做东,你做了完全没有必要的西?(沟通不及时) 8.有时为了能提前完成某一个任务,加班到深夜,可是到了明天却效率低下,还不如不加班(要注意休息) 9.有时自已认为已测好了好多次,可以保证不会出错,可是经测试人员一测试却很多错误(不够细心或测试方法有问题) 10.有时为了避免出错,常常全比写代码的时间超出两倍用于测试(方法有误) 11.有时写好了一段代码给质量管理人员时却因为代码不够规范而导致重

如何提高VB程序的运行速度

如何提高VB 程序的运行速度 整理: glacier282 什么是一个高效的软件?一个高效的软件不仅应该比实现同样功能的软件运行得更快,还应该消耗更少的系统资源。这篇文章汇集了作者在使用VB进行软件开发时积累下来的一些经验,通过一些简单的例子来向你展示如何写出高效的VB代码。其中包含了一些可能对VB程序员非常有帮助的技术。在开始之前,先让我陈清几个概念。 让代码一次成型:在我接触到的程序员中,有很多人喜欢先根据功能需求把代码写出来,然后在此基础上优化代码。最后发现为了达到优化的目的,他们不得不把代码再重新写一遍。所以我建议你在编写代码之前就需要考虑优化问题。 把握好优化的结果和需要花费的工作之间的关系:通常当完成了一段代码,你需要检查和修改它。在检查代码的过程中,也许你会发现某些循环中的代码效率还可以得到进一步的改进。在这种情况下,很多追求完美的程序员也许会立马修改代码。我的建议是,如果修改这段代码会使程序的运行时间缩短一秒,你可以修改它。如果只能带来10毫秒的性能改进,则不做任何改动。这是因为重写一段代码必定会引入新的错误,而调试新的代码必定会花掉你一定的时间。程序员应该在软件性能和开发软件需要的工作量之间找一个平衡点,而且10毫秒对于用户来说也是一个不能体会到的差异。 在需要使用面向对象方法的时候尽量使用它;VB提供的机制不完全支持面向对象的设计和编码,但是VB提供了简单的类。大多数人认为使用对象将导致代码的效率降低。对于这一点我个人有些不同的意见;考察代码的效率不能纯粹从运行速度的角度出发,软件占用的资源也是需要考虑的因素之一。使用类可以帮助你在整体上提升软件的性能,这一点我会在后面的例子中详细说明。 当你编写VB代码的时候,希望你能把上面几点作为指导你编码的原则。我把文章分为两个部分:如何提高代码的运行速度和编译优化。 如何提高代码的运行速度

提高PLC程序运行速度的编程方法

提高PLC程序运行速度的编程方法 1:根据工程实际需求,进行功能块规划,编写子程序 在PLC中,子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,如果条件不满足子程序调用时,程序的扫描就仅在主程序中进行,不再去扫描这段子程序,这样就减少了不必要的扫描时间。 2:用字或双字数据传送给DO点方法来控制输出 在PLC的应用中通常都会有大量的输出控制,用字或双字数据传送给DO点方法来控制输出可以提高速度,只要根据实际应用的要求,合理分配输出地址,变换控制输出控制字,可以大大减少PLC程序执行的步数,从而加快PLC的程序运行速度。 3:脉冲触发SET、RESET PLC中,使用SET指令只执行一次即可,不必每次扫描都执行这个指令,很适合与脉冲输出(PLS/PLF)指令配合使用。有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间 4:避免了类型转换,方法如下: 以S7-200为例,它的内存格式与我们常用的PC 机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。 如我们定义符号时将字变量定义在VW2,同时保持VW0 的值为零。则程序中可以用VW2 以字型访问该变量,同时也可以VD0 以双字型访问,避免了类型转换。 为了避免使用时混淆,最好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀: b ---- 字节型变量(byte) w ---- 字型变量(word) d ---- 双字变量(double) r ---- 实型变量(real) f ---- 位变量(flag) btn --- 自复位按钮式输入(button) sw ---- 切换开关或自锁按钮输入(switch) sig --- 传感器、编码等电平信号输入(signal) rly --- 输出继电器位(relay) …… 当然,这个根据个人习惯来,没有定则,主要是利于自己区分。 假如有一个字类型变量名为V arName,为使用前面的转换技巧,我们可以这样定义: wV arName ---- VW2 dV arName ---- VD0 在程序初始化时将VW0 清零(如果是不需要记忆的变量,直接将dV arName 清零也可)或者在数据块中将VW0 设置为零。则以后需要以字类型访问变量时就用wV arName,需要以双字类型访问变量时就用dV arName。完全不需要类型转换。 本方法可以极大的减少程序语句数,使程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。 缺点是要多占用两字节的内存,以后程序中不能使用VW0。但S7-200 的RAM 空间很大,一般是用不完的,以226 为例,有多达10K 的RAM,偶从来没有超过1K。这些RAM 都是花钱买来的,

相关文档
相关文档 最新文档