freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

jee性能問題-文庫(kù)吧

2025-07-20 09:22 本頁(yè)面


【正文】 5。陰影表示在經(jīng)過(guò)大幅度的收集后幸存下來(lái)的對(duì)象,這些對(duì)象是潛在可能引發(fā)內(nèi)存泄漏的對(duì)象  一部分這些相關(guān)的信息是可以通過(guò)跟蹤API得到,更詳細(xì)的信息通過(guò)詳細(xì)的垃圾收集器的日志也可以看到。和所有的跟蹤技術(shù)一樣,日值記錄詳細(xì)的程度影響著JVM的性能,你想得到的信息越詳細(xì),付出的代價(jià)也就越高。為了能夠判斷內(nèi)存是否泄漏,我使用了能夠顯示輩分之間所有的不同的較權(quán)威的技術(shù)來(lái)顯示他們的區(qū)別,并以此來(lái)得到結(jié)果。SUN 的日志報(bào)告提供的信息比這個(gè)詳細(xì)的程度超過(guò)5%,我的很多客戶都一直使用那些設(shè)置來(lái)保證他們管理和調(diào)整垃圾收集器。下面的這個(gè)設(shè)置能夠給你提供足夠的分析數(shù)據(jù):  –verbose:gc –xloggc: –XX:+PrintGCDetails –XX:+PrintGCTimeStamps  明確發(fā)現(xiàn)在整個(gè)堆中存在有潛在可能泄漏內(nèi)存的情況,用老一代增長(zhǎng)的速率才比較有說(shuō)服力。切記調(diào)查不能決定些什么:為了能夠最終確定你內(nèi)存泄漏,你需要離線在內(nèi)存模擬器中運(yùn)行你的應(yīng)用程序。IBM JVM內(nèi)存管理模式  IBM的JVM的機(jī)制有一點(diǎn)不同。它不是運(yùn)行在一個(gè)巨大的繼承HEAP中,它僅在一個(gè)單一的地區(qū)維護(hù)了所有的對(duì)象同時(shí)隨著堆的增長(zhǎng)來(lái)釋放內(nèi)存。這個(gè)堆是這樣運(yùn)行的:在一開始運(yùn)行的時(shí)候,它會(huì)很小,隨著對(duì)象實(shí)例不斷的填充,在需要執(zhí)行垃圾收集的地方清除掉無(wú)效的對(duì)象同時(shí)把所有有效的對(duì)象緊湊的放置到堆的底部。因此你可能猜測(cè)到了,如果想尋找可能發(fā)生的內(nèi)存泄漏應(yīng)該觀察堆中所有的動(dòng)作,堆的使用率是在提高?  如何分析內(nèi)存泄漏  內(nèi)存泄漏非常難確定,如果你能夠確定是請(qǐng)求導(dǎo)致的,那你的工作就非常簡(jiǎn)單了。把你的程序放入到運(yùn)行環(huán)境中,并在內(nèi)存模擬器中運(yùn)行,按下面的步驟來(lái):  1. 在內(nèi)存模擬器中運(yùn)行你的應(yīng)用程序   2. 執(zhí)行使用方案(制造請(qǐng)求)以便讓程序在內(nèi)存中裝載請(qǐng)求所需要的所有的對(duì)象,這可以為以后詳細(xì)的分析排除不必要的干擾   3. 在執(zhí)行使用方案前對(duì)堆進(jìn)行拍照以便捕獲其中所有運(yùn)行的對(duì)象。   4. 再次運(yùn)行使用方案。   5. 再次拍照,來(lái)捕獲使用方案運(yùn)行之后堆中所有對(duì)象的狀態(tài)。   6. 比較這2個(gè)快照,找出執(zhí)行使用方案后本不應(yīng)該出現(xiàn)在堆中的對(duì)象?! ∵@個(gè)時(shí)候,你需要去和開發(fā)者交流,告訴他你所碰到的棘手的請(qǐng)求,他們可以判斷究竟是對(duì)象泄漏還是為了某個(gè)目的特地讓對(duì)象保留下來(lái)的。如果執(zhí)行完后并沒有發(fā)現(xiàn)內(nèi)存泄漏的情況,我一般會(huì)轉(zhuǎn)到步驟4再進(jìn)行多次類似的跟蹤。比如,我可能會(huì)將我的請(qǐng)求反復(fù)運(yùn)行17次,希望我的泄漏分析能夠得到17個(gè)情況(或更多)。這個(gè)方法不一定總有用,但如果是因?yàn)檎?qǐng)求引起的對(duì)象泄漏的話,就會(huì)有很大的幫助?! ∪绻銦o(wú)法明確的判斷泄漏是因?yàn)檎?qǐng)求引發(fā)的,你有2個(gè)選擇:  1. 模擬每一個(gè)被懷疑的請(qǐng)求直至發(fā)現(xiàn)內(nèi)存泄漏   2. 存配置一個(gè)內(nèi)存性能跟蹤工具  第一個(gè)選項(xiàng)在小應(yīng)用程序中是確實(shí)可用的或者你非常走運(yùn)的解決了問題,但對(duì)大型應(yīng)用程序不太有用。如果你有跟蹤工具的話第二個(gè)選擇是比較有用的。這些工具利用字節(jié)流工具跟蹤對(duì)象的創(chuàng)建和銷毀的數(shù)量,他們可以報(bào)告特定類中的對(duì)象的數(shù)量狀態(tài),例如把Collections類作為特定的請(qǐng)求。例如,一個(gè)跟蹤工具可以跟蹤/action/,并在它完成后將其中的100個(gè)對(duì)象放入HASHMAP中。這個(gè)報(bào)告并不能告訴你造成泄漏的是代碼還是某個(gè)對(duì)象,而是告訴你在內(nèi)存模擬器中應(yīng)該留意那些類型的請(qǐng)求。把程序服務(wù)器放到產(chǎn)品環(huán)境中并不會(huì)使他們變敏感,而是跟蹤性能的工具可以使你的工作變的更簡(jiǎn)單化?! √摷賰?nèi)存泄漏  少數(shù)的一些問題看起來(lái)是內(nèi)存泄漏實(shí)際上并非如此?! ∥覍⑦@些情況稱為假泄漏,表現(xiàn)在下面幾種情況:  1. 分析過(guò)早   2. Session泄漏   3. 異常的持久區(qū)域  這章節(jié)對(duì)這些假泄漏都進(jìn)行了調(diào)查,描述了如何去判斷這些情況以及如何處理.  不要過(guò)早分析  為了在尋找內(nèi)存泄漏的時(shí)候盡量減少出現(xiàn)判斷錯(cuò)誤的可能性,你應(yīng)當(dāng)在適當(dāng)?shù)臅r(shí)候分析堆。危險(xiǎn)是:一些生命周期長(zhǎng)的對(duì)象需要裝載到堆中,因此在堆達(dá)到穩(wěn)定狀態(tài)且包含了核心對(duì)象之前具有很大的欺騙性。在分析堆之前,應(yīng)該讓應(yīng)用程序達(dá)到穩(wěn)定狀態(tài)?! 榱伺袛嗍欠襁^(guò)早的對(duì)堆進(jìn)行分析,持續(xù)2個(gè)小時(shí)對(duì)跟蹤到的分析快照進(jìn)行分析,看堆的使用率是上升還是下降。如果是下降,保存這個(gè)時(shí)候的內(nèi)存記錄。如果是上升,這個(gè)時(shí)候就需要分析內(nèi)存中的SESSION了。發(fā)生泄漏的session  WEB請(qǐng)求經(jīng)常導(dǎo)致內(nèi)存泄漏,在一個(gè)WEB請(qǐng)求中,對(duì)象會(huì)被限制存儲(chǔ)在有限的幾個(gè)區(qū)域。這些區(qū)域就是:  1. 頁(yè)面區(qū)域   2. 請(qǐng)求區(qū)域   3. 上下文區(qū)域   4. 應(yīng)用程序區(qū)域   5. 靜態(tài)變量   6. 長(zhǎng)生命周期的變量,例如SERVLET  當(dāng)實(shí)現(xiàn)一些JSP(JAVASERVER頁(yè)面)時(shí),在頁(yè)面上聲明的變量在頁(yè)面結(jié)束的時(shí)候就被釋放,這些變量?jī)H僅在這個(gè)單獨(dú)的頁(yè)面存在時(shí)存在。WEB服務(wù)器會(huì)向應(yīng)用程序服務(wù)器傳送一系列參數(shù)和屬性,也就是在SERVLET和JSP之間傳輸HttpServletRequest中的對(duì)象。你的動(dòng)態(tài)頁(yè)面依靠HttpServletRequest在不同的組件之間傳輸信息,但當(dāng)請(qǐng)求完成或者socket結(jié)束的時(shí)候,SERVLET控制器會(huì)釋放所有在HttpServletRequest 中的對(duì)象。這些對(duì)象僅在他們的請(qǐng)求的生命周期內(nèi)存在?! TTP是無(wú)狀態(tài)的,這意味著客戶向服務(wù)器發(fā)送一個(gè)請(qǐng)求,服務(wù)器回應(yīng)這個(gè)請(qǐng)求,這個(gè)傳遞就完成了,就是會(huì)話結(jié)束了。我們應(yīng)該感激WEB頁(yè)面幫我們做的日志,這樣我們就能向購(gòu)物車放置東西,并去檢查它,服務(wù)器能夠定義一個(gè)跨越多請(qǐng)求的擴(kuò)展對(duì)話。屬性和參數(shù)被放在各自用戶的HttpSession對(duì)象中,并通過(guò)它讓程序的SERVLET和JSP交流。利用這種辦法,頁(yè)面存儲(chǔ)你的信息并把他們添加到HttpSession中,因此你可以用購(gòu)物車購(gòu)買東西,并檢查商品和使用信用卡付帳。作為一個(gè)無(wú)狀態(tài)的協(xié)議,它總是客戶端發(fā)起連接請(qǐng)求,服務(wù)器需要知道一個(gè)會(huì)話存在多長(zhǎng)時(shí)間,到時(shí)候就應(yīng)該釋放這個(gè)用戶的數(shù)據(jù)。超過(guò)這個(gè)會(huì)話的最長(zhǎng)時(shí)間就是會(huì)話超時(shí),他們?cè)诔绦蚍?wù)器中設(shè)置。除非明確的要求釋放對(duì)象或者這個(gè)會(huì)話失效,否則在會(huì)話超時(shí)之前會(huì)話中的對(duì)象會(huì)一直存在?! ≌鐂ession是為每個(gè)用戶管理對(duì)象一樣,ServletContext為整個(gè)程序管理對(duì)象。ServletContext的有效范圍是整個(gè)程序,因此你可以利用Servlet中的ServletContext或者JSP應(yīng)用程序?qū)ο笤谒械腟ervlet和JSP之間讓在這個(gè)程序中的所有用戶共享數(shù)據(jù)。ServletContext是最主要的存放程序配置信息和緩存程序數(shù)據(jù)的地方,例如JNDI的信息?! ∪绻麛?shù)據(jù)不是存儲(chǔ)這個(gè)四個(gè)地方(頁(yè)面范圍,請(qǐng)求范圍,會(huì)話范圍,程序范圍)那就可能存儲(chǔ)在
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1