① maya建的模型內存特別大怎麼辦
①首先要注意有沒有開壓縮保存 。 路徑:自定義(C開頭的)- 最下面那個(P開頭的) - 點到上面Files 那欄,有個壓縮保存英文是compress on save。
②檢查以下幾點
隱藏物體
空物體
堆棧列表
材質貼圖數量及大小
③下次再導入模型的時候一定要注意 先看下需要導入的模型的內存 一般小東西也就幾百KB 太大的話一般都是有問題的。
② 3dmax怎麼改變模型的內存大小。
額~前面幾個哥們我不曉得,反正38M我認為不大,我們公司是做建築動畫的,一般大場景在200-500M左右。對象數量2000左右,對象面數800W左右,加上代理的面數則是一個恐怖的存在,機器的配置為I3-I7,內存4-8G,顯卡也是主流游戲卡。 所以現有的主流配置應付100M左右的MAX場景應當是可以滿足的。(當然800W面你全部顯示機器一般都會跳出,所以場景需要分層隱藏,不需要的東西隱藏起來,減小顯卡的壓力)
對於你的問題,很簡單,你買的那個模型人家保存的時候是壓縮了的,你重新保存的時候,MAX默認是不壓縮的,所以文件就變大了。
啟用壓縮的位置在:
自定義設置Preference Settings-
文件Files-
保存時壓縮Compress on Save-
這個復選框的鉤鉤勾上在保存即可。
對於你說的超過100M的模型帶不動這個問題,主要還是內存,100M的模型量大約要4G內存才能有較為流暢的操作體驗,否則很容易跳出。
對於拖不動這個問題,也不是絕對的,對象數量和對象面數分別影響機器的流暢度,對象數量通常控制在400-2000以內,具體取決你機器的性能,對象數量過多是很容易崩潰的,這個你可以將相同材質的物體塌陷為一個對象來解決。 面數過多的問題很好解決,那就是VRAY代理,這是一個強大的工具,可以將幾十上百萬面的物體代理出去,在3D立面只佔用幾千面左右。 這個詳細的你可以網路VR代理。還有不要的東西全都隱藏,視口顯示的東西越少,顯卡的壓力越小,操作越流暢。
但是如果內存實在是滿了,沒有別的法子。那隻能擴大內存換裝64位操作系統,VR代理雖然可以解決操作時候內存不足的問題,減少文件的大小,但是渲染的時候代理的物體都會載入場景,此時內存不足是硬傷。
希望能幫到你~
③ 我的電腦3Dmax模型只要超過500M就打不開了,要麼自動關閉要麼提示錯誤。是不是電腦哪項配置低了
模型渲染,一般完成不了,或卡頓,多半出在CPU和內存上,其次卡頓,多半處在顯卡上
就配置來看應該沒什麼問題,建議檢查下電腦系統或軟體,是否有問題
④ 單個su模型和把su模型整理到一起哪個占電腦內存大
1、檢查c盤是否太滿
2、su軟體中進入「偏好設置」,opengl設置中選擇最大參數
3、安裝新版本su
4、顯卡驅動檢查更新
5、刪除模型中未用的組件和材質
⑤ jvm的內存模型中運行時常量池與Class文件結構中說的常量池是否是同一個
老年代調整:
標記-清除(Mark - Sweep)演算法
標記-壓縮(Mark - Compact)演算法
老年代調整參數:
-XX:PretenureSizeThreshold 控制直接升入老年代的對象大小,大於這個值的對象會直接分配在老年代中
FULL GC發生的概率比較低,發生的話操作時間特別長,嚴重影響程序的性能。
永久代(JDK1.8之後被廢除了)
該區域中的對象不會被回收。當時簡單的理解是方法區就是永久代,HotSpot虛擬機規范中是存在永久代概念的。
被元空間取代
JDK1.8之後,元空間取代永久代,元空間的本質就是本機的物理內存
OOM異常 可能分為
堆內存溢出(Java Heap space):往往出現在FUll GC失敗之後
永久代溢出(PermGen space):一個方法中出現的內存溢出
元空間溢出(Metaspace):分配的物理內存不足,或者數據量高於物理內存
垃圾的收集一定要分兩個空間考慮:年輕代、老年代,老年代的內存空間要大於年輕待
可用GC方式:
新生代可用GC策略:
串列GC(Serial Copying)
並行回收GC(Parallel Scavenge):
復制(Copying)清理演算法;
操作步驟:
在掃描和復制時均採用多線程方式處理,並行回收GC為空間較大的年輕代回收提供許多優化
優勢:
在多CPU的機器上其GC耗時會比串列方式短,適合多CPU、對暫停時間要求較短的應用
並行GC(ParNew):
復制(Copying)清理演算法
操作步驟:
並行GC(ParNew)必須結合老年代,"CMS GC"一起使用。因為年輕代如果發生了"Minor GC"時,老年代也需要使用"CMS GC"同時處理,
(並行回收GC並不會做這些)
CMS(Concurrent Mark-Sweep):是以犧牲吞吐量為代價來獲得最短回收停頓時間的垃圾回收器。對於要求伺服器響應速度的應用上,這種垃圾回收器非常適用
老年代可用GC策略:
串列GC(Serial MSC)
演算法:標記-清除-壓縮(Mark-Sweep-Compact)
操作步驟:
掃描老年代中還存活的對象,並且對這些對象進行標記
遍歷整個老年代的內存空間,回收所有未標記的對象內存
將所有存活對象都集中在一端,而後將所有回收對象的內存空間變為一塊連續的內存空間
優缺點:串列執行的過程中為單線程,需要暫停應用並耗時較長
並行GC(Parallel MSC)
演算法:標記-壓縮(Mark-Compact)
操作步驟:
將老年代內存空間按照線程個數劃分若乾子區域;
多個線程並行對各自子區域內的存活對象進行標記
多個線程並行清除所有未標記的對象
多個線程並行將多個存活對象整理在一起,並將所有被回收的對象空間整合為一體
優缺點:
多個線程同時進行垃圾回收可以縮短應用的暫停時間,但是由於老年代的空間一般較大,所以在掃描和標記存活對象上需要花費較長時間。
與串列相比,就是多了一個多線程的支持,但是這樣的暫停時間就會減少
並行GC(CMS)
演算法:標記-清除(Mark-Sweep)
操作步驟:
初始標記(STW【Stop-The World】 Initial Mark):虛擬機暫停正在執行的任務(STW),由根對象掃描出所有的關聯對象,並做出標記。此過程只會導致短暫的JVM暫停
並發標記(Concurrent Marking):恢復所有暫停的線程對象,並且對之前標記過的對象進行掃描,取得所有跟標記對象有關聯的對象
並發預處理(Concurrent Precleaning):查找所有在並發標記階段新進入老年代的對象(一些對象可能從新生代晉升到老年代,或者有一些對象被分配到老年代),通過重新掃描,減少下一階段的工作
重新標記(STW Remark):此階段會暫停虛擬機,對在「並發標記」階段被改變引用或新創建的對象進行標記
並發清理(Concurrent Sweeping):恢復所有暫停的應用線程,對所有未標記的垃圾對象進行清理,並且會盡量將已回收對象的空間重新拼湊為一個整體。在此階段收集器線程和應用程序線程並發執行
並發重置(Concurrent Reset):重置CMS收集器的數據結構,等待下一次垃圾回收。
優缺點:
只有在第一次和重新標記階段才會暫停整個應用,這樣對應用程序所帶來的影響非常的小、缺點是並發標記與回收線程會與應用線程爭搶CPU資源,並且容易產生內存碎片。
常用GC策略:
運行環境 年輕代GC 老年代
單機程序(client) 串列GC(Serial Copying) 串列GC(Serial MSC)
伺服器程序(Server) 並行回收GC(Parallel Scavenge) 並行GC(Parallel Mark Sweep、Parallel Compacting)
如果要向確認使用的GC處理,首先需要知道當前的主機上可以支持的處理進程數量
調參:
使用串列GC策略:-XX:+UseSerialGC
使用並行GC策略:-XX:+UseParNewGC
使用CMS:-XX:+UseConcMarkSweepGC
CMS會經歷如下幾個步驟:
"CMS-concurrent-mark-start":CMS標記開始
"CMS-concurrent-mark":表示開始進行標記,進入到了STW狀態(暫停)
"CMS-concurrent-preclean-start":預清理開始
"CMS-concurrent-sweep-start":開始進行無用對象清理
CMS的處理適當性能會好一些,但是這所有的GC策略都是現在正在常用的策略,不過似乎都有缺陷。
總結:
實際開發之中對於GC的策略不建議手動修改,默認的一版比較好
G1收集器:
對Java伺服器而言,如何去選擇一個合適的配置呢? 默認情況下,Java會為每一個線程分配1M的內存空間。如果現在電腦有32G的內存,最大可以分配30G的內存空間(理論)
理論上可以處理 30* 1024 個用戶請求,所以一般的伺服器處理個5000——10000基本上也就夠了
G1的實現方案相當於將所有的子內存區域合並在一起,也不在進行任何的區分,這樣就相當於所有的內存的區域都可以按照統一的方式進行統一規劃處理
G1的最大特點就是避免了全內存掃描
G1在標記和清理的時候是按照區域完成的,這樣不影響其他的區域的執行,除此之外,使用的形式和之前的CMS都是類似的操作方式。
調參使用G1收集器:-Xmx10m -Xms10m -XX:+PrintGCDetails -XX:+UseG1GC
G1的垃圾收集比傳統的GC要快一些
引用類型概述:
對於垃圾的產生與回收的處理之中,要想進行更好的控制,就必須清楚的掌握JAVA中的四種引用方式:
1.強引用(Strong Reference):即使進行了多次GC的回收,即使JVM的內存真的已經不夠用了,最終不得以拋出了OOM錯誤,那麼該引用繼續搶占
2.軟引用(Soft Reference):當內存空間不足時,可以回收此內存空間。如果充足則不回收,可以用其完成一些緩存的處理操作開發
3.弱引用(Weak Reference):不管內存是否緊張,只要一出現GC處理,則立即回收
4.幽靈引用(Phantom Reference):和沒有引用是一樣的
強引用:
即使出現GC,即使內存不足,該引用的數據也不會被回收
強引用不是造成OOM的關鍵因素,正常來講,你每一個用戶(線程)操作完成後該對象都很容易進行回收。
軟引用:
當內存空間不足時才進行GC的空間釋放,但是如果想使用軟引用必須單獨使用特殊的處理類:
import java.lang.ref.SoftReference;
public class SoftReferenceTest {
public static void main(String[] args) {
String str = "www.cwnu.com";
//加入到軟引用之中
SoftReference<String> stringReference = new SoftReference<String>(str);
//類似強引用埠連接
str = null;
//因為軟引用空間還很富裕,所以不會釋放
System.gc();
System.out.println(stringReference.get());
}
}
在開發中,可以利用軟引用實現高速緩存組件
弱引用:
最大的特點:一旦發生GC操作,則保存的內容則立即釋放
import java.lang.ref.WeakReference;
public class WeakReferenceTest {
public static void main(String[] args) {
String a = new String("www.cwnu.com");
WeakReference reference = new WeakReference<String>(a);
a = null;
System.gc();
System.out.println(reference.get());
}
}
在我們類集裡面有一個與弱引用功能相似的Map集合,WeakHashMap<K,V>,它屬於弱引用的一個實現
import java.util.*;
public class WeakReferenceTest {
public static void main(String[] args) {
Map<Integer,String> map = new WeakHashMap<Integer,String>();
map.put(new Integer(1),new String("a"));
map.put(new Integer(2),new String("b"));
System.gc();
System.out.println(map);
}
}
使用WeakHashMap好處是保存一些共享數據,如果長時間不使用則可以清空
引用隊列:
如果要想清楚引用隊列,則首先必須知道對象的引用的強度,如果說按照現在的理解來講: 強引用 > 軟引用 > 弱引用。
引用隊列裡面所保存的就是一個要准備被回收的對象的信息
import java.lang.ref.Reference;
import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;
public class ReferenceQueueTest {
public static void main(String[] args) throws Exception{
String str = new String("www.cwnu.com");
ReferenceQueue<String> queue = new ReferenceQueue<String>();
WeakReference<String> weak = new WeakReference<String>(str,queue);
str = null;
System.out.println(weak.isEnqueued());
System.gc();
Thread.sleep(500);
System.out.println(weak.isEnqueued());
//觀察隊列是否有內容
System.out.println(queue.poll());
}
}
幽靈引用(虛引用):
幽靈引用指的是什麼都不保存,但是又看起來保存了似得。
import java.lang.ref.PhantomReference;
import java.lang.ref.ReferenceQueue;
public class PhantomReferenceTest {
public static void main(String[] args) throws Exception{
String str = new String("www.cwnu.com");
ReferenceQueue<String> queue = new ReferenceQueue<String>();
PhantomReference<String> ps = new PhantomReference<String>(str,queue);
str = null;
System.out.println(ps.isEnqueued());
System.gc();
Thread.sleep(500);
System.out.println(ps.isEnqueued());
//觀察隊列是否有內容
System.out.println(queue.poll());
}
}
幽靈引用直接把保存的內容保存在引用隊列之中
關於逃逸分析:
在平時開發過程中就要可盡可能的控制變數的作用范圍了,變數范圍越小越好
建議去刷題,我運氣好,簡單的演算法讓我碰到了,一些快排,堆排,二叉樹相關的,鏈表反轉,成環,環節點,跳樓梯等常規的簡單演算法建議刷刷,雙指針,dp,遞歸這些還是多找找感覺,大數據內存有限的場景的統計,有時間一些middle可以去試試,手寫紅黑樹你要是可以,那我估計演算法你穩了
堆棧相關:
1.寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序中無法控制.
2. 棧:存放基本類型的變數數據和對象的引用,但對象本身不存放在棧中,而是存放在堆(new 出來的對象)或者常量池中(字元串常量對象存放在常量池中。)
3. 堆:存放所有new出來的對象。
4. 靜態域:存放靜態成員(static定義的)
5. 常量池:存放字元串常量和基本類型常量(public static final)。
6. 非RAM存儲:硬碟等永久存儲空間
⑥ ECC內存什麼意思
ECC內存是應用了能夠實現錯誤檢查和糾正技術的內存條。
ECC內存,即實現錯誤檢查和校正技術的存儲器條帶。通常,它主要應用於伺服器和圖形工作站,這將使整個計算機系統在工作中更加安全和穩定。
在存儲器中,ECC可以容忍錯誤並對其進行校正,使得系統能夠正常地正常運行而不因錯誤而中斷,並且ECC具有自動校正的能力,其能夠檢測和糾正奇偶校驗不能檢測的錯誤。
(6)電腦內存模型擴展閱讀:
ECC存儲器的成功不是因為它是快速的,速度根本與內存類型無關,而是因為它具有特殊的糾錯能力來保持伺服器的穩定。
ECC本身不是一個內存模型,也不是一個內存特定的技術。它是一種廣泛應用於各個領域的計算機指令,是一種指令糾錯技術,其英文全稱為糾錯。
相應的中文名稱叫做錯誤檢查和糾正。從這個名字我們可以看出,它的主要功能是發現並糾正錯誤,這比奇偶校驗技術更先進,主要是因為它不僅可以檢測錯誤,而且可以糾正這些錯誤。
⑦ 電腦里的內存條有什麼用具體負責什麼工作
內存的作用:
內存在電腦中起著舉足輕重的作用。內存一般採用半導體存儲單元,包括隨機存儲器(RAM),只讀存儲器(ROM),以及高速緩存(CACHE)。只不過因為RAM是其中最重要的存儲器。
通常所說的內存即指電腦系統中的RAM。 RAM有些像教室里的黑板,上課時老師不斷地往黑板上面寫東西,下課以後全部擦除。RAM要求每時每刻都不斷地供電,否則數據會丟失。
如果在關閉電源以後RAM中的數據也不丟失就好了,這樣就可以在每一次開機時都保證電腦處於上一次關機的狀態,而不必每次都重新啟動電腦,重新打開應用程序了。但是RAM要求不斷的電源供應,那有沒有辦法解決這個問題呢?隨著技術的進步,人們想到了一個辦法,即給RAM供應少量的電源保持RAM的數據不丟失,這就是電腦的休眠功能,特別在Win2000里這個功能得到了很好的應用,休眠時電源處於連接狀態,但是耗費少量的電能。
按內存條的介面形式,常見內存條有兩種:單列直插內存條(SIMM),和雙列直插內存條(DIMM)。SIMM內存條分為30線,72線兩種。DIMM內存條與SIMM內存條相比引腳增加到168線。DIMM可單條使用,不同容量可混合使用,SIMM必須成對使用。
按內存的工作方式,內存又有FPA EDO DRAM和SDRAM(同步動態RAM)等形式。
FPA(FAST PAGE MODE)RAM 快速頁面模式隨機存取存儲器:這是較早的電腦系統普通使用的內存,它每個三個時鍾脈沖周期傳送一次數據。
EDO(EXTENDED DATA OUT)RAM 擴展數據輸出隨機存取存儲器:EDO內存取消了主板與內存兩個存儲周期之間的時間間隔,他每個兩個時鍾脈沖周期輸出一次數據,大大地縮短了存取時間,是存儲速度提高30%。EDO一般是72腳,EDO內存已經被SDRAM所取代。
S(SYSNECRONOUS)DRAM 同步動態隨機存取存儲器:SDRAM為168腳,這是目前PENTIUM及以上機型使用的內存。SDRAM將CPU與RAM通過一個相同的時鍾鎖在一起,使CPU和RAM能夠共享一個時鍾周期,以相同的速度同步工作,每一個時鍾脈沖的上升沿便開始傳遞數據,速度比EDO內存提高50%。
DDR(DOUBLE DATA RAGE)RAM :SDRAM的更新換代產品,他允許在時鍾脈沖的上升沿和下降沿傳輸數據,這樣不需要提高時鍾的頻率就能加倍提高SDRAM的速度。
RDRAM(RAMBUS DRAM) 存儲器匯流排式動態隨機存取存儲器;RDRAM是RAMBUS公司開發的具有系統帶寬,晶元到晶元介面設計的新型DRAM,他能在很高的頻率范圍內通過一個簡單的匯流排傳輸數據。他同時使用低電壓信號,在高速同步時鍾脈沖的兩邊沿傳輸數據。INTEL將在其820晶元組產品中加入對RDRAM的支持。
內存的參數主要有兩個:存儲容量和存取時間。存儲容量越大,電腦能記憶的信息越多。存取時間則以納秒(NS)為單位來計算。一納秒等於10^9秒。數字越小,表明內存的存取速度越快。
虛擬內存作用:
內存在計算機中的作用很大,電腦中所有運行的程序都需要經過內存來執行,如果執行的程序很大或很多,就會導致內存消耗殆盡。為了解決這個問題,Windows中運用了虛擬內存技術,即拿出一部分硬碟空間來充當內存使用,當內存佔用完時,電腦就會自動調用硬碟來充當內存,以緩解內存的緊張。舉一個例子來說,如果電腦只有128MB物理內存的話,當讀取一個容量為200MB的文件時,就必須要用到比較大的虛擬內存,文件被內存讀取之後就會先儲存到虛擬內存,等待內存把文件全部儲存到虛擬內存之後,跟著就會把虛擬內里儲存的文件釋放到原來的安裝目錄里了。下面,就讓我們一起來看看如何對虛擬內存進行設置吧。
顯存:
顯存,全稱顯示內存,即顯示卡專用內存。顯存對於顯卡就好比內存對於整台電腦,地位非常重要,它負責存儲顯示晶元需要處理的各種數據。顯存容量的大小、性能的高低,直接影響著電腦的顯示效果。
⑧ 如何在戴爾筆記本電腦升級內存
可以自行購買一個同品牌同型號同大小的內存條加上去。
新買一條內存,注意3個參數:第幾代內存,多大內存,主頻多大;
兩條都安裝好了,檢查後蓋防塵網不要掉了,然後把後蓋裝好,一切搞定。
⑨ 模型太大,筆記本導不進去怎麼辦
模型太大,筆記本導不進去可以選擇模型分批導入或者模型縮小。
內存是CPU與外部設備溝通的橋梁,也是計算機臨時存放運算數據的地方,內存無法長久存儲數據,例如關機斷電後內存中的東西將被清空。
我們常見的內存大小包括:4G、8G、16G等,一般來說,內存越大越好,但越大也越貴,具體應該根據電腦使用場景進行選擇。
4G:目前win10是主流系統,4G嚴重不推薦、嚴重不推薦、嚴重不推薦,重要的事情說三遍。
8G:就當下而言,8G基本屬於入門級,適用場景包括:一般性辦公,一般性娛樂等要求不高的場景。
16G:如果條件允許,盡量選擇16G,畢竟電腦買了起碼要用上幾年,不能只看當下,16G基本能應付大多數使用場景,例如:絕大多數游戲、程序員開發、圖影音製作等。
32G或更高:就目前而言,更大的內存多用於特殊場景,一般用戶不用關心。總之,在滿足需求的前提下稍微選大點的,畢竟現在瀏覽器多開幾個網頁就能占個把G。
⑩ 在3D中導入模型就顯示內存不足,出錯。到底有什麼辦法解決
您好,看了您的問題。我個人認為應該增加虛擬內存或增加一根內存條,後者個人覺得更加有效。首先講如何增加虛擬內存。右擊我的電腦——屬性——高級——性能一欄的設置——高級——虛擬內存——盡量選擇除C盤以外的盤符,一般點上系統管理的大小就可以,如果還是提示內存不足,那就手動輸入數值。最後點擊設置,點擊確定。重啟後,硬碟將劃出部分容量當作內存使用。順便一提,有部分病毒也會導致系統內存不足,最好用專業殺毒軟體掃描病毒。很高興為您解答問題~!