日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Memory Dog for Autodesk Maya

發(fā)布時(shí)間:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Memory Dog for Autodesk Maya 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Maya自從Alias被autodesk收購(gòu)之后就詬病不斷,具體表現(xiàn)為特別容易崩潰:操作大場(chǎng)景容易崩潰,胡亂玩幾下碰到RP不好的時(shí)候也還是掛你沒商量。可是為什么會(huì)發(fā)生這樣的情況呢?

上過計(jì)算機(jī)專業(yè)相關(guān)課程的人(不是我這種野路子土專家出身)都曉得,程序的內(nèi)存區(qū)域有靜態(tài)區(qū)(Static),堆(Heap),還有棧(Stack)。其中Static和Stack都和我們沒多少關(guān)系,而Heap就是個(gè)巨大的問題來源。一般來說,數(shù)據(jù)密集型軟件,上至Oracle,下至ZBrush,都需要做自己的內(nèi)存管理,那種東一個(gè)new西一個(gè)delete對(duì)于健壯穩(wěn)定的商業(yè)軟件來說是絕對(duì)不行的??上?#xff0c;3dsmax沒有內(nèi)存管理,所以大家還是盡量向64bit轉(zhuǎn)吧。任何程序都會(huì)有一個(gè)能夠分配的Heap容量。這個(gè)容量主要取決于操作系統(tǒng),也就是你用的是32bit的還是64bit的OS。不可能有人在不支持64bit的CPU上安裝64bit的OS,所以那種“我可以在我的32bit的CPU上裝個(gè)64bit Maya嗎”的念頭就可以打住了。對(duì)于現(xiàn)在的64bit Vista來說,每個(gè)進(jìn)程Process能夠擁有的Heap容量上限為6G。不要跟我爭(zhēng)辯說是64bit等于2的64次方還是啥能夠分配多少PB的內(nèi)存,那些都是沒經(jīng)過調(diào)查的的胡扯。6G是編譯器能夠給你的最大容量,而且,你的那個(gè)指針最大能夠接受的容量為1G,不管你用的是否64bit指針,也就是說char* p = new char[0x40000000]連續(xù)執(zhí)行六次后Process就完蛋。所以,對(duì)于目前廣泛使用的32bit的Maya來說,它能夠使用最多1.6G的內(nèi)存,無論你自己加了多少內(nèi)存條。這個(gè)是最理想情況了。因?yàn)橛羞@么大不代表你能夠分配這么大,假設(shè)你載入一個(gè)1.5G的模型,基本上Maya就掛定了。模型的大小可不是.ma或者.mb的大小,而是數(shù)據(jù)量的大小,就是你的Vertex、Normal、UV這些幾何體數(shù)據(jù)加上Index拓?fù)涞臄?shù)值數(shù)據(jù),一個(gè)FP32占4 Byte,一個(gè)unsigned short占2 Byte如此等等。

而且一定要打掉一個(gè)幻想,就是妄圖通過OS提供的功能去檢測(cè)一個(gè)Process的內(nèi)存使用情況。使用GlobalMemoryStatusEx這個(gè)函數(shù)是無法獲得真正意義上的,當(dāng)前可分配的最大內(nèi)存數(shù)目,具體的可以用模擬內(nèi)存碎片來實(shí)現(xiàn)。它顯示的只是外部情況,只是個(gè)程序占據(jù)內(nèi)存的總數(shù),和程序的當(dāng)前內(nèi)存結(jié)構(gòu)無關(guān)。

轉(zhuǎn)

好在Maya也有自知之明,提供了一個(gè)MEL命令memory去輸出內(nèi)存統(tǒng)計(jì)情況。于是乎我寫了一個(gè)簡(jiǎn)單的MEL命令去輸出當(dāng)Node刪除或者新建時(shí)候的內(nèi)存狀態(tài)并輸出。代碼在下載,拆開來看吧,很簡(jiǎn)單的。

結(jié)

我個(gè)人認(rèn)為,基于DAG節(jié)點(diǎn)的軟件,包括Autodesk Maya、SideFX Houdini、Apple Shake等都比較容易崩潰,因?yàn)樗鼈優(yōu)榱藢?shí)現(xiàn)內(nèi)部的節(jié)點(diǎn)聯(lián)系不得不犧牲集中式的內(nèi)存管理,長(zhǎng)時(shí)間運(yùn)行下來導(dǎo)致內(nèi)存碎片特別多。再加上Windows平臺(tái)目前基本上是Visual C++的天下,微軟再怎么如何升級(jí)它的msvcr與msvcp這兩個(gè)C\C++運(yùn)行庫(kù)也無濟(jì)于事,OS有限制,Heap上能夠分配的最大內(nèi)存容量取決于最大空余Segment的大小。據(jù)說Linux下要好很多,具體的我也沒條件測(cè)試,等過幾天買了新電腦再裝個(gè)Ubuntu跑跑看,筆記本實(shí)在是難受。這里是異常拋出的地方,test檢測(cè)指針是不是那個(gè)啥0x100,是的話就錯(cuò)咯~于是掛了就。這個(gè)地方希望autodesk的人能夠看到呵呵。

轉(zhuǎn)載于:https://www.cnblogs.com/Jedimaster/archive/2009/03/08/1406439.html

總結(jié)

以上是生活随笔為你收集整理的Memory Dog for Autodesk Maya的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。