性能度量算法
TPS和RTsql
好的性能從設計開始緩存
設計思路網絡
分而治之:分層,分區,分模塊,能夠針對性作優化併發
應用無狀態:水平擴展異步
有效使用緩存:關注緩存讀寫比,命中率nosql
異步通訊高併發
nosql:非結構化,非關係型數據,熱點數據工具
多核併發設計:使用線程池,copyonwrite,concurrenthashmap,volatile,reentrantlock,readwritelock,condition,threadlocal性能
考慮使用性能更好的加密算法
考慮使用更好的序列化工具:protobuf,thrift
tpc選擇:http調用每次都須要創建連接,消息頭比較大,性能比不上thrift
合併請求:循環調用某服務,考慮批量調用接口,能夠合併請求
對象池化:避免每次都new一個
合理分配集合大小,避免頻繁擴容及浪費
限制IO讀寫大小,避免oom
單例模式,減小GC
內存泄漏:壓測程序,經過jmap,btrace分析GC
NIO因爲非阻塞,能夠極大提升吞吐量,Netty
壓縮:減小網絡傳輸數據大小
異步化:提升併發能力,將耗時操做異步化,不影響主流程
線程數:控制合理線程數,線程過多致使系統CPU忙於線程切換,下降應用處理能力
減小鎖競爭:不然線程過多,線程之間切換頻繁