前言:
現在的主要工作是給出公司的SOA解決方案,在通訊層選用netty的NIO框架,通訊協議使用Google最新的SPDY協議草案2,苦于沒有中文版本的SPDY,對英文的理解實在有些偏差,在架構組幾個人各自看了英文版本的SPDY后,互相討論,現在通訊層快完工,在此總結一下SPDY協議,也為SPDY做些貢獻。對于我這樣不是專業的翻譯人員來說,翻譯的工作量是巨大的,希望各位看官能別著急,能留個言就是對我最大的支持,歡迎轉載,但請保留原文鏈接,我會隨著以后的翻譯不斷斟酌每個詞的使用,不斷更新已有的翻譯,多謝。
SPDY 協議 – 草案 2
草案
目錄
1 概述
1.1 文章總覽
1.2 基本定義
2 幀層
2.1 連接
2.2 幀
2.2.1 協議版本
2.3 控制幀
2.4 數據幀
2.5 流
2.5.1 創建一個流
2.5.2 數據交互
2.5.3 半關閉
2.5.4 關閉
2.6 數據流程
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協議實現HTTP
3.1 響應
3.2 服務器推送
3.2.1 服務端實現
3.2.2 客戶端實現
3.3 部署
3.3.1 服務器通過AlternateProtocol協議頭來推薦使用SPDY協議
3.3.2 依托于SPDY會話的HTTP請求
4 與SPDY草案1不兼容的地方
5 計劃中的工作/實驗
6 貢獻者
翻譯:Lookis(lookisliu@gmail.com,http://lookis.me)
更新時間:2010-03-19
文章來源:
http://lookis.me/?p=50
posted @
2010-03-24 10:18 Lookis 閱讀(473) |
評論 (2) |
編輯 收藏
由于時間關系,這一次的培訓計劃有變,把JVM調試單獨出來做為一節課,另外新加入課程,預計都是下周給新人們上課
文章來源:
http://lookis.me/?p=38
posted @
2010-03-24 10:18 Lookis 閱讀(184) |
評論 (0) |
編輯 收藏
內容稍微變化了一點,主要講解JVM中GC相關的部分
PPT:JVM_GC.pdf
示例源碼:src_jvm_gc.rar
講稿:
==========
GC
1.什么是GC:
1)釋放不再使用的內存對象以回收內存空間
2)壓縮內存碎片
2.為什么要讓JVM做GC,而不是程序員來做?
1)把開發人員從管理內存中解放出來,提高生產率
2)安全角度考慮,不會由于失誤/故意錯誤釋放內存帶來潛在的安全問題
3)弊端:額外地占用CPU,且對于程序員來說”難于”控制
引用計數收集器:
start:當創建對象,并且指向該對象的引用被分配給一個變量,這個對象的引用計數被置為1
其他變量被賦值為對這個對象引用時,i++
一個對象引用超過生存期或者被設置成一個新值時,i–
計數為0的對象就可以被收集
當收集的時候,該對象所引用的對象計數i–
優點:速度快,交織在程序運行之中
缺點:無法檢測出循環引用
跟蹤收集器:
從根結點開始跟蹤,對所有跟蹤到的對象以某種方式(和實現有關)打上標記,跟蹤結束時,就可以對沒打上標記的對象實現收集
優點:可以回收循環引用
缺點:回收的時候長時間獨占CPU
問題:什么是根結點
根結點:
和實現有關:總的來說有以下幾個方面:
1.局部變量,操作數棧(參數)
2.常量池中對象:字符串,類名,接口名…
3.JNI調用,沒有被釋放的
壓縮收集器:
把標記為活動的對象從原來的區域越過空閑區移動到堆的另一端
問題:更新移動的對象要更新所有的指針(以用于清理)
解決:有些JVM實現做了一層 間接對象引用層 (不完美,每次取對象都要多一個步驟)
拷貝收集器:
有兩個內存區域
把標記為活動的對象從原來的區域拷貝到另一個區域
同一時間只有一個區域在使用
優點:在使用的時候才更新指針
缺點:內存使用率降低
finalize
時機:對象被回收時
流程:收集器第一遍掃描出不再被引用的對象
調用他們的finalize方法,此時程序員可以實現finalize方法做清理工作,可以復活這個對象
收集器第二遍掃描,只掃描不再被引用的對象,對沒復活的對象做清理
jdk1.2以前:可觸及,可復活,不可觸及
可觸及:從根結點開始跟蹤可以觸及到
可復活:從根結點跟蹤不可觸及,但在自己或者別人的finalize方法里重新使該對象可觸及
不可觸及:finalize方法后也不可觸及
jdk1.2以后:軟引用,弱引用,影子引用
軟引用:做cache
弱引用,做映射:初始化實例時默認配置,配置修改時可以通知,如果實例已經不再使用,就不通知
影子引用:處理收集時的后續操作,類比finalize,初始化時要增加一個ReferenceQueue隊列參數
==========
文章來源:
http://lookis.me/?p=32
posted @
2010-03-24 10:18 Lookis 閱讀(216) |
評論 (0) |
編輯 收藏
最近公司來了些新人,都是本科生,要為他們準備講解一下JVM的東西,計劃主題有三:JVMGC原理與內存參數的調整,CPU方面的調試,內存方面的調試,想來新人主要還是有這三塊內容需要了解。
文章來源:
http://lookis.me/?p=20
posted @
2010-03-15 17:16 Lookis 閱讀(154) |
評論 (0) |
編輯 收藏
前兩天心情不好,鄰居由于家里來人了,要把住的屋子收回…沒辦法,又要找新的房子了,唉,要能有自己的房子多好..來網上搭一間小樓吧,于是這個blog就誕生了。
空間:ramhost.us里最最便宜的一檔,3美刀/月,雙核CPU,128MB內存,硬盤空間2G,流量50G。這個空間我盯它好久了,本來想是在Google.com離開中國的時候去買來當VPN來翻墻用的,誰知道Google又不出去了……沒辦法,不等他了。
域名:godaddy.com里選來選去,發現lookis.com已經被買走好些年了..到期還有很久,.info的域名挺便宜,不過實在不好看不好記,概然這個地方是給我自己的博客,那就選個.me好了,來介紹介紹自己,也記錄一下自己工作之后的成長,以后也可以子孫后代留下個好聽的域名
搭建過程一波三折啊,本以為搭個WordPress很簡單,實際上也是很簡單,說白了就是裝個mysql,裝個php,裝個nginx,把wp的代碼拷到對應的html目錄下就可以開啟了,可是我這空間是128MB的空間…一進空間就看已經被占用了5MB,裝完了mysql后就迅速被用到了100MB……上個php+nginx,萬幸沒占用多大,最后一上WP,后臺立刻報錯……怎么辦?
開始各種精簡,首先把mysql用最小占用來安裝,用掉90MB,wp的最大內存空間改到16MB,服務器起……不來……
開始刪服務器原來自帶的服務,最后就留下了sshd,還是起不來……郁悶……
突然發現可以用pdo_sqlite來當DB…反正我的流量也不大,就用sqlite好了,php的插件也不裝了,省點是點,瞬間就騰出了90MB內存,看來也不用向ramhost升級空間了,世界多美好。配置好了pdo_sqlite一起……還是起不來……說配置里沒有pdo_sqlite,我就郁悶,查了好半天配置都正確啊……最后發現是少了pdo_sqlite.so庫……以前沒接觸過php,從pacman的源里怎么都找不到sqlite,后來是從我的ubuntu里用新立得發現pdo_sqlite是在php-sqlite里的,瞬間裝上,全部搞定,服務一切正常,于是就有了這個Blog。
回到家,唉,又郁悶了,還是要找房啊……
文章來源:
http://lookis.me/?p=10
posted @
2010-03-15 17:16 Lookis 閱讀(210) |
評論 (0) |
編輯 收藏