[转]找出性能差的语句
摘要:[转]找出性能差的语句1 找出效率低的语句SELECTTOP10 qs.total_worker_time,qs.total_logical_reads,qs.last_logical_writes,qs.plan_handle, qs.execution_count, (SELECTSUBSTRING(text,qs.statement_start_offset/2+1, (CASEWHENqs.statement_end_offset=-1 THENLEN(CONVERT(nvarchar(max),text))*2 ELSEqs.statement_end_offset END-qs.s
阅读全文
posted @
2013-11-11 17:33
wavegui
阅读(266)
推荐(0)
Nginx源码分析-内存池
摘要:Nginx的内存池实现得很精巧,代码也很简洁。总的来说,所有的内存池基本都一个宗旨:申请大块内存,避免“细水长流”。
一、创建一个内存池
nginx内存池主要有下面两个结构来维护,他们分别维护了内存池的头部和数据部。此处数据部就是供用户分配小块内存的地方。
//该结构用来维护内存池的数据块,供用户分配之用。
阅读全文
posted @
2012-03-19 12:33
wavegui
阅读(687)
推荐(0)
.NET性能优化方面的总结(转)
摘要:1. C#语言方面
1.1 垃圾回收
垃圾回收解放了手工管理对象的工作,提高了程序的健壮性,但副作用就是程序代码可能对于对象创建变得随意。
1.1.1 避免不必要的对象创建
由于垃圾回收的代价较高,所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建。以下列举一些常见的情形。
1.1.1.1 避免循环创建对象 ★
如果对象并不会随每次循环而改变状态,那么在循环中反复创建对象将带来性能损耗。高效的做法是将对象提到循环外面创建。
1.1.1.2 在需要逻辑分支中创建对象
如果对象只在某些逻辑分支中才被用到,那么应只在该逻辑分支中创建对象。
1.1.1.3 使用常量避免创建对象
程序中不应出现如 new Decimal(0) 之类的代码,这会导致小对象频繁创建及回收,正确的做法是使用Decimal.Zero常量。我们有设计自己的类时,也可以学习这个设计手法,应用到类似的场景中。
1.1.1.4 使用StringBuilder做字符串连接
阅读全文
posted @
2012-02-20 21:25
wavegui
阅读(694)
推荐(1)