C# PERFORMANCE 性能
1. 最重要的是定位出 hot spot
尽量优化哪些占用了大量时间的方法等,否则费了力气,效果不彰。
2. class 一般不要有空的 dtor
结构无法定义dtor,只有类可以
每一个类只可以有一个dtor
dtor不能继承或是重载
不可直接调用;只能由系统(clr?)自动调用
不可有modifiers或是任何的参数
一个dtor会隐式的调用object的base class的Finalize
即会迭代调用继承链上Finalize方法
空的dtor不该被使用。(会造成效率的低下)
由gc控制何时调用dtor。
可以通过调用Collect来强制gc collection,但是这应该避免
当你的应用程序援引了unmanaged resources,诸如windows,files和网络连接时,你应该使用dtor以释放这些资源。
如果你的程序使用一个昂贵的外部资源,那么我们推荐你在轮到gc调用之前先回收这样的资源。通过使用继承IDisposable接口,并实现Dispose方法。
3. string 和 stringbuilder
如果需要大量的进行 string contact ,建立使用 stringbuilder 。
3.1 可以使用 string.Fromat
3.2 更为复杂使用stringbuilder
(这个的说法很多,很少一致的,还是具体情况具体分析哈)
4. boxing 和 unboxing
装箱和拆箱都是极其昂贵的操作
4.1 NewLateBinding.LateGet
进行诸如这样的操作的时候
bool Equal(object a,object b)
{
return math.abs(a-b) < delta ;
}
double a,b;
调用
Equal(a,b);
在vb中编译器会使用这个来进行一些额外的操作(动态获取变量的实际类型?)
5. 优化的一般原则
设立目标;检查代码以确定需要优化的地方。
首先是更好的设计以及正确的程序;只有当不符合目标时,才进行优化。经过优化的代码往往难以阅读和维护。
如果一定要进行优化,从最慢的那一部分开始:定位需要进行提高的地方。
Performance C#
原创
©著作权归作者所有:来自51CTO博客作者is2120的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:自行車基本知識 (zz)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C performance Optimization
http://www.eventhelix.com/realtimemantra/basics/optimizingcandcppcode.htm
职场 Optimization 休闲 performance -
C#:
C#中$的用法:"$"是在C#6.0出现的一个新特性,其作用相当于对String.format()的简化。s
字符串 c# 新特性 占位符