要提升服务器性能,就要有服务器高性能编程技术,就需要自己编码实现。
另外服务器性能的几个性能杀手:
1 数据拷贝,数据从内核态copy到用户态,或者在用户态之间copy会造成性能损失,尽量采用缓存的方式解决(APP服务器内部地数据缓存)。
2 环境切换,要尽可能减少多线程的环境切换造成的开销。
首先要考虑应不应该使用多线程?
如果服务器是单核的,那么采用状态机方式单线程效果最佳。
因为单核服务器是不能并行地处理任务的,有大量的任务提交到服务器,这些任务即使使用了多线程来处理大量任务,
在单核CPU上,这些线程也不能并行处理,又使用了多线程,就会增加线程间的切换开销,效率反而不高。
如果是多核的,合理采用多线程(并不是线程越多越好),可以提升性能。
3 内存分配,可以采用内存池,减少向OS申请内存,做到提前分配。
4 锁竞争,加锁解锁会造成一定的效率衰减。有时应该通过逻辑来避免锁的使用,尽可能减少锁的竞争。
标签:单核,并发,性能,Part1,线程,内存,服务器,多线程
From: https://www.cnblogs.com/Epiephany/p/17106586.html