前言:
現(xiàn)在的主要工作是給出公司的SOA解決方案,在通訊層選用netty的NIO框架,通訊協(xié)議使用Google最新的SPDY協(xié)議草案2,苦于沒有中文版本的SPDY,對英文的理解實(shí)在有些偏差,在架構(gòu)組幾個(gè)人各自看了英文版本的SPDY后,互相討論,現(xiàn)在通訊層快完工,在此總結(jié)一下SPDY協(xié)議,也為SPDY做些貢獻(xiàn)。對于我這樣不是專業(yè)的翻譯人員來說,翻譯的工作量是巨大的,希望各位看官能別著急,能留個(gè)言就是對我最大的支持,歡迎轉(zhuǎn)載,但請保留原文鏈接,我會隨著以后的翻譯不斷斟酌每個(gè)詞的使用,不斷更新已有的翻譯,多謝。
SPDY 協(xié)議 – 草案 2
草案
目錄
1 概述
1.1 文章總覽
1.2 基本定義
2 幀層
2.1 連接
2.2 幀
2.2.1 協(xié)議版本
2.3 控制幀
2.4 數(shù)據(jù)幀
2.5 流
2.5.1 創(chuàng)建一個(gè)流
2.5.2 數(shù)據(jù)交互
2.5.3 半關(guān)閉
2.5.4 關(guān)閉
2.6 數(shù)據(jù)流程
2.7 控制幀
2.7.1 SYN_STREAM
2.7.2 SYN_REPLY
2.7.3 RST_STREAM
2.7.4 HELLO
2.7.5 NOOP
2.7.6 PING
2.7.7 GOAWAY
2.7.8 HEADERS
2.7.9 WINDOW_UPDATE
3 以SPDY協(xié)議實(shí)現(xiàn)HTTP
3.1 響應(yīng)
3.2 服務(wù)器推送
3.2.1 服務(wù)端實(shí)現(xiàn)
3.2.2 客戶端實(shí)現(xiàn)
3.3 部署
3.3.1 服務(wù)器通過AlternateProtocol協(xié)議頭來推薦使用SPDY協(xié)議
3.3.2 依托于SPDY會話的HTTP請求
4 與SPDY草案1不兼容的地方
5 計(jì)劃中的工作/實(shí)驗(yàn)
6 貢獻(xiàn)者
翻譯:Lookis(lookisliu@gmail.com,http://lookis.me)
更新時(shí)間:2010-03-19
文章來源:
http://lookis.me/?p=50
posted @
2010-03-24 10:18 Lookis 閱讀(473) |
評論 (2) |
編輯 收藏
由于時(shí)間關(guān)系,這一次的培訓(xùn)計(jì)劃有變,把JVM調(diào)試單獨(dú)出來做為一節(jié)課,另外新加入課程,預(yù)計(jì)都是下周給新人們上課
文章來源:
http://lookis.me/?p=38
posted @
2010-03-24 10:18 Lookis 閱讀(184) |
評論 (0) |
編輯 收藏
內(nèi)容稍微變化了一點(diǎn),主要講解JVM中GC相關(guān)的部分
PPT:JVM_GC.pdf
示例源碼:src_jvm_gc.rar
講稿:
==========
GC
1.什么是GC:
1)釋放不再使用的內(nèi)存對象以回收內(nèi)存空間
2)壓縮內(nèi)存碎片
2.為什么要讓JVM做GC,而不是程序員來做?
1)把開發(fā)人員從管理內(nèi)存中解放出來,提高生產(chǎn)率
2)安全角度考慮,不會由于失誤/故意錯(cuò)誤釋放內(nèi)存帶來潛在的安全問題
3)弊端:額外地占用CPU,且對于程序員來說”難于”控制
引用計(jì)數(shù)收集器:
start:當(dāng)創(chuàng)建對象,并且指向該對象的引用被分配給一個(gè)變量,這個(gè)對象的引用計(jì)數(shù)被置為1
其他變量被賦值為對這個(gè)對象引用時(shí),i++
一個(gè)對象引用超過生存期或者被設(shè)置成一個(gè)新值時(shí),i–
計(jì)數(shù)為0的對象就可以被收集
當(dāng)收集的時(shí)候,該對象所引用的對象計(jì)數(shù)i–
優(yōu)點(diǎn):速度快,交織在程序運(yùn)行之中
缺點(diǎn):無法檢測出循環(huán)引用
跟蹤收集器:
從根結(jié)點(diǎn)開始跟蹤,對所有跟蹤到的對象以某種方式(和實(shí)現(xiàn)有關(guān))打上標(biāo)記,跟蹤結(jié)束時(shí),就可以對沒打上標(biāo)記的對象實(shí)現(xiàn)收集
優(yōu)點(diǎn):可以回收循環(huán)引用
缺點(diǎn):回收的時(shí)候長時(shí)間獨(dú)占CPU
問題:什么是根結(jié)點(diǎn)
根結(jié)點(diǎn):
和實(shí)現(xiàn)有關(guān):總的來說有以下幾個(gè)方面:
1.局部變量,操作數(shù)棧(參數(shù))
2.常量池中對象:字符串,類名,接口名…
3.JNI調(diào)用,沒有被釋放的
壓縮收集器:
把標(biāo)記為活動(dòng)的對象從原來的區(qū)域越過空閑區(qū)移動(dòng)到堆的另一端
問題:更新移動(dòng)的對象要更新所有的指針(以用于清理)
解決:有些JVM實(shí)現(xiàn)做了一層 間接對象引用層 (不完美,每次取對象都要多一個(gè)步驟)
拷貝收集器:
有兩個(gè)內(nèi)存區(qū)域
把標(biāo)記為活動(dòng)的對象從原來的區(qū)域拷貝到另一個(gè)區(qū)域
同一時(shí)間只有一個(gè)區(qū)域在使用
優(yōu)點(diǎn):在使用的時(shí)候才更新指針
缺點(diǎn):內(nèi)存使用率降低
finalize
時(shí)機(jī):對象被回收時(shí)
流程:收集器第一遍掃描出不再被引用的對象
調(diào)用他們的finalize方法,此時(shí)程序員可以實(shí)現(xiàn)finalize方法做清理工作,可以復(fù)活這個(gè)對象
收集器第二遍掃描,只掃描不再被引用的對象,對沒復(fù)活的對象做清理
jdk1.2以前:可觸及,可復(fù)活,不可觸及
可觸及:從根結(jié)點(diǎn)開始跟蹤可以觸及到
可復(fù)活:從根結(jié)點(diǎn)跟蹤不可觸及,但在自己或者別人的finalize方法里重新使該對象可觸及
不可觸及:finalize方法后也不可觸及
jdk1.2以后:軟引用,弱引用,影子引用
軟引用:做cache
弱引用,做映射:初始化實(shí)例時(shí)默認(rèn)配置,配置修改時(shí)可以通知,如果實(shí)例已經(jīng)不再使用,就不通知
影子引用:處理收集時(shí)的后續(xù)操作,類比finalize,初始化時(shí)要增加一個(gè)ReferenceQueue隊(duì)列參數(shù)
==========
文章來源:
http://lookis.me/?p=32
posted @
2010-03-24 10:18 Lookis 閱讀(216) |
評論 (0) |
編輯 收藏