原创 JVM生產調優實戰——項目實戰設置自己的項目jvm大小?

如何設置自己的項目jvm大小? 假設每天100萬個支付訂單,那麼一般用戶交易行爲都會發生在每天的高峯期,比如中午或者晚上。 1.每秒多少筆交易? 平均每秒多少筆交易:100w/(24*60*60)約等於12,就是平均每秒12筆交易

原创 JVM(7)——OOM內存溢出

1.什麼是內存溢出?在哪些區域會發生內存溢出 內存溢出指程序申請內存時,沒有足夠的內存供申請者使用 第一塊Metaspace區域裏可能發生OOM 第二塊可能發生OOM的區域,就是每個線程的虛擬機棧內存。 第三塊可能發生內存溢出的區

原创 hashmap中擴容數組遷移實現原理?爲什麼初始化大小要2的冪次方

1.爲什麼初始化大小要2的冪次方 如果初始化大小不是2的冪次方,就會導致hash & (n-1)的時候,hash的值會被幹擾到,

原创 Spring IOC源碼解析(上)——Bean的加載

Spring IOC源碼解析 1.以XMl創建IOC運行過程 創建IOC運行過程可以分爲定位,加載,註冊全過程。 1.編寫個xml方式獲取 ApplicationContext applicationContext=new Cl

原创 JVM(3)——內存相關的核心參數

1.JVM內存相關的幾個核心參數圖解 -Xms:Java堆內存的大小 -Xmx:Java堆內存的最大大小 -Xmn:Java堆內存中的新生代大小,扣除新生代剩下的就是老年代的內存大小了 -XX:PermSize:永久代大小 -

原创 mysql——sql原理

1.SQL語句爲什麼變“慢”了 ​ 當內存數據頁跟磁盤數據頁內容不一致的時候, 我們稱這個內存頁爲“髒頁”。 內存數據寫入到磁盤後, 內存和磁盤上的數據頁的內容就一致了, 稱爲“乾淨頁” , 平時執行很快的更新操作, 其實就是在

原创 mysql——主從複製

1. MySQL主備的基本原理 master將改變記錄到二進制binlog,然後發送給slave slave將master的binlog日誌保存到中繼日誌(relay log) slave解析中繼日誌文件把數據同步到數據庫中,m

原创 JVM入門(1)

文章目錄1.JVM是什麼2.JVM跟我們平時運行在機器上的系統之間是什麼關係3.類加載器的概念4.字節碼執行引擎的概念5.JVM在什麼情況下會加載一個類?6.類加載的過程6.1**驗證階段**6.2**準備階段**6.3**解析階

原创 JVM——分代模型(2)

1.JVM分代模型:年輕代和老年代 大部分對象都是存活週期極短的,少數對象是長期存活的 年輕代:創建和使用完之後立馬就要回收的對象放在裏面 老年代:創建之後需要一直長期存在的對象放在裏面 2.什麼是永久代? JVM裏的永久代其實

原创 JVM(6)—— G1垃圾回收器

1. G1垃圾回收器的工作原理 ParNew + CMS的組合,無論是新生代垃圾回收,還是老年代垃圾回收,都會或多或少產生“Stop the World”現象,對系統的運行是有一定影響的。 G1可以做到讓你來設定垃圾回收對系統的影

原创 使用MAT分析內存快照

1.準備一段示範用的代碼 public static void main(String[] args) throws InterruptedException { List<Data> list=new A

原创 安裝單機版redis

1、安裝單機版redis wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz tar -xzvf tcl8.6.1-src.tar.gz cd /usr/l

原创 搭建redis主從架構,讀寫分離

1、啓用複製,部署slave node wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz tar -xzvf tcl8.6.1-src.tar.gz cd