系统优化【2】----net程序
来源:互联网 发布:去淘宝买东西怎么付款 编辑:程序博客网 时间:2024/06/05 07:06
1.在适合的场景一定要使用单例模式,减少对象的创建
2.创建对象时避免不必要的对象初始化
3.字符串使用StringBuilder,避免使用"+",避免不必要的ToUpper 或 ToLower 方法。字符串拼装好之后再删除是很低效的写法。
4.使用using,对使用完毕的资源一定要释放。使用IDisposable 接口,避免空析构函数
5.对需要传递的值类型参数,如果不会进行改变,使用应用方式传递。
6.使用泛型,避免装箱和拆箱
7.尽量减小异常的捕捉范围
8.typeof 运算符比对象实例上的 GetType 方法要快,只要可能则优先使用 typeof 运算符。
9.C#主要支持 5 种动态创建对象的方式:
1. Type.InvokeMember
2. ContructorInfo.Invoke
3. Activator.CreateInstance(Type)
4. Activator.CreateInstance(assemblyName, typeName)
5. Assembly.CreateInstance(typeName)
最快的是方式 3 ,与 Direct Create 的差异在一个数量级之内,约慢 7 倍的水平。其他方式,至少在 40 倍以上,最慢的是方式 4 ,要慢三个数量级。
10. 可以把循环的判断条件用局部变量记录下来。局部变量往往被编译器优化为直接使用寄存器,相对于普通从堆或栈中分配的变量速度快。如果访问的是复杂计算属性 的话,提升效果将更明显。
2.创建对象时避免不必要的对象初始化
3.字符串使用StringBuilder,避免使用"+",避免不必要的ToUpper 或 ToLower 方法。字符串拼装好之后再删除是很低效的写法。
4.使用using,对使用完毕的资源一定要释放。使用IDisposable 接口,避免空析构函数
5.对需要传递的值类型参数,如果不会进行改变,使用应用方式传递。
6.使用泛型,避免装箱和拆箱
7.尽量减小异常的捕捉范围
8.typeof 运算符比对象实例上的 GetType 方法要快,只要可能则优先使用 typeof 运算符。
9.C#主要支持 5 种动态创建对象的方式:
1. Type.InvokeMember
2. ContructorInfo.Invoke
3. Activator.CreateInstance(Type)
4. Activator.CreateInstance(assemblyName, typeName)
5. Assembly.CreateInstance(typeName)
最快的是方式 3 ,与 Direct Create 的差异在一个数量级之内,约慢 7 倍的水平。其他方式,至少在 40 倍以上,最慢的是方式 4 ,要慢三个数量级。
10. 可以把循环的判断条件用局部变量记录下来。局部变量往往被编译器优化为直接使用寄存器,相对于普通从堆或栈中分配的变量速度快。如果访问的是复杂计算属性 的话,提升效果将更明显。
- 系统优化【2】----net程序
- 系统优化【2】----net程序
- ASP.NET 程序优化
- .NET程序优化小记
- .net系统编码优化
- asp.net程序性能优化
- asp.net程序性能优化
- .NET程序优化(GCServer )
- .net 系统优化(转)
- ASP.NET错误处理和程序优化
- ASP.NET程序的优化建议
- asp.net程序性能优化的---A
- ASP.NET错误处理和程序优化
- .NET 程序优化性能的七个方面
- .NET 程序优化性能的七个方面
- Asp.net程序性能优化详解
- .NET程序线程启动速度优化
- 优化android程序2
- 用户名、密码、复选框,全选各种验证
- 第二个面向对象的程序
- php 正则匹配字符串为空白字符或空字符
- android自定义控件(七) onMeasure() 测量尺寸
- #ifndef的主要作用是什么?
- 系统优化【2】----net程序
- 将matlab中的二维数组导到java代码里
- oracle的number数据类型
- java将类型T转换为List对象
- 3-2 类与对象 修旱冰场
- C# 泛型简介
- 将私有变为公有
- NaughtyBlog开发过程中用到的mysql触发器和job
- 使用三种不同的方式输出一维数组