提前准备测试环境。
确保所有的bottleneck处理妥当。
a)使用多线程来处理CPU bound问题
b)使用异步解决I/O bound问题
如果不确定,使用stopwatch测试代码段的运行时间。
使用ants performance profiler工具对整体性能进行评价。
http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/
使用as替代is。
使用ajax和提前拉取数据提高用户体验。
web服务返回文件时记得flush。
对前端文件进行合并减少HTTP连接数。
使用LINQ时确保知道生成的SQL是什么。
并发简单的处理方式:异步,请求队列,无锁缓存。
使用using及时释放资源。
确保理解传递引用和传递值的区别,尤其对JIT动态编译时的执行过程的影响。
单例与静态的合理使用。全局唯一VS线程无关。
确保理解多线程环境下的锁,volatile的使用。
最小化WEB请求,最小化数据库连接。
IQuerable Vs IEnumerable的合理使用。继续build query vs 立刻拉数据到内存。
EF查询时使用AsNoTracking提高性能。
context.Entites.Where(x=>x.Name = "xxx").AsNoTracking().ToList();
LINQ(SQL查询)时只查询关心的列,避免用*