![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序优化
LazyCoder
这个作者很懒,什么都没留下…
展开
-
float 与 double 的优化测试
using System;namespace speed{ class Program { static void Main(string[] args) { int i, j; float f1 = 7.125f, f2 = 7.125f; double d1 = 7.1原创 2011-11-18 22:24:39 · 929 阅读 · 0 评论 -
减少冗余计算的优化对比
优化前的代码如下所示,这是一个旋转点的函数,其中Sin(Angle),Cos(Angle)都各运算了两次,因此存在冗余计算。通过2次优化 效率有 2.2秒 提升到 1.7秒,再提升到1.5秒。冗余计算优化还是非常有效果的using System;using System.Drawing;namespace speed{ class Program {原创 2011-11-18 23:05:18 · 490 阅读 · 0 评论 -
整型 右移 与 除法 的优化比较
如今网络上有一种呼声,说现在的编译器足够智能,会对代码自动地进行一些常见的优化,一些老的优化方法已经不再适用了,比如用右移代替除法运算、预计算等等。很可惜,如今的C# 虽然具有一些编译优化的功能,但还不象网络上所传颂的智能编译器那样的智能。经过实验发现,用右移代替除法运算、预计算等等技巧显然并未过时;经过实验发现:对于整形来说,右移一位确实比除以2要快一些,大约快了 2%。usin原创 2011-11-18 22:45:37 · 3405 阅读 · 0 评论 -
预计算优化
预计算,经过实验发现,表达式的写法影响了C# 的预计算功能,比如,i=j*(2d/3d)编译器就可以对其进行优化,编译的时候,编译器会先求出2d/3d的值,然后把结果0.66…编译到目标代码中,所以实际编译的代码等价于i=j*0.66…;而如果是 i=j*2d/3d ,编译器不会对其进行优化,所以,虽然两式运算结果完全相同,但是运算速度却是大相径庭;如果充分的利用预计算功能,可以极大的提高代码原创 2011-11-18 22:50:57 · 731 阅读 · 0 评论 -
选择同步操作方法或异步操作方法
有关何时使用同步操作方法或异步操作方法的准则。这只是一些准则;您必须逐个检查每个应用程序以确定异步操作方法是否能帮助提高性能。通常,在满足以下条件时使用同步管线:操作很简单或运行时间很短。简单性比效率更重要。此操作主要是 CPU 操作而不是包含大量的磁盘或网络开销的操作。对 CPU 绑定操作使用异步操作方法未提供任何好处并且还导致更多的开销。通常,在满足以下转载 2011-11-28 14:18:27 · 528 阅读 · 0 评论