国产成人v爽在线免播放观看,日韩欧美色,久久99国产精品久久99软件,亚洲综合色网站,国产欧美日韩中文久久,色99在线,亚洲伦理一区二区

學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦硬件知識(shí) > 內(nèi)存知識(shí) > vs2010內(nèi)存分析的方法

vs2010內(nèi)存分析的方法

時(shí)間: 樂(lè)恒1051 分享

vs2010內(nèi)存分析的方法

  想要弄清vs2010內(nèi)存分析的結(jié)果,可以通過(guò)基于軟件的工具檢測(cè),和使用程序的檢測(cè)方式。為此學(xué)習(xí)啦小編為大家整理推薦了,希望大家喜歡。

  vs2010 內(nèi)存分析

  其實(shí)VS已經(jīng)提供基于CPU占用情況的性能分析功能,但它并不能什么情況都能分析出來(lái)。當(dāng)你發(fā)現(xiàn)mscorwks.dll這玩意占用著大量的資源,確無(wú)法點(diǎn)擊進(jìn)去的看具體情況的時(shí)候有可能會(huì)感到無(wú)能為力,也許已經(jīng)盡力了那些.net framework的事情管不了。其實(shí)mscorwks.dll的損耗和我們編寫(xiě)的代碼有著緊密的聯(lián)系,我們可以通過(guò)VS的內(nèi)在分析工作看下代碼的內(nèi)存分配狀況然后再查找問(wèn)題。

  打開(kāi)性能分析向?qū)?/p>

  選擇內(nèi)存分配采樣即可。

  運(yùn)行后會(huì)產(chǎn)以下的結(jié)果圖:

  圖中可以看到占用字節(jié)最多的方法和分配最多字節(jié)的類(lèi)型,我們可以點(diǎn)擊內(nèi)存分配最多的類(lèi)型看下詳細(xì)列表

  在這里我們可以看到byte[]和char[]分配了大量的內(nèi)存,而這些通過(guò)cpu性能分析是看不到的,而這些對(duì)像的創(chuàng)建和銷(xiāo)毀都會(huì)使用的資源的。我們可以點(diǎn)擊一下看這些內(nèi)存分配是那里產(chǎn)生的。

  從上面的圖可以看到byte[]的分配主要是來(lái)源于池的初始化,既然是必須的就不用考慮那是必須做的。再來(lái)看下char[]來(lái)源于每次寫(xiě)入的Encoding.Getbytes里的string.ToCharArray();反編譯看下代碼情況:

  從代碼可以看到原因所在,因?yàn)镚etBytes需要一個(gè)char[],而string每次獲取char[]都是返回一個(gè)新提char[]對(duì)象。其實(shí)這兩個(gè)對(duì)象都提供基于char[]操作和copy的到char[]的方法。仔細(xì)看下MSDN你就能找到你想要的:)這里我就不多說(shuō)了。

  調(diào)整一下代碼后的分析結(jié)果又怎樣呢?

  調(diào)整一下char[]的分配一下子就少了:)創(chuàng)建的對(duì)象少了,分配的內(nèi)存少了,那內(nèi)存回收就不用說(shuō)了。

2941350