re: 管理好你的ThreadLocal 周舒陽 2010-02-01 16:17
@yefeng
這跟線程安全與否無關(guān),這里描述的是當(dāng)你的ThreadLocal變量逃離了它的作用域時會引起的問題,你仍然是在同一個線程的上下文下,但作用域已經(jīng)改變了。你可以將ThreadLocal理解為一個線程內(nèi)的全局變量,但你的應(yīng)用規(guī)定這個ThreadLocal存在一定的邏輯作用域(比如一個request的處理),當(dāng)你跨作用域傳遞它而又不進行重置操作的話就可能會引起問題。ThreadLocalRegistry的目的是提供集中的重置處理,以防止由于“馬虎”引起的問題。
re: String連接性能 周舒陽 2010-01-25 16:12
@changedi
批評的有道理,圖片確實弄大了。已經(jīng)調(diào)小點了。
re: IO性能 周舒陽 2010-01-24 12:47
@libinsong1204@gmail.com
請原諒我的時間相對比較緊張,稍有空閑我會繼續(xù)翻譯,請稍等一段時間。以后我也會爭取在這里首發(fā)一些針對中國讀者的內(nèi)容。(不會讓大家總是比外國人慢半拍的)
re: IO性能 周舒陽 2010-01-24 12:44
@ilovetjf@163.com
1)這不是bufferSize的問題,測試中BufferedInputStream的bufferSize和顯式使用的byte[]的大小相同(8k),這個測試不是為了找出多大的bufferSize是最佳大小,而是為了比較兩種使用buffer方式的性能差異。
2)使用內(nèi)存數(shù)據(jù)是為了放大同步保護對性能的影響,在實際應(yīng)用中大量使用內(nèi)存流的例子隨處可見。比如web應(yīng)用中Etag,minifier,gzip,cache等filter都是要借助于內(nèi)存流來處理數(shù)據(jù)的,所以內(nèi)存流性能的重要性一點也不必磁盤流的低。
我沒明白“而并發(fā)讀寫有時候性能來看低”指的是什么?測試是在單線程下執(zhí)行(文中有說明,請仔細(xì)閱讀)。這里想要證明的是synchronized對單線程的性能影響,之所以強調(diào)這點是因為JVM的相關(guān)資料中有說明對于弱競爭的鎖JIT會進行優(yōu)化,而實際測試結(jié)果顯示優(yōu)化的并不怎么樣。