javaÖÐÀ¬»ø»ØÊÕËã·¨
1£©À¬»ø»ØÊÕµÄÁ½¸ö¹Ø¼üÒªËØ£º
·¢ÏÖÎÞÓöÔÏó¡£
»ØÊÕÎÞÓöÔÏóµÄÄÚ´æ¿Õ¼ä¡£
2£©6ÖÖÀ¬»ø»ØÊÕËã·¨£º
ÒýÓüÆÊý·¨£¬tracing Ëã·¨£¬compactingËã·¨£¬copying Ëã·¨£¬generationËã·¨£¬adaptiveËã·¨¡£
3£©detail£º
ÒýÓüÆÊý·¨(Reference Counting Collector)
ÒýÓüÆÊý·¨ÊÇΨһûÓÐʹÓøù¼¯µÄÀ¬»ø»ØÊյ퍣¬¸ÃË㷨ʹÓÃÒýÓüÆÊýÆ÷À´Çø·Ö´æ»î¶ÔÏóºÍ²»Ê¹ÓõĶÔÏó¡£Ò»°ãÀ´Ëµ£¬¶ÑÖеÄÿ¸ö¶ÔÏó¶ÔÓ¦Ò»¸öÒýÓüÆÊýÆ÷¡£µ±Ã¿Ò»´Î´´½¨Ò»¸ö¶ÔÏ󲢸³¸øÒ»¸ö±äÁ¿Ê±£¬ÒýÓüÆÊýÆ÷ÖÃΪ1¡£µ±¶ÔÏ󱻸³¸øÈÎÒâ±äÁ¿Ê±£¬ÒýÓüÆÊýÆ÷ÿ´Î¼Ó1µ±¶ÔÏó³öÁË×÷ÓÃÓòºó(¸Ã¶ÔÏó¶ªÆú²»ÔÙʹÓÃ)£¬ÒýÓüÆÊýÆ÷¼õ1£¬Ò»µ©ÒýÓüÆÊýÆ÷Ϊ0£¬¶ÔÏó¾ÍÂú×ãÁËÀ¬»øÊÕ¼¯µÄÌõ¼þ¡£
»ùÓÚÒýÓüÆÊýÆ÷µÄÀ¬»øÊÕ¼¯Æ÷ÔËÐнϿ죬²»»á³¤Ê±¼äÖжϳÌÐòÖ´ÐУ¬ÊÊÒ˵رØÐëʵʱÔËÐеijÌÐò¡£µ«ÒýÓüÆÊýÆ÷Ôö¼ÓÁ˳ÌÐòÖ´ÐеĿªÏú£¬ÒòΪÿ´Î¶ÔÏ󸳸øÐµıäÁ¿£¬¼ÆÊýÆ÷¼Ó1£¬¶øÃ¿´ÎÏÖÓжÔÏó³öÁË×÷ÓÃÓòÉú£¬¼ÆÊýÆ÷¼õ1¡£
tracingËã·¨(Tracing Collector)
tracingËã·¨ÊÇΪÁ˽â¾öÒýÓüÆÊý·¨µÄÎÊÌâ¶øÌá³ö£¬ËüʹÓÃÁ˸ù¼¯µÄ¸ÅÄî¡£»ùÓÚtracingËã·¨µÄÀ¬»øÊÕ¼¯Æ÷´Ó¸ù¼¯¿ªÊ¼É¨Ã裬ʶ±ð³öÄÄЩ¶ÔÏó¿É´ï£¬ÄÄЩ¶ÔÏ󲻿ɴ²¢ÓÃijÖÖ·½Ê½±ê¼Ç¿É´ï¶ÔÏó£¬ÀýÈç¶Ôÿ¸ö¿É´ï¶ÔÏóÉèÖÃÒ»¸ö»ò¶à¸öλ¡£ÔÚɨÃèʶ±ð¹ý³ÌÖУ¬»ùÓÚtracingËã·¨µÄÀ¬»øÊÕ¼¯Ò²³ÆÎª±ê¼ÇºÍÇå³ý(mark-and-sweep)À¬»øÊÕ¼¯Æ÷.
compactingËã·¨(Compacting Collector)
ΪÁ˽â¾ö¶ÑË鯬ÎÊÌ⣬»ùÓÚtracingµÄÀ¬»ø»ØÊÕÎüÊÕÁËCompactingËã·¨µÄ˼Ï룬ÔÚÇå³ýµÄ¹ý³ÌÖУ¬Ëã·¨½«ËùÓеĶÔÏóÒÆµ½¶ÑµÄÒ»¶Ë£¬¶ÑµÄÁíÒ»¶Ë¾Í±ä³ÉÁËÒ»¸öÏàÁڵĿÕÏÐÄÚ´æÇø£¬ÊÕ¼¯Æ÷»á¶ÔËüÒÆ¶¯µÄËùÓжÔÏóµÄËùÓÐÒýÓýøÐиüУ¬Ê¹µÃÕâЩÒýÓÃÔÚеÄλÖÃÄÜʶ±ðÔÀ´µÄ¶ÔÏó¡£ÔÚ»ùÓÚCompactingËã·¨µÄÊÕ¼¯Æ÷µÄʵÏÖÖУ¬Ò»°ãÔö¼Ó¾ä±úºÍ¾ä±ú±í¡£
copyingËã·¨(Coping Collector)
¸ÃËã·¨µÄÌá³öÊÇΪÁ˿˷þ¾ä±úµÄ¿ªÏúºÍ½â¾ö¶ÑË鯬µÄÀ¬»ø»ØÊÕ¡£Ëü¿ªÊ¼Ê±°Ñ¶Ñ·Ö³ÉÒ»¸ö¶ÔÏó ÃæºÍ¶à¸ö¿ÕÏÐÃæ£¬³ÌÐò´Ó¶ÔÏóÃæÎª¶ÔÏó·ÖÅä¿Õ¼ä£¬µ±¶ÔÏóÂúÁË£¬»ùÓÚcopingËã·¨µÄÀ¬»ø ÊÕ¼¯¾Í´Ó¸ù¼¯ÖÐɨÃè»î¶¯¶ÔÏ󣬲¢½«Ã¿¸ö»î¶¯¶ÔÏó¸´ÖƵ½¿ÕÏÐÃæ(ʹµÃ»î¶¯¶ÔÏóËùÕ¼µÄÄÚ´æÖ®¼äûÓпÕÏж´)£¬ÕâÑù¿ÕÏÐÃæ±ä³ÉÁ˶ÔÏóÃæ£¬ÔÀ´µÄ¶ÔÏóÃæ±ä³ÉÁË¿ÕÏÐÃæ£¬³ÌÐò»áÔÚеĶÔÏóÃæÖзÖÅäÄÚ´æ¡£Ò»ÖÖµäÐ͵ĻùÓÚcopingËã·¨µÄÀ¬»ø»ØÊÕÊÇstop-and-copyËã·¨£¬Ëü½«¶Ñ·Ö³É¶ÔÏóÃæºÍ¿ÕÏÐÇøÓòÃæ£¬ÔÚ¶ÔÏóÃæÓë¿ÕÏÐÇøÓòÃæµÄÇл»¹ý³ÌÖУ¬³ÌÐòÔÝÍ£Ö´ÐС£
generationËã·¨(Genera
Ïà¹ØÎĵµ£º
ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......
Is there a Push-based/Non-blocking XML Parser for Java?
http://stackoverflow.com/questions/1023759/is-there-a-push-based-non-blocking-xml-parser-for-java
http://old.nabble.com/parsing-an-xml-document-chunk-by-chunk-td22945319.html
http://markmail.org/message/ogqqcj7dt3lwkbov ......
ÎÒÃÇÖªµÀJavaÖÐÒ»°ãµÄÊäÈëÊä³öÁ÷Àà¶¼ÊÇÓõ¥×ֽڵĶÁÈ¡·½·¨À´½øÐÐI/O²Ù×÷µÄ£¬Ò²¾ÍÊÇ˵ÿ´ÎÖ»¶Áдһ¸ö×Ö½ÚµÄÊý¾Ý£¬ÕâÖÖ·½·¨ÏÔÈ»·±ËöµÍЧ¡£Èç¹û´ÓÉ豸¶ÁÈ¡10MµÄÎļþ£¬Ã¿´Î¶Áȡһ¸ö×Ö½Ú£¬Íê³É²Ù×÷½«ÐèÒª×ö10M/´ÎI/O²Ù×÷£¬I/O²Ù×÷ÓÖÊÇÒ»¼þÏ൱ºÄʱµÄÊÂÇ飬ÎÞÒÉÔںܴó³Ì¶ÈÉϽµµÍÁËϵͳµÄÐÔÄÜ¡£
JavaÖÐ× ......
ǰһ¶Îʱ¼äÊÔ×ÅÓÃÕâÈýÖÖÓïÑÔ¼òµ¥µÄдÁ˹ØÓÚÎļþ¿½±´µÄ³ÌÐò£¬·¢ÏÖc#ºÍpythonµÄapi¾ªÈ˵ÄÏàËÆ£¬¶ÔÓÚÎļþµÄ²Ù×÷ÕâÁ½ÖÖÓïÑԷdz£µÄ·½±ã¡£¶¼Ã»ÓмÓÒì³£µÄ´¦Àí
C#Ô´´úÂ룺
public static void CopyFile(string source, string destination)
& ......
ÖÚËùÖÜÖª£¬ÔÚ³ÌÐò¿ª·¢ÖУ¬ÄÑÃâ»áÓöµ½ÐèҪƥÅä¡¢²éÕÒ¡¢Ìæ»»¡¢ÅжÏ×Ö·û´®µÄÇé¿ö·¢Éú£¬¶øÕâЩÇé¿öÓÐʱÓֱȽϸ´ÔÓ£¬Èç¹ûÓô¿±àÂ뷽ʽ½â¾ö£¬ÍùÍù»áÀ˷ѳÌÐòÔ±µÄʱ¼ä¼°¾«Á¦¡£Òò´Ë£¬Ñ§Ï°¼°Ê¹ÓÃÕýÔò±í´ïʽ£¬±ã³ÉÁ˽â¾öÕâһì¶ÜµÄÖ÷ÒªÊֶΡ£
´ó¼Ò¶¼ÖªµÀ£¬ÕýÔò±í´ïʽÊÇÒ»ÖÖ¿ÉÒÔÓÃÓÚģʽƥÅäºÍÌæ»»µÄ¹æ·¶£¬Ò»¸öÕýÔò±í´ïʽ¾ÍÊÇÓÉÆÕͨµ ......