前沿拓展:
**tp虛擬服務(wù)器
Windows 2000用戶
安裝設(shè)置服務(wù)端
Windows XP和2000本身就擁有構(gòu)件**TP服務(wù)器的功能,只是一般還沒(méi)有安裝。選擇“控制面板→添加/刪除程序→添加/刪除Windows組件”,彈出“Windows組件向?qū)А睂?duì)話框,在其中雙擊“Internet信息服務(wù)(IIS)”項(xiàng),
雖然是匯編,但代碼并不多,我們一句一句來(lái)閱讀:1)mov%eax,-0x8000(%esp):檢查棧溢。2)push%ebp:保存上一棧幀基址。3)sub$0x18,%esp:給新幀分配空間。4)mov 0x8(%ecx),%eax:取實(shí)例變量a,這里0x8(%ecx)就是ecx+0x8的意思,前面代碼片段“[Constants]”中提示了“this:ecx=‘test/Bar’”,即ecx寄存器中放的就是this對(duì)象的地址。偏移0x8是越 過(guò)this對(duì)象的對(duì)象頭,之后就是實(shí)例變量a的內(nèi)存位置。這次是訪問(wèn)Java堆中的數(shù)據(jù)。5)mov$0x3d2fad8,%esi:取test.Bar在方法區(qū)的指針。6)mov 0x68(%esi),%esi:取類(lèi)變量b,這次是訪問(wèn)方法區(qū)中的數(shù)據(jù)。7)add%esi,%eax、add%edx,%eax:做2次加法,求a+b+c的值,前面的代碼把a(bǔ)放在eax中,把b 放在esi中,而c在[Constants]中提示了,“parm0:edx=int”,說(shuō)明c在edx中。8)add$0x18,%esp:撤銷(xiāo)棧幀。9)pop%ebp:恢復(fù)上一棧幀。10)test%eax,0x2b0100:輪詢(xún)方法返回處的SafePoint。11)ret:方法返回。
在這個(gè)例子中測(cè)試代碼比較簡(jiǎn)單,肉眼直接看日志中的匯編輸出是可行的,但在正式環(huán)境中-XX:+PrintAssembly的日志輸出量巨大,且難以和代碼對(duì)應(yīng)起來(lái),這就必須使用工具來(lái)輔助了。 JITWatch[5]是HSDIS經(jīng)常搭配使用的可視化的編譯日志分析工具,為便于在JITWatch中讀取,讀者可使用以下參數(shù)把日志輸出到logfile文件:-XX:+UnlockDiagnosticVMOptions-XX:+TraceClassLoading-XX:+LogCompilation-XX:LogFile=/tmp/logfile.log-XX:+PrintAssembly-XX:+TraceClassLoading
在JITWatch中加載日志后,就可以看到執(zhí)行期間使用過(guò)的各種對(duì)象類(lèi)型和對(duì)應(yīng)調(diào)用過(guò)的方法了, 界面如圖4-28所示。
選擇想要查看的類(lèi)和方法,即可查看對(duì)應(yīng)的Java源代碼、字節(jié)碼和即時(shí)編譯器生成的匯編代碼, 如圖4-29所示。
拓展知識(shí):
**tp虛擬服務(wù)器
**TP是電子郵件發(fā)送服務(wù).
**tp虛擬服務(wù)器
**TP 簡(jiǎn)單郵件傳輸協(xié)議。在 STD 10、RFC 821 中定義用于在 Internet 上傳輸電子郵件的協(xié)議。
整個(gè)的就是簡(jiǎn)單郵件傳輸協(xié)議虛擬服務(wù)器
**tp虛擬服務(wù)器
知道什么是服務(wù)器、VPS、虛擬主機(jī),讓你做網(wǎng)站不被忽悠,還省錢(qián)
原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請(qǐng)注明出處:http://m.xiesong.cn/11322.html