BTrace是Java的安全可靠的動(dòng)態(tài)跟蹤工具。 他的工作原理是通過 instrument + asm 來對(duì)正在運(yùn)行的java程序中的class類進(jìn)行動(dòng)態(tài)增強(qiáng), 加入檢測代...
BTrace是Java的安全可靠的動(dòng)態(tài)跟蹤工具。 他的工作原理是通過 instrument + asm 來對(duì)正在運(yùn)行的java程序中的class類進(jìn)行動(dòng)態(tài)增強(qiáng), 加入檢測代...
隨著系統(tǒng)的長期運(yùn)行奏窑,積累的數(shù)據(jù)量也在不斷的增長嘉熊,隨著業(yè)務(wù)的發(fā)展栅受,增長的速度也在加劇矾屯。當(dāng)積累到巨量的數(shù)據(jù)時(shí)滩届,數(shù)據(jù)庫的性能將急劇下降诊沪。一條查詢SQL就有可能導(dǎo)致整個(gè)數(shù)據(jù)庫僵死。為...
協(xié)程Coroutine砌函,在執(zhí)行時(shí)斩披,可以中斷,轉(zhuǎn)而運(yùn)行其他協(xié)程讹俊,且在適當(dāng)?shù)臅r(shí)候垦沉,又可以返回原有子程序繼續(xù)執(zhí)行。 coroutine 協(xié)程 VS subroutine 子程 子程...
java中volatile聲明變量仍劈,有兩個(gè)作用 保證變量對(duì)所有線程的可見性 禁止指令重排 保證可見性 多線程訪問共享變量時(shí)厕倍,聲明volatile可以保證了共享變量可見性》犯恚可見...
每個(gè)程序員都知道,多線程能提高應(yīng)用吞吐量和處理速度屋群。但不是每個(gè)程序員都知道為什么闸婴? CPU運(yùn)行時(shí),通過將于運(yùn)行時(shí)間分片芍躏,通過調(diào)度來分配給各個(gè)進(jìn)程線程來執(zhí)行。因?yàn)闀r(shí)間片非常短降狠,...
JDK7 JDK7 中hashmap 是通過 桶(數(shù)組)加鏈表的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)的对竣。當(dāng)發(fā)生hash碰撞的時(shí)候,以鏈表的形式進(jìn)行存儲(chǔ)榜配。 JDK 8 JDK7 中hashmap 增...
使用日志facade slf4j 在代碼中不直接使用具體日志LIB庫API否纬,例如log4j,logback等,使用日志facade 庫slf4j蛋褥。使用facade的好處是临燃,與...
spring cache 提供了基于注解的緩存配置方法,其實(shí)現(xiàn)原理和事務(wù)管理的實(shí)現(xiàn)是一樣的, 都是通過 spring aop來實(shí)現(xiàn)的膜廊。spring aop 有一個(gè)問題乏沸, 默認(rèn)...
最近做了一次服務(wù)器遷移, 遷完新服務(wù)器后爪瓜,應(yīng)用在啟動(dòng)時(shí)蹬跃,連接數(shù)據(jù)庫發(fā)生異常java.net.SocketException: Connection reset. JDBC驅(qū)動(dòng)...
按照posix標(biāo)準(zhǔn),系統(tǒng)io分為同步io和異步io兩種铆铆,其中同步io常用的是bio nio蝶缀。異步io有aio。 從程序的角度來看薄货,bio在讀和寫的時(shí)候翁都,會(huì)阻塞,只有當(dāng)程序?qū)⒘?..
X-Forwarded-For(XFF) 是一個(gè) HTTP 擴(kuò)展header字段谅猾,用于標(biāo)記發(fā)起HTTP請(qǐng)求的客戶端的真實(shí)來源IP荐吵。 X-Forwarded-For 請(qǐng)求頭格式...
在做測試的時(shí)候,在chrome 打開了多個(gè)頁面赊瞬,發(fā)現(xiàn)打開第7個(gè)頁面的時(shí)候先煎,就卡了。每個(gè)測試的頁面都會(huì)與服務(wù)器端建立一個(gè)長連接巧涧,并且不釋放薯蝎。查了后端日志,確實(shí)有延遲谤绳。然后查了負(fù)...
該書的內(nèi)容主要是關(guān)注編寫代碼的細(xì)節(jié)占锯,總結(jié)了很多提高代碼可讀性的技巧。對(duì)于一個(gè)軟件系統(tǒng)來說缩筛,即需要宏觀的架構(gòu)決策消略、設(shè)計(jì)思想、模式和指導(dǎo)原則瞎抛,也必須重視微觀的代碼細(xì)節(jié)艺演。 代碼的優(yōu)...
BTrace是Java的安全可靠的動(dòng)態(tài)跟蹤工具。 他的工作原理是通過 instrument + asm 來對(duì)正在運(yùn)行的java程序中的class類進(jìn)行動(dòng)態(tài)增強(qiáng)桐臊。 說他是安全可...
使用CheckStyle檢查編碼規(guī)范 編碼規(guī)范指的是編寫代碼的樣式規(guī)則胎撤。不同的程序員,往往有不一樣的風(fēng)格断凶。單單是拋出使用空格鍵還是TAB鍵的問題伤提,就足以讓程序員演化成針鋒相對(duì)...
剛?cè)肼殯]幾天,才開始熟悉項(xiàng)目代碼认烁,就已經(jīng)聞到了代碼中充斥著各種異味肿男。真是印證了那句話介汹,你越擔(dān)心什么,就越來什么舶沛。果不其然嘹承,沒幾天就碰到了一個(gè)線上的故障,應(yīng)用當(dāng)?shù)袅恕?現(xiàn)象 應(yīng)...
在生產(chǎn)環(huán)境JRE 運(yùn)行在server 模式下冠王, 從日志上看大量的NullPointException日志打印時(shí)赶撰,沒有堆棧信息輸出。查了一下柱彻,JIT編譯會(huì)對(duì)某些異常如果大量的拋...
在實(shí)際編寫切面方法和應(yīng)用切面的時(shí)候豪娜,發(fā)現(xiàn)在對(duì)象內(nèi)的方法之間調(diào)用,是不會(huì)進(jìn)入定義在方法上的切面的哟楷。 場景 存在一個(gè)bean對(duì)象瘤载,對(duì)bean對(duì)象的兩個(gè)方法methodA和meth...
主機(jī)配置 CPU:8核 內(nèi)存: 4G 測試目標(biāo)過程和配置 一個(gè)業(yè)務(wù)處理接口 分層的各個(gè)函數(shù)進(jìn)行切面監(jiān)控執(zhí)行時(shí)間并進(jìn)行日志打印輸出 log4j appender 采用 Roll...