精華區beta WarCraftChat 關於我們 聯絡資訊
最近用多開,注意到一個現象 直接關Garena會順便把一個War3關掉 (不知道哪版開始改的) 似乎很方便? 實際上,GGC直接暴力關掉War3 (不使用正常方式結束程式) 這樣做的結果就是,程式結束應該做的釋放資源等動作不會被執行 (驗證方式請用message sniffer,看war3不會收到WM_DESTROY就結束 印象中clean up的動作是在WM_DESTROY中做的) 會不會有memory leak,這要看war3是怎麼寫的 像我就很偷懶,MSDN說程式結束會自動釋放的,我就沒手動寫 如果你沒正常結束koala's WC3 helper,我可以告訴你 基本上會有memory leak,某些系統資源會沒機會釋放 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.101.21
PACO:進系統管理員那邊關就好了 10/27 10:16
> -------------------------------------------------------------------------- < 作者: sitos (麥子) 看板: WarCraftChat 標題: Re: [閒聊] 先關魔獸再關GGC 時間: Tue Oct 27 10:27:05 2009 ※ 引述《craftwar (no vista support)》之銘言: : 最近用多開,注意到一個現象 : 直接關Garena會順便把一個War3關掉 (不知道哪版開始改的) : 似乎很方便? : 實際上,GGC直接暴力關掉War3 (不使用正常方式結束程式) : 這樣做的結果就是,程式結束應該做的釋放資源等動作不會被執行 : (驗證方式請用message sniffer,看war3不會收到WM_DESTROY就結束 : 印象中clean up的動作是在WM_DESTROY中做的) : 會不會有memory leak,這要看war3是怎麼寫的 : 像我就很偷懶,MSDN說程式結束會自動釋放的,我就沒手動寫 : 如果你沒正常結束koala's WC3 helper,我可以告訴你 : 基本上會有memory leak,某些系統資源會沒機會釋放 如果一個程式已經「結束」但是還占用系統資源,應該是 OS 沒寫好吧。 至少以 memory 來看的話,不管有沒有 leak ,只要 process 結束, 所以分配給它的 page 應該都會釋放掉,這是記在 page table 裡面, 沒道理不去把它清一清,不是很懂你所謂某些系統資源沒機會釋放指的是什麼。 -- 我實實在在的告訴你們,一粒麥子不落在地裡死了, 仍舊是一粒,若是死了,就結出許多子粒來。 約翰福音 12:24 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.31.132 > -------------------------------------------------------------------------- < 作者: craftwar (no vista support) 看板: WarCraftChat 標題: Re: [閒聊] 先關魔獸再關GGC 時間: Tue Oct 27 22:01:57 2009 ※ 引述《sitos (麥子)》之銘言: : ※ 引述《craftwar (no vista support)》之銘言: : : 最近用多開,注意到一個現象 : : 直接關Garena會順便把一個War3關掉 (不知道哪版開始改的) : : 似乎很方便? : : 實際上,GGC直接暴力關掉War3 (不使用正常方式結束程式) : : 這樣做的結果就是,程式結束應該做的釋放資源等動作不會被執行 : : (驗證方式請用message sniffer,看war3不會收到WM_DESTROY就結束 : : 印象中clean up的動作是在WM_DESTROY中做的) : : 會不會有memory leak,這要看war3是怎麼寫的 : : 像我就很偷懶,MSDN說程式結束會自動釋放的,我就沒手動寫 : : 如果你沒正常結束koala's WC3 helper,我可以告訴你 : : 基本上會有memory leak,某些系統資源會沒機會釋放 : 如果一個程式已經「結束」但是還占用系統資源,應該是 OS 沒寫好吧。 : 至少以 memory 來看的話,不管有沒有 leak ,只要 process 結束, : 所以分配給它的 page 應該都會釋放掉,這是記在 page table 裡面, : 沒道理不去把它清一清,不是很懂你所謂某些系統資源沒機會釋放指的是什麼。 這是在MSDN上看過的 某些win32 API會有這現象 例如某些handle開一開沒關就結束,就會有memory leak 因為system的table中有記錄,但是程式被強制結束 OS不知道可以釋放,該entry就被遺忘了 我只記得process handle會有這現象 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.104.229
sitos:嗯,那應該算 OS 的 leak 不是 app 的 leak 吧 10/27 23:04
craftwar:沒啥差啦,還不都是memory leak 所以程式不要亂terminate 10/27 23:19
sitos:反正重開機就好了,現在 mem 那麼便宜,別計較了。 10/28 00:32
wulouise:好吧 以後wc3要好好關 10/28 08:44
> -------------------------------------------------------------------------- < 作者: forestluch (小強) 看板: WarCraftChat 標題: Re: [閒聊] 先關魔獸再關GGC 時間: Wed Oct 28 00:03:32 2009 ※ 引述《craftwar (no vista support)》之銘言: : ※ 引述《sitos (麥子)》之銘言: : : 如果一個程式已經「結束」但是還占用系統資源,應該是 OS 沒寫好吧。 : : 至少以 memory 來看的話,不管有沒有 leak ,只要 process 結束, : : 所以分配給它的 page 應該都會釋放掉,這是記在 page table 裡面, : : 沒道理不去把它清一清,不是很懂你所謂某些系統資源沒機會釋放指的是什麼。 : 這是在MSDN上看過的 : 某些win32 API會有這現象 : 例如某些handle開一開沒關就結束,就會有memory leak : 因為system的table中有記錄,但是程式被強制結束 : OS不知道可以釋放,該entry就被遺忘了 : 我只記得process handle會有這現象 那請問... 按Alt+Tab回到桌面後 再對著工作列按右鍵關閉魔獸呢? 因為常常會跳出來看有沒有人開房... 太久沒人開都這樣關然後換房 另外進 工作管理員 關閉程式 算強制結束還正常呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.64.132
tnav:無所謂, 你覺得因為玩太久導致電腦變得慢慢的, 那就重開機 10/28 01:17
> -------------------------------------------------------------------------- < 作者: craftwar (no vista support) 看板: WarCraftChat 標題: Re: [閒聊] 先關魔獸再關GGC 時間: Wed Oct 28 22:39:35 2009 ※ 引述《forestluch (小強)》之銘言: : ※ 引述《craftwar (no vista support)》之銘言: : : 這是在MSDN上看過的 : : 某些win32 API會有這現象 : : 例如某些handle開一開沒關就結束,就會有memory leak : : 因為system的table中有記錄,但是程式被強制結束 : : OS不知道可以釋放,該entry就被遺忘了 : : 我只記得process handle會有這現象 : 那請問... : 按Alt+Tab回到桌面後 再對著工作列按右鍵關閉魔獸呢? : 因為常常會跳出來看有沒有人開房... 太久沒人開都這樣關然後換房 視窗化很好用 : 另外進 工作管理員 關閉程式 算強制結束還正常呢? 有問是/否 ←強制結束,可能有意外驚喜 基本上不會差太多 不過總有例外的 最後,這當然不只限於War3,其他程式也可能有同樣現象 反正砍太多次程式變慢後,就重機開吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.108.76