最近对一个系统作了些优化, 发现关于高并发系统的性能影响最大的几点, 写出来与大家分享一下:
1.Lock
2.Context Switch
3.Memory Allocation
4.Data Copies
1.Lock
频繁的加锁/解锁对系统的性能可想而已,本来多个CPU(核心)跑得十分欢快, 结果因为锁,而导致CPU不得得停停等等, 效率能高吗?即便不需要等待, 进程内用临界区来同步, 同步的开销也是不小的, 一次EnterCritialSection和一次LeaveCriticalSection比一百次++开销肯定要大吧?
2.Context Switch
Context Switch的开销很多时间并不那么直观, 但如果一个线程的Context Switch一秒钟数以万计的话,用Process Explorer看一下系统的内核时间消耗就明白了。很多时间Context Switch也是Lock 相关的.
3.4
不说了
其它的:
为了追求性能, 可能采取一些策略,比如说以空间换时间(内存比较富足时?)? 反正是有代码的,关键看什么更重要了。但这些都必须在线程安全的前提下。程序老崩溃,性能高有何用?
发表于 @ 2009年01月09日 17:08:00 | 评论( loading... ) | 举报| 收藏