接地銅線實行自動送料、沖壓、片、分組、產品傳送等的連續作業,具有生產效率高、產品品質好、節約原材料與安全性高等特點。為了保證高速沖生產線的正常運行并充分發揮其優勢,模具的正確合理使用與維修等工作,必須按要求做好并不斷予以完善。 高速沖床生產線運行中,要確保高速沖床、送料步距、廢料排出、產品沖制的三線一點暢通和正常,運行中的模具與沖床及配套裝置的性能必須可靠。生產中還需持續做好沖床、模具、沖材等的清潔與潤滑工作,保證沖床、模具接地銅線的精度和產品品接地銅線質要求。 ②精密高速沖床是關鍵的先進設備,其主要特點為高精度、高速度。精度要求,滑塊與工作臺的平面度小于0.02mm、平行度小于0.03mm,滑塊的下生點精度小于0.01mm。對鐵芯鉚結合力的效果進行分析發現,滑塊下生點的精度很關鍵,因此,沖床的正確使用和維護必須做好,才能接地銅線保證精度和使用效果。 ③產品材料經開卷機開成帶料的要求是,開料后的毛刺小于0.03mm,帶料寬度應小于模具導料部位0.050.10mm,帶料經校平后無明顯彎曲與毛刺,平直度需在公差要求范圍內。自動送料機的步距精度,誤差需控制在±0.02mm內。達到從卷料開成帶料至模具導料等全過程的正常運行要求。 ④模具的使用要做到合理和規范,模具在沖床上正確定位后,裝好安全保護裝置并檢查性能和可靠性。調整好行程,用點動與手工送料,試沖全部工位,測量鉚點高度及有關資料后,精調行程并檢查各個工作部位,正常后開始連沖,逐步提高沖次速度。正常生產的沖速250次/分,較為適合,可列入操作規范。 ⑤模具使用期間需經常抽檢產品的品質狀況,確保批量生產正常,如出現異常問題,采取措施排除。并認真做好模具使用卡記錄,使用日期、生產數量、沖次速度、行程參數、產品品質和檢驗結論。模具如需要維修和磨刃口的,必須附上最后沖出的帶料和鐵芯沖件,供給模具維修、磨刃口時參考。 ⑥模具維修方面,要求根據帶料、沖件、使用記錄、檢驗結論和圖紙等檢查模具狀況,確定維修內容與程序。按規范拆卸模具相關部位,拆卸關鍵零部件做好編號、位置記號和測量記錄,便于維修后達到最佳狀態。 ⑦模具的磨刃口是維修中的重要環節,磨刃口前必須清理模具內的沖件和廢料,保持清潔,保證基準可靠。磨凸模刃口時,需換裝配制的短導柱,裝上卸料導向板,用等高墊塊墊穩保持平行,使凸模高出卸料導向板1mm左右即可。磨刃口,控制每次進給量,保證磨削品質。并將磨刃總量提供修磨其它相關件,達到一致性要求。 ⑧模具經過維修和磨刃口后,要認真做好退磁、去毛刺、清洗和關鍵參數的測量記錄,再進行組裝、潤滑和切紙檢查。同時認真檢查導正銷、彈簧、緊固件等零件狀況,保證模具技術性能。維修后的模具裝上生產線,再按規范要求連機、試沖合格,滿足批量生產的正常運行。 展望為了讓讀者明白每個選項的含義,作者在原文基礎上補充了大量的資料 。希望這份文檔,對正在研究JVM 參數的朋友有幫助! 另外,考慮到本文檔是初稿,如有描述錯誤,敬請指正。 非穩態選項使用說明 -XX:+<option> 啟用選項 -XX:-<option> 不啟用選項 -XX:<option>=<number> 給選項設置一個數字類型值,可跟單位,例如 32k, 1024m, 2g -XX:<option>=<string> 給選項設置一個字符串值,例如-XX:HeapDumpPath=./dump.core 行為選項 選項 默認值與限制 描述 -XX:-AllowUserSignalHandlers 限于Linux 和Solaris ,默認不啟用 允許為java 進程安裝信號處理器。 -XX:-UseParallelGC -server時啟用 其他情況下,默認不啟用 策略為新生代使用并行清除,年老代使用單線程Mark-Sweep-Compact 的垃圾收集器。 -XX:-UseParallelOldGC 默認不啟用 策略為老年代和新生代都使用并行清除接地銅線的垃圾收集器。 -XX:-UseSerialGC -client時啟用 其他情況下,默認不啟用 使用串行垃圾收集器。 -XX:+UseSplitVerifier java5默認不啟用 java6默認啟用 使用新的Class 類型校驗器 。 新Class 類型校驗器有什么特點? 新Class 類型校驗器,將老的校驗步驟拆分成了兩步: 1 ,類型推斷。 2 ,類型校驗。 新類型校驗器通過在javac 編譯時嵌入類型信息到bytecode 中,省略了類型推斷這一步,從而提升了classloader 的性能。 Classload順序(供參考) load -> verify -> prepare -> resove -> init 關聯選項: -XX:+FailOverToOldVerifier -XX:+FailOverToOldVerifier Java6新引入選項,默認啟用 如果新的Class 校驗器檢查失敗,則使用老的校驗器。 為什么會失敗? 因為JDK6 最高向下兼容到JDK1.2 ,而JDK1.2 的class info 與JDK6 的info 存在較大的差異,所以新校驗器可能會出現校驗失敗的情況。 關聯選項: -XX:+UseSplitVerifier -XX:+HandlePromotionFailure java5以前是默認不啟用,java6 默認啟用 關閉新生代收集擔保。 什么是新生代收集擔保? 在一次理想化的minor gc中,Eden和First Survivor中的活躍對象會被復制到Second Survivor。 然而,Second Survivor 不一定能容納下所有從E 和F 區copy 過來的活躍對象。 為了確保minor gc 能夠順利完成,GC 需要在年老代中額外保留一塊足以容納所有活躍對象的內存空間。 這個預留操作,就被稱之為新生代收集擔保(New Generation Guarantee )。如果預留操作無法完成時,仍會觸發major gc(full gc) 。 為什么要關閉新生代收集擔保? 因為在年老代中預留的空間大小,是無法精確計算的。 為了確保極端情況的發生,GC參考了最壞情況下的新生代內存占用,即Eden+First Survivor。 這種策略無疑是在浪費年老代內存,從時序角度看,還會提前觸發Full GC 。 為了避免如上情況的發生,JVM 允許開發者手動關閉新生代收集擔保。 在開啟本選項后,minor gc 將不再提供新生代收集擔保接地銅線,而是在出現survior 或年老接地銅線代不夠用時,拋出promotion failed 異常。 -XX:+UseSpinning java1.4.2和1.5 需要手動啟用, java6 默認已啟用 啟用多線程自旋鎖優化。 自旋鎖優化原理 大家知道,Java 的多線程安全是基于Lock 機制實現的,而Lock 的性能往往不如人意。 原因是,monitorenter 與monitorexit 這兩個控制多線程同步的bytecode 原語,是JVM 依賴操作系統互斥(mutex) 來實現的。 互斥是一種會導致線程掛起,并在較短的時間內又必須重新調度回原線程的,較為消耗資源的操作。 為了避免進入OS 互斥,Java6 的開發者們提出了自旋鎖優化。 自旋鎖優化的原理是在線程進入OS 互斥前,通過CAS 自旋一定的次數來檢測鎖的釋放。 如果在自旋次數未達到預設值前鎖已被釋放,則當前線程會立即持有該鎖。 CAS檢測鎖的原 -XX:+UseSpinning -XX:+ScavengeBeforeFullGC 默認啟用 在Full GC前觸發一次Minor GC。 -XX:+UseGCOverheadLimit 默認啟用 限制GC 的運行時間。如果GC 耗時過長,就拋OOM 。 -XX:+ UseTLAB 1.4.2以前和使用-client 選項時,默認不啟用,其余版本默認啟用 啟用線程本地緩存區(Thread Local )。 -XX:+UseThreadPriorities 默認啟用 使用本地線程的優先級。 -XX:+UseAltSigs 限于Solaris ,默認啟用 為了防止與其他發送信號的應用程序沖突,允許使用候補信號替代 SIGUSR1 和SIGUSR2 。 -XX:+UseBoundThreads 限于Solaris, 默認啟用 綁接地銅線定所有的用戶線程到內核線程。 減少線程進入饑餓狀態(得不到任何cpu time )的次數。 -XX:+UseLWPSynchronization 限于solaris ,默認啟用 使用輕量級進程(內核線程)替換線程同步。 -XX:+MaxFDLimit 限于Solaris ,默認啟用 設置java 進程可用文件描述符為操作系統允許的最大值。 -XX:+UseVMInterruptibleIO 限于solaris,默認啟用 在solaris 中,允許運行時中斷線程。 性能選項 選項與默認值 默認值與限制 描述 -XX:+ AggressiveOpts JDK 5 update 6后引入,但需要手動啟用。 JDK6默認啟用。 啟用JVM 開發團隊最新的調優成果。例如編譯優化,偏向鎖,并行年老代收集等。 -XX:CompileThreshold=10000 1000 通過JIT 編譯器,將方法編譯成機器碼的觸發閥值,可以理解為調用方法的次數,例如調1000 次,將方法編譯為機器碼。 -XX: LargePageSizeInBytes =4m 默認4m amd64位:2m 設置堆內存的內存頁大小。 什么是預估上限值? JVM在啟動時,會申請最大值(-Xmx 指定的數值)的地址空間,但其中絕大部分空間不會被立即分配(virtual) 。 它們會一直保留著,直到運行過程中,JVM 發現實際占用接近已分配上限值時,才從virtual 里再分配掉一部分內存。 這里提到的已分配上限值,也可以叫做預估上限值。 引入預估上限值的好處是,可以有效地控制堆的大小。堆越小,GC 效率越高嘛。 注意:預估上限值的大小一定小接地銅線于或等于最大值。 -接地銅線XX:MaxNewSize=size 1.3.1 Sparc: 32m 1.3.1x86: 2.5m 新生代占整個堆內存的最大值。 -XX:MaxPermSize=64m 5.0以后: 64 bit VMs會增大預設值的30% 1.4amd64: 96m 1.3.1 -client: 32m 其他默認 64m Perm(俗稱方法區)占整個堆內存的最大值。 -XX:MinHeapFreeRatio=40 40 GC后,如果發現空閑堆內存占到整個預估上限值的40% ,則增大上限值。 (什么是預估上限值?見 -XX:MaxHeapFreeRatio 處的描述) 關聯選項: -XX:MaxHeapFreeRatio=70 -XX:NewRatio=2 Sparc -client: 8 x86 -server: 8 x86 -client: 12 -client: 4 (1.3) 8 (1.3.1+) x86: 12 其他默認 2 新生代和年老代的堆內存占用比例。 例如2 例如2表示新生代占年老代的1/2,占整個堆內存的1/3。 -XX:NewSize=2.125m 5.0以后: 64 bit Vms會增大預設值的30% x86: 1m x86, 5.0以后: 640k 其他默認 2.125m 新生代預估上限的默認值。( 什么是預估上限值?見 -XX:MaxHeapFreeRatio處的描述) -XX:ReservedCodeCacheSize =32m Solaris 64-bit, amd64, -server x86: 48m 1.5.0_06之前, Solaris 64-bit amd64: 1024m 其他默認 32m