Performance C#

原创 2012年03月28日 15:19:46
C# PERFORMANCE 性能

//z 2012-3-28 15:04:03 PM IS2120@CSDN

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. 优化的一般原则
设立目标;检查代码以确定需要优化的地方。
首先是更好的设计以及正确的程序;只有当不符合目标时,才进行优化。经过优化的代码往往难以阅读和维护。
如果一定要进行优化,从最慢的那一部分开始:定位需要进行提高的地方。
//z 2012-3-28 15:04:03 PM IS2120@CSDN

版权声明:BG57IV3,未经允许不得转载。

相关文章推荐

How to write the fast code/ high performance in C#

Performance Techniques for C# 4.0 Anthony Moore Contents Contents.1 Overview..1 Patterns by C...

c# - 如何在自己的代码中使用Performance Counters

笔者写了两个类 PerformanceCounterCollector 和 PerformanceCounterCollectorList用来监视不同Counters的值. 其中Performanc...

VB.NET vs. C#, round 2: Pounding on performance--VB.NET vs C#, 第二波:效率碰撞

VB.NET vs C#, 第二波:效率碰撞        从效率的观点看,所有的.NET性能都一样吗?答案可能会让你大吃一惊。看看我们在深一层次研究代码时发现了什么。        如果说所有新技术...

Linux Performance Analysis and Tools(Linux性能分析和工具)

首先来看一张图: 上面这张神一样的图出自国外一个Lead Performance Engineer(Brendan Gregg)的一次分享,几乎涵盖了一个系统的方方面面,任何人,如果没有完善的计...

Indexing NULL table column values for fast SQL performance

Note: Starting in Oracle 11g, there is new "create index" syntax that allows NULL values to be inclu...

如何使用vs2012的performance analysis tool 性能分析工具的使用

如何使用vs2012的performance analysis tool 性能分析工具的使用

A Probabilistic Graphical Model-based Approach for Minimizing Energy Under Performance Constraints

这学期的一门课需要做一个presentation,我从老师提供的论文池中选择了这篇论文A Probabilistic Graphical Model-based Approach for Minim...

46 Tips & Tricks for 2D mobile Performance in Unity

If this is your first jump into the world of Unity, my first tip (this one’s a freebie) is to stop t...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)