咱們這個訪問量,徹底不用作性能的,可是出於職業素養考慮,仍是給簡單作了。可是呢,咱們的開發人員吧,都是一些新手吧,老是出現一些很基礎的問題,我在想:若是咱們在淘寶,估計如今要倒閉了的!java
這個問題是最近的一個小web應用,跟進同事測試結果發現的問題,實難想象,一個如此小的應用,會有如此多的基礎性能問題。web
一、慢語句性能
二、應用負載高測試
應用負載高:優化
一、多高算高?線程
以vm 4核這個配置來看,正常沒問題的應用,1如下算正常,1以上的排除外因,應用都仍是有優化空間。code
二、如何查找?進程
抽絲撥繭,一步步分析,定位到代碼層面。開發
本身寫了一個死循環代碼來測試class
public class Test{ public static void main(String args[]){ while(true){ System.out.println(1); } } }
分析步驟:
一、top查看CPU使用率及各進程使用率
top命令查看,這個java進程佔用CPU較高
這個pid進程就是我要找的
經過命令:top -H -p 18523根據pid找出java進程中佔用CPU太高的線程
根據線程id=18523進程使用堆棧信息:jstack -F 18523 >dump.txt
找到java進程耗費CPU較高的線程id查看堆棧信息,看得出是Test這個java文件的第4行有問題