ä»¥ä¸‹æ˜¯æ‰¾åˆ°çš„å‡ ç¯‡æ–‡ç« åQ?/p>
1ã€?a target="_blank" style="color: #ca0000; text-decoration: none;">http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.htmlåQŒè¿™ä¸ªæ˜¯å®˜æ–¹çš„æ–‡æ¡£ï¼Œæœ‰å¯¹service的详¾l†ä»‹¾l,包括规范以åŠä¸€ä¸ªç®€å•çš„½CÞZ¾‹åQŒè¿™ä¸ªæ˜¯å¦ä¹ SPI必须看的文档åQ?/p>
注:http://docs.oracle.com/javase/1.4.2/docs/guide/jar/jar.html#Service%20ProvideråQŒè¿™ä¸ªæ˜¯1.4ä¸å¯¹Service Provider的介¾lï¼ŒåŠ è²æœåŠ¡æ˜¯é€šè¿‡sun.misc.Service˜q›è¡ŒåŠ è²çš„,˜q™ä¸ªä¹Ÿæœ‰ç›¸åº”的示例,照嚞®±OKåQ?/p>
2ã€Javaçš„SPI机制åQ?a target="_blank" style="color: #ca0000; text-decoration: none;">http://www.2cto.com/kf/201012/79868.htmlåQŒè¿™ä¸ªæ˜¯å›½äh写的一½‹‡ç¤ºä¾‹æ–‡ç« ,也挺ä¸é”™åQŒé‡Œé¢ä¹Ÿæœ‰ä¸€ä¸ªç®€å•çš„½CÞZ¾‹åQ?/p>
3ã€Developing a Service Provider using Java API(Service Provider Interface)åQ?a style="color: #ca0000; text-decoration: none;">http://blog.csdn.net/fenglibing/article/details/7083526åQŒè¿™½‹‡æ–‡ç« 是转的alexaå‘表在blogspot上é¢çš„,也是一个开å‘SPI的示例,有兴‘£çš„也å¯ä»¥çœ‹çœ‹ï¼›
4ã€Add Mp3 capabilities to Java Sound with SPIåQ?a target="_blank" style="color: #ca0000; text-decoration: none;">http://www.javaworld.com/javaworld/jw-11-2000/jw-1103-mp3.htmlåQŒè¿™æ˜¯ä¸€ä¸ªæ¯”较è€çš„例ååQŒåŸºäºŽjdk1.3çš„ï¼Œå› äØ“åœ¨jdk1.3的时候还没有支æŒmp3æ ¼å¼åQŒåªæ”¯æŒAU, AIF, MIDI, and WAV½{‰æ ¼å¼ï¼Œä¹Ÿæ˜¯ä¸€ä¸ªå€¼å¾—å‚考的½CÞZ¾‹ã€?/p>
我这边也写了一个简å•å¾—ä¸èƒ½å¤Ÿå†½Ž€å•çš„½CÞZ¾‹åQŒæºç å¯ä»¥è¿™é‡Œä¸‹è½½ï¼šhttp://download.csdn.net/detail/fenglibing/3939882
最åŽå¾ˆé‡è¦ä¸€ç‚¹ï¼š
如果惌™¦è¦†ç›–æŸä¸ªProvideråQŒå¯ä»¥åœ¨å¯¹åº”çš„META-INF/services的酾|®æ–‡ä»¶ä¸åŠ ä¸Šæ–°service的一行,或者也å¯ä»¥å†™åœ¨å¦ä¸€ä¸ªæœ‰ä¾èµ–关系的jar包ä¸åQŒåªè¦å’ŒåŽŸæ¥çš„Provider命åä¸åŒå›_¯ã€‚åŠ è½½é¡ºåºä¸Šå¯ä»¥è€ƒè™‘使用@Priority注解æ¥è°ƒæ•´åŠ è½½çš„ä¼˜å…ˆ¾U§ã€?/p>
傿•°è¯´æ˜ŽåQ?/p>
-Xmx1280måQšè®¾¾|®JVM最大å¯ç”¨å†…å˜äØ“1280m。最大å¯è®¾äØ“3550m。具体应用å¯é€‚当调整ã€?/p>
-Xms1280måQšè®¾¾|®JVMåˆå§‹å†…å˜ä¸?280m。æ¤å€¼å¯ä»¥è®¾¾|®ä¸Ž-Xmx相åŒåQŒä»¥é¿å…æ¯æ¬¡åžƒåœ¾å›žæ”¶å®ŒæˆåŽJVM釿–°åˆ†é…内å˜ã€?/p>
-Xmn480måQšè®¾¾|®å¹´è½ÖM»£å¤§å°ä¸?80mã€‚æ•´ä¸ªå †å¤§å°=òq´è½»ä»£å¤§ž®?+ òq´è€ä»£å¤§å° + æŒä¹…代大ž®ã€‚æŒä¹…代一般固定大ž®äØ“64måQŒæ‰€ä»¥å¢žå¤§å¹´è½ÖM»£åŽï¼Œž®†ä¼šå‡å°òq´è€ä»£å¤§å°ã€‚æ¤å€¼å¯¹¾pÈ»Ÿæ€§èƒ½å½±å“较大åQŒSun官方推èé…ç½®ä¸ºæ•´ä¸ªå †çš?/8ã€?/p>
-Xss256kåQšè®¾¾|®æ¯ä¸ªçº¿½E‹çš„å †æ ˆå¤§å°ã€‚JDK5.0ä»¥åŽæ¯ä¸ª¾U¿ç¨‹å †æ ˆå¤§å°ä¸?MåQŒä»¥å‰æ¯ä¸ªçº¿½E‹å †æ ˆå¤§ž®äØ“256K。更具应用的¾U¿ç¨‹æ‰€éœ€å†…å˜å¤§å°˜q›è¡Œè°ƒæ•´ã€‚在相åŒç‰©ç†å†…å˜ä¸‹ï¼Œå‡å°˜q™ä¸ªå€ÆDƒ½ç”Ÿæˆæ›´å¤šçš„线½E‹ã€‚但是æ“作系¾lŸå¯¹ä¸€ä¸ªè¿›½E‹å†…的线½E‹æ•°˜q˜æ˜¯æœ‰é™åˆ¶çš„åQŒä¸èƒ½æ— é™ç”Ÿæˆï¼Œ¾l验值在3000~5000å·¦å³ã€?/p>
-XX:PermSize=64måQšæŒ‡å®?jvm ä¸?Perm Generation 的最ž®å€¹{€?˜q™ä¸ªå‚数需è¦çœ‹ä½ 的实际情况。å¯ä»¥é€šè¿‡jmap 命ä×o看看到底需è¦å¤šž®‘ã€?/p>
-XX:MaxPermSize=128måQšæŒ‡å®?Perm Generation 的最大å€?/p>
-XX:+UseConcMarkSweepGCåQ?/strong>讄¡½®òq¶å‘攉™›†å™?/p>
-XX:ParallelGCThreads=8åQ?/strong>é…ç½®òq¶è¡Œæ”‰™›†å™¨çš„¾U¿ç¨‹æ•ŽÍ¼Œå»I¼šåŒæ—¶å¤šå°‘个线½E‹ä¸€èµ¯‚¿›è¡Œåžƒåœ‘Ö›žæ”¶ã€‚æ¤å€¼æœ€å¥½é…¾|®ä¸Žå¤„ç†å™¨æ•°ç›®ç›¸½{‰ã€?/p>
-XX:CMSFullGCsBeforeCompaction=0åQ?/strong>ç”׃ºŽòq¶å‘攉™›†å™¨ä¸å¯¹å†…å˜ç©ºé—´è¿›è¡ŒåŽ‹¾~©ã€æ•´ç†ï¼Œæ‰€ä»¥è¿è¡Œä¸€ŒD‰|—¶é—´ä»¥åŽä¼šäº§ç”Ÿ“¼„Žç‰‡”åQŒä‹Éå¾—è¿è¡Œæ•ˆçއé™ä½Žã€‚æ¤å€ÆD®¾¾|®è¿è¡Œå¤šž®‘次GC以åŽå¯¹å†…å˜ç©ºé—´è¿›è¡ŒåŽ‹¾~©ã€æ•´ç†ã€?/p>
-XX:+UseCMSCompactAtFullCollectionåQ?/strong>打开对年è€ä»£çš„压¾~©ã€‚å¯èƒ½ä¼šå½±å“性能åQŒä½†æ˜¯å¯ä»¥æ¶ˆé™¤ç¢Žç‰‡ã€?/p>
-XX:SurvivorRatio=8åQ?/strong>æ¯ä¸ªsurvivor space å’?eden之间的比例ã€?/p>
-XX:MaxTenuringThreshold=7åQ?/strong>讄¡½®åžƒåœ¾æœ€å¤§å¹´é¾„。如果设¾|®äØ“0çš„è¯åQŒåˆ™òq´è½»ä»£å¯¹è±¡ä¸¾l过Survivor区,直接˜q›å…¥òq´è€ä»£ã€‚对于年è€ä»£æ¯”较多的应用åQŒå¯ä»¥æé«˜æ•ˆçŽ‡ã€‚å¦‚æžœå°†æ¤å€ÆD®¾¾|®äؓ一个较大å€û|¼Œåˆ™å¹´è½ÖM»£å¯¹è±¡ä¼šåœ¨SurvivoråŒø™¿›è¡Œå¤š‹Æ¡å¤åˆÓž¼Œ˜q™æ ·å¯ä»¥å¢žåŠ å¯¹è±¡å†å¹´è½ÖM»£çš„嘋zÀL—¶é—ß_¼Œå¢žåŠ åœ¨å¹´è½ÖM»£åŒ™¢«å›žæ”¶çš„æ¦‚率ã€?/p>
-XX:GCTimeRatio=19åQ?/strong>讄¡½®åžƒåœ¾å›žæ”¶æ—‰™—´å 程åºè¿è¡Œæ—¶é—´çš„癑ֈ†æ¯”,公å¼ä¸?/(1+n)ã€?/p>
-XnoclassgcåQ?/strong>¼›ç”¨¾cÕdžƒåœ‘Ö›žæ”Óž¼Œæ€§èƒ½ä¼šæœ‰ä¸€å®šæé«˜ã€?/p>
-XX:+DisableExplicitGCåQ?/strong>当æ¤å‚数打开æ—Óž¼Œåœ¨ç¨‹åºä¸è°ƒç”¨System.gc()ž®†ä¼šä¸è“v作用。默认是offã€?/p>
-XX:+UseParNewGCåQ?/strong>讄¡½®òq´è½»ä»£äØ“òq¶è¡Œæ”‰™›†ã€‚å¯ä¸ŽCMS攉™›†åŒæ—¶ä½¿ç”¨ã€?/p>
-XX:-CMSParallelRemarkEnabledåQ?/strong>在ä‹Éç”?UseParNewGC 的情况下 , ž®½é‡å‡å°‘ mark 的时间ã€?/p>
-XX:CMSInitiatingOccupancyFraction=70åQ?/strong>指示åœ?old generation 在ä‹É用了 70% çš„æ¯”ä¾‹åŽ , å¯åЍ concurrent collectorã€?/p>
-XX:SoftRefLRUPolicyMSPerMB=0åQ?/strong>æ¯å…†å †ç©ºé—²ç©ºé—´ä¸SoftReference的嘋zÀL—¶é—´ã€?/p>
@import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);