[PerlChina] 答复: 各位圣诞快乐哦!

agentzh agentzh at gmail.com
Wed Dec 24 23:13:47 PST 2008


2008/12/25 wbi ®… <wbisearchina at hotmail.co.jp>
>
>  Firefox 3.1 ¼¯Èº ÊÇÔõô¸öÔ­Àí°¡ Äܸø½éÉܽéÉܲ»£¿

=head1 NAME

List Hunter cluster - Õâ¸öÊÇÎÒÃÇ×Ô¼º»ùÓÚ Mozilla Firefox 3.1 ×öµÄÉî×¥ÅÀ³æ¼¯Èº£¬ÃûΪ List Hunter
¼¯Èº¡£Ä¿Ç°ÊÇÎÒÃǹ«Ë¾Éú»îËÑË÷ÒýÇæµÄÒ»²¿·Ö¡£

=head1 ±³¾°

ÔÚÎÒÃǵÄÉú»îËÑË÷ÏîÄ¿ÖУ¬ÐèÒª¶ÔÍøÒ³½øÐÐÉî²ã´ÎµÄʶ±ðºÍ³éÈ¡¡£»ùÓÚÎı¾ÄÚÈݵķÖÀàÎÒÃÇÄ¿Ç°²ÉÓõÄÊÇÃÀ¹úÑÅ»¢»ùÓÚ×î´óìØµÄ DCP
ϵͳ¡£¶ø¶ÔÓÚÍøÒ³½á¹¹·½ÃæµÄ·ÖÀࣨ¼´Õâ¸öÍøÒ³ÊÇÁбíÒ³ÄØ£¬»¹ÊÇÏêÇéÒ³£¿£©£¬ÒÔ¼°Ö÷ÌåÁ´½ÓÁÐ±í¡¢Ö÷ÌåÇøÓò³éÈ¡£¬Ôòһֱȱ·¦±È½ÏºÃµÄ½â¾ö·½°¸¡£ÎÒµÄͬʳ¢ÊÔ¹ýͨ¹ý´¿´âµÄ½á¹¹»¯µÄ·½·¨£¨È纣άËã·¨£©½øÐÐʶ±ð£¬×¼È·ÂÊÖ»ÓÐ
60%£¬¶ø»ùÓÚ SVM ÕâÑùµÄ»úÆ÷ѧϰµÄ·½·¨£¬¶ÔÍøÒ³ÀàÐͱȽÏÃô¸Ð£¬ÈçÄ¿±êÍøÒ³ÓëѵÁ·¼¯Ïà²î½Ï¶à£¬Ôò׼ȷÂÊѸËÙϽµ¡£

ÓÚÊÇÎÒ³¢ÊÔ°ÑÍøÒ³ÏÔʾʱµÄÊÓ¾õÐÅÏ¢½áºÏµ½º£Î¬Ëã·¨ÒÔ¼°¿éºÏ²¢Ëã·¨ÖС£ÓÚÊÇ׼ȷÂʺÍÕÙ»ØÂÊ·Ö±ð´ïµ½ÁË 90% ºÍ
80%¡£ÕâÀïµÄÊÓ¾õÐÅÏ¢Ö÷Òª°üÀ¨Ò»¸öÍøÒ³ÇøÓòµÄ´óС¡¢ÐÎ×´¡¢ºÍÔÚÕû¸öÒ³ÃæÖеÄλÖ᣸ü¶àµÄÐÅÏ¢»¹°üÀ¨×ÖÌå¡¢ÑÕÉ«µÈµÈ¡£ÕâÑù£¬±ãµ®ÉúÁË List Hunter
²å¼þ¡£ÓÚÊÇÈçºÎ½« Firefox ²å¼þ×ö³ÉÒ»¸ö´ó¹æÄ£µÄ¼¯ÈºÓÃÓÚÉú²ú£¬±ã³ÉΪÁËÖØÒªÎÊÌâ¡£

ÔÚÏÂÃæÕâƪ blog ÎÄÕÂÖÐÎÒ½éÉÜÁ˸ü¶à±³¾°·½ÃæµÄϸ½ÚÒÔ¼° List Hunter ²å¼þ±¾ÉíµÄÇé¿ö£º

    http://blog.agentzh.org/#post-97

=head1 ¼¯ÈºµÄ½á¹¹

¸Ã¼¯ÈºÓÉËĴ󲿷Ö×é³É£º´¿ Firefox ¼¯Èº£¬Apache + mod_proxy + mod_disk_cache ¼¯Èº£¬curl ԤȡÆ÷¼¯Èº£¬ºÍ
OpenResty ¼¯Èº¡£Ò»¹²ÓÐÊ®¼¸Ì¨Éú²ú»ú"È«Ö°"»òÕß"¼æÖ°"µØ²ÎÓëÁËÕâ¸ö¼¯Èº¡£ÏÂÃæÖðÒ»½éÉÜһϹþ£º

=over

=item ´¿ Firefox ¼¯Èº

´¿ Firefox ¼¯ÈºÄ¿Ç°ÓÉ 8 ̨ 4 ºËµÄ redhat5 Éú²ú»ú×é³É¡£Ã¿Ì¨Éú²ú»úÔËÐÐ 3 ¸ö Firefox 3.1 ½ø³ÌʵÀý¡£ÒòΪÄÇ 8
̨»úÆ÷ͬʱ·þÎñÓÚÌÔ±¦ VIP ËÑË÷µÄÉÌ¿ÚͼƬÏÔʾ½Ó¿Ú£¨´óÔ¼ 600 ÍòÈÕ PV£©£¬ËùÒÔÎÒÃÇû¸ÒÔÚÕâЩ»úÆ÷ÉÏÔËÐбȽ϶àµÄ Firefox ½ø³Ì¡£

ÐèÒªÖ¸³öµÄÊÇ£¬Firefox ĬÈÏÊÇ"½ø³Ì¸´ÓÃ"µÄÔËÐз½Ê½¡£¼´Æô¶¯¶à´Î firefox-bin ¿ÉÖ´ÐгÌÐò£¬ÆäʵµÃµ½µÄ»¹Êǵ¥¸ö Firefox
½ø³Ì¡£ÕâÖÖ½ø³Ì¸´Ó÷½Ê½ÎÞ·¨³ä·ÖÀûÓÃÉú²ú»úµÄ¶àºË CPU¡£ÒòΪÔÚÈÎÒâ¸ø¶¨Ê±¿Ì£¬Ò»¸ö½ø³ÌÖ»ÄÜÅÜÔÚÒ»¸öºËÉÏ£¬ÄÄÅÂËüÊǶàÏ̵߳ġ£ÎªÁËÈà Firefox
ÒÔ¶à½ø³Ì·½Ê½ÔËÐУ¬ÐèÒª£º

=over

=item 1.

ÔÚµ÷Óà firefox-bin ³ÌÐòʱָ¶¨ -no-remote ÃüÁîÐÐÑ¡Ï»òÕßÉèÖû·¾³±äÁ¿ MOZ_NO_REMOTE=1

=item 2.

ÒÔ²»Í¬µÄ profile ÔËÐв»Í¬µÄ firefox-bin ½ø³Ì£¨ÀûÓà -P ÃüÁîÐÐÑ¡Ï¡£

=back

ÎÒÃÇƽ³£¿´µ½µÄ Firefox µÄÖ÷´°¿Ú²¢²»Æô¶¯£¬¶øÒÔ chrome ·½Ê½µ¥¶ÀÔËÐÐ List Hunter ²å¼þµÄ½çÃ棬ÀýÈ磺

    firefox -chrome chrome://listhunter/content/crawler.xul -P crawler2
-no-remote

ÒÔ chrome ·½Ê½ÔËÐеIJå¼þÓë XULRunner ·½Ê½ÔËÐÐµÄ XUL Ó¦ÓÃÊǺÜÀàËƵġ£

ÓÉÓÚ Firefox 3.1 »¹Ã»ÓÐÕýʽ·¢²¼£¬ÎÒÖ±½Ó checkout ¹Ù·½ Mercurial Ô´Âë²Ö¿âÄÚµÄ×îа汾£¬×Ô¼ºÔÚÎÒÃÇµÄ redhat
Éú²ú»úÉϱàÒëµÄ¡£ÎÒÃÇÄ¿Ç°¼¸ºõûÓÐÐ޸Ĺٷ½µÄ C++ Ô´´úÂ룬ΪÁË·½±ãºÍ¹Ù·½°æ±¾±£³Öͬ²½¡£ÎÒÃÇĿǰʹÓõÄÊÇÏÂÃæµÄ firefox ±àÒëÑ¡Ï

  # My .mozconfig
  mk_add_options MOZ_MAKE_FLAGS="-j2"
  mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt
  ac_add_options --enable-crypto --enable-feeds --disable-profilesharing
--enable-rdf --enable-zipwriter --disable-tests --disable-gnomeui
--disable-cookies --disable-canvas --disable-gnomeui
--disable-inspector-apis --disable-mailnews --disable-mathml
--disable-official-branding --enable-plaintext-editor-only
--disable-postscript --disable-printing --disable-profilelocking
--disable-safe-browsing --disable-startup-notification --disable-svg
--disable-svg-foreignobject --disable-updater --disable-javaxpcom
--disable-plugins --disable-crashreporter --disable-tests --disable-debug
--enable-application=browser --build=i686-linux --disable-jsd --disable-ldap
--enable-strip --disable-accessibility --disable-ogg --disable-dbus
--disable-freetype2 --disable-optimize

ÕâÀïÄܽûÓõŦÄÜÎÒÃǶ¼½ûÓÃÁË£¬ÕâÀïµÄ feeds, rdf, crypto ÕâÈý¸ö¶¼²»ÄÜ disable£¬·ñÔòÔ´Âë±àÒ벻ͨ¹ý£¬»á±¨Ò»Ð© .h
Í·ÎļþÕÒ²»µ½£¬ºÇºÇ¡£--disable-ogg ʵ¼ÊÉÏÒ²²»Æð×÷Ó㬵«ÍøÉϵIJÄÁÏ¿´Ôø¾­ÓÐЧ¹ý£¬ºÇºÇ¡£

ÊÂʵÉÏ£¬Ä¿Ç°ÎÒÃÇ»¹ÊǸø¹Ù·½µÄÔ´Âë´òÁËÒ»¸ö C++ ²¹¶¡£¬ÓÃÓÚ½« Error Console ÖÐµÄ Errors Öض¨Ïòµ½
stderr£¬ÕâÑù·½±ãÎÒÃÇÔÚ¼¯Èº»·¾³ÏÂͨ¹ý Firefox ½ø³ÌµÄ log Îļþ²¶×½ºÍÕï¶ÏһЩÒì³£¡£Ä¿Ç°µÄ²¹¶¡ÊÇÏÂÃæÕâ¸öÑù×Ó£º

    http://agentzh.org/misc/191src.patch.txt

ÖµµÃÒ»ÌáµÄÊÇ£¬Firefox ½ø³Ì±¾ÉíÊÇ"ÎÞÍ·"µÄ£¬¼´ËüÔËÐÐÔÚ Xvfb Õâ¸ö X server
Ö®ÉÏ£¬Ö»ÔÚÄÚ´æÀïÖ´ÐÐäÖȾ£¬¶ø²»ÐèÒªÈκÎÏÔʾӲ¼þµÄ´æÔÚ¡£ÕâЩ Firefox ½ø³Ì±¾ÉíÊǹÒÔÚÎÒÃÇ×Ô¼ºµÄÒ»¸ö Perl
дµÄ½ø³Ì¼à¿Ø½Å±¾Ö®Ï¡£¸Ã½Å±¾À´×ÔÎÒÃÇµÄ Proc::Harness Ä£¿é£º


http://svn.openfoundry.org/xulapp/trunk/demo/ListHunter/misc/Proc-Harness/

Proc::Harness »áÏñ lighttpd µÄ Fastcgi server Ò»Ñù£¬Î¬»¤Ò»×éÖ¸¶¨ÊýÄ¿µÄ½ø³Ì£¨Í¨¹ý CPAN ÉϵÄ
Proc::Simple Ä£¿é£©¡£µ±×Ó½ø³Ì¹ÒµôºóÁ¢¼´ÖØÆô£¬»òÕßµ±×Ó½ø³ÌµÄ stderr/stdout
Êä³ö²»Ôٱ仯һ¶ÎʱÏÞÖ®ºóҲɱ֮ÖØÆô¡£Proc::Harness ½Å±¾×ÔÉíÔòÊǹÒÔÚÁË deamontools ֮ϡ£

ÕâЩ Firefox ½ø³ÌÊÜ°²×°ÔÚÆäÖÐµÄ List Hunter ²å¼þµÄÍêÈ«¿ØÖÆ¡£ËüÃǶ¼ÊǸ߶È×ÔÖ뵀 robot¡£ËüÃÇÄÚ²¿ÓÐÒ»¸ö´¦ÀíÑ­»·£¬Ò»ÅúÒ»ÅúµØ´Ó
OpenResty µÄ web service ½Ó¿ÚÈ¡µ½ URL ÈÎÎñ£¬È»ºóÒ»¸öÒ»¸öµØÔÚ Firefox µÄ browser
×é¼þÀï¼ÓÔغͷÖÎö£¬×îºó°Ñ·ÖÎöµ½µÄ½á¹ûÒ»ÅúÒ»ÅúµØͨ¹ý OpenResty Ìá½»Ö®¡£

=item curl ԤȡÅÀ³æ¼¯ÈºÓë Apache mod_proxy ¼¯Èº

¸Ã¼¯ÈºÄ¿Ç°²¼ÊðÁË 6 ̨˫ºËµÄ redhat4 Éú²ú»ú¡£Ã¿Ì¨»úÆ÷¶¼°²×°ÁËÁ½¸ö¼¯Èº×é¼þ£¬Ò»ÊÇԤȡÆ÷£¬Ò»ÊÇ Apache mod_proxy.
ԤȡÆ÷µÄ×÷ÓÃÊÇͨ¹ý curl £¨×¼È·µØ˵ÊÇ WWW::Curl Ä£¿é£©½«ÍøÒ³µÄ HTML ºÍ CSS ͨ¹ý mod_proxy
Ԥȡһ±é£¬ÕâÑùÕâЩÇëÇóµÄ½á¹û¾Í¿ÉÒÔÔÚ mod_proxy ÖÐͨ¹ý mod_disk_cache »º´æס¡£ÓÚÊǵ±´¿ Firefox ¼¯ÈºÔÙͨ¹ý
mod_proxy È¥×¥ÕâЩ URL ʱ£¬mod_proxy ¾Í¿ÉÒÔÖ±½Ó°Ñ»º´æºóµÄ½á¹ûÖ±½Ó·µ»Ø¸ø Firefox ÁË¡£

ԤȡÆ÷ºÍ Firefox ½ø³ÌÊÇͬʱ¹¤×÷µÄ£¬µ«¶ÔÓÚÒ»¸ö URL ÈÎÎñ¶øÑÔ£¬Ö»ÓÐͨ¹ýԤȡÆ÷Ԥȡ¹ýÖ®ºó£¬Firefox
½ø³Ì²Å»á½øÐд¦Àí¡£ËùÒÔʵ¼Ê¹¹³ÉÁËÒ»¸öÁ½µÀ¹¤ÐòµÄÁ÷Ë®Ïß¡£ÕâÖÖµ÷¶ÈÊÇÓÉ OpenResty ¼¯ÈºÀ´Íê³ÉµÄ¡£

ԤȡÆ÷Ä¿Ç°ÊÇÒÔÒ»¸ö½ÐΪ WWW::Prefetcher µÄ Perl Ä£¿éµÄÐÎʽÀ´ÊµÏֵģº


http://svn.openfoundry.org/xulapp/trunk/demo/ListHunter/misc/WWW-Prefetcher/

ËäÈ» mod_cache ÌṩÁËÐí¶àÑ¡Ïµ«Æ仺´æÐÐΪ»¹ÊDZȽÏ×ñÊØ RFC µÄ cache ÒªÇóµÄ¡£Òò´ËÎÒ¶Ô mod_cache
Ä£¿é½øÐÐÁËÐí¶àÐ޸ģ¬Ê¹Ö®¿ÉÒÔÎÞÌõ¼þµØ»º´æסÇëÇó¹ýµÄËùÓÐÍøÒ³£¬¶ø²»ÂÛÆä URL ÊÇ·ñÓÐ querystring£¬Ò²²»ÂÛÆä response header
ÖеÄÒªÇóÊÇʲô¡£ÎÒÃǶÔ×îÐ嵀 httpd 2.2.11 µÄ²¹¶¡ÈçÏ£º

    http://agentzh.org/misc/httpd-2.2.11.patch.txt

ÌرðµØ£¬mod_disk_cache Ö¸ÏòµÄ²»ÊÇ´ÅÅÌĿ¼£¬¶øÊÇ RAM Öпª±ÙµÄ tmpfs ·ÖÇø¡£ÓÉÓÚÎÒÃÇÕâ 6 ̨»úÆ÷¶¼ÊÇºÜ¾ÉµÄ IDE
Ó²ÅÌ£¬Òò´ËÖ±½ÓÓôÅÅÌ×÷ cache ´æ´¢Ê±£¬¸ß²¢·¢Ìõ¼þÏ£¬Ã¿Ì¨»úÆ÷µÄ load ¶¼ÔÚ 20 ÒÔÉÏ£¬¸ù±¾ÎÞ·¨ÈÌÊÜ¡£ºóÀ´»»Îª tmpfs ½á¹û
htcacheclean ¹¤¾ßÖ®ºó£¬»úÆ÷¸ºÔؾͽµµ½ 0.1 ÒÔÏÂÁË¡£

=item OpenResty¼¯Èº

ÓÉÓÚ OpenResty µÄͨÓÃÐÔ£¬ÎÒÃÇÖ±½Ó¸´ÓÃÁËͬʱ·þÎñÓÚ yahoo.cn ºÍ¿Ú±®ÍøµÄÄǸöÉú²ú¼¯Èº£¬£¨3 ̨ FastCGI Ç°¶Ë»úºÍ1 ̨
PL/Proxy »úÆ÷£©£¬ËùÒÔÎÒ¾ÍûÓв¼ÊðеĻúÆ÷¡£ÔÚ·þÎñÓÚ Firefox ¼¯ÈºµÄ OpenResty ½Ó¿ÚÖÐͨ¹ý View API ±©Â¶ÁËÈô¸ÉµÄ
PostgreSQL º¯Êý£¬ÒÔÍê³ÉÕû¸ö List Hunter ¼¯ÈºµÄÈÎÎñµ÷¶ÈºÍ½á¹û»ã×Ü¡£Ä¿Ç°µÄʵÏÖÖУ¬ÎÒÃÇͨ¹ý Pg µÄ sequence
ÃþÄâÁËÒ»ÖÖÑ­»·ÈÎÎñ¶ÓÁУ¬²¢Í¨¹ý¼ÆÊýÆ÷Íê³ÉÁ÷Ë®ÏßÖÐÁ½µÀ¹¤ÐòÖ®¼äµÄÏà¶Ôͬ²½¡£

Ïà¹ØµÄ Pg º¯Êý¡¢sequence¡¢ÒÔ¼°Ë÷ÒýµÄ¶¨ÒåÔÚÕâÀ

    http://svn.openfoundry.org/xulapp/trunk/demo/ListHunter/misc/init-db.sql

Ïà¹ØµÄ OpenResty ¶ÔÏóµÄ¶¨ÒåÔòÔÚÕâÀ


http://svn.openfoundry.org/xulapp/trunk/demo/ListHunter/misc/init-resty.pl

=back

=head1 ¼¯ÈºµÄÐÔÄÜ

¼¯ÈºÄ¿Ç°Ã¿Ð¡Ê±µÄ²ú³öÎȶ¨ÔÚ 10 ÍòÍøÒ³ÒÔÉÏ£¬Ò»ÌìµÄ²ú³öÔÚ 240 ÍòÒÔÉÏ¡£Firefox »úÆ÷µÄ¸ºÔØÔÚ 3 ×óÓÒ£¬Proxy µÄ¸ºÔØÔÚ 0.1 ÒÔÏ¡£

JS »ù×¼²âÊÔÏÔʾ Firefox 3.1 ¼ÓÔØÒ»¸öÒ³ÃæµÄƽ¾ùÑÓʱÊÇ 200 ~ 300 ms£¬»ú·¿¼äµÄÍøÂçÑÓʱÔÚ 10 ~ 20 ms£¨ÒòΪÍøÒ³Òѱ»
mod_cache »º´æס£¬¹ÊÎÞµ½ÍâÍøµÄÍøÂ翪Ïú£©, List Hunter ²å¼þµÄ DOM ·ÖÎö´úÂëµÄÓÃʱÔÚ 200 ~ 300 ms¡£ÆäËû
OpenResty ¿ªÏúÔÙ¼ÆÈ룬´óÔ¼ 1 sec ´¦ÀíÒ»¸öÒ³Ãæ¡£

=head1 ÒÑ֪ƿ¾±ºÍȱÏÝ

µ± OpenResty ÖÐµÄ URL ÈÎÎñ±íµÄÐÐÊý³¬¹ý 100 ~ 200 Íòʱ£¬µ÷¶È²éѯÈÝÒ׳¬¹ý PL/Proxy µÄ 10
ÃëÏÞÖÆ¡£Òò´Ë£¬ÎÒÃÇÄ¿Ç°²ÉÈ¡"Á÷ʽ"µÄÈÎÎñµ¼ÈëºÍµ¼³ö·½Ê½¡£Í¨¹ý cronjob ¶¨ÆÚµØÏò¿âÖе¼ÈëÈÎÎñ£¬²¢Í¬Ê±°ÑÍê³ÉÁ˵ÄÈÎÎñ¼°Ê±ÒƳö¡£

Apache µÄ mod_proxy Ôڸ߲¢·¢Ìõ¼þϲ»¹»Îȶ¨£¬¶øÇÒÏÞÓÚ Apache ×ÔÉíµÄÌåϵ½á¹¹£¬ÎÞ·¨ÊµÏÖ proxy pipelining.
Òò´Ë¼Æ»®ÔÚδÀ´¼¯Èº¹æÄ£½øÒ»²½À©´óʱ£¬¸ÄÓà Squid. µ±È»ÁË£¬Squid ºÜ¿ÉÄÜÒ²ÐèÒª½øÐÐÐ޸IJÅÄÜÂú×ãÎÒÃÇÕâÀïµÄÇ¿ÖÆ»º´æÒ»¶ÎÖ¸¶¨Ê±¼äµÄÐèÇó¡£

ͬʱ£¬ÊÜÏÞÓÚ Apache mod_cache ºó¶ËµÄ·Ç·Ö²¼Ê½£¬´úÀí·þÎñÆ÷µÄµ÷¶ÈÊÇÔÚ Firefox ½ø³ÌºÍ curl
Ԥȡ½ø³ÌÖÐÍê³ÉµÄ£¬µ¼ÖÂÇ°¶Ë´úÂë±È½Ï¸´ÔÓ£¬»¹´øÀ´ÁË´úÀí·þÎñÆ÷ÁбíµÄ¶¨Ê±Í¬²½ÎÊÌâ¡£Òò´Ë£¬Î´À´¿ÉÒÔ¿¼ÂÇΪ Apache mod_cache »òÕß Squid
Ìí¼Ó memcached »º´æºó¶ËµÄÖ§³Ö¡£ÕâÑù´úÀíÇ°¶ËµÄ¶ą̀·þÎñÆ÷¿ÉÒÔʵÏÖ¶Ô¼¯ÈºÄÚÆäËû²¿¼þµÄ"͸Ã÷»¯"¡£

=head1 TODO

=over

=item 1.

»»Óà Squid + memcached ×÷Ϊ»º´æÓÃÕýÏò´úÀí

=item 2.

ͨ¹ý XULRunner ¶ø·Ç firefox -chrome ·½Ê½ÔËÐÐ List Hunter ²å¼þ¡££¨ÐèҪΪÎÒµÄ XUL::App ¿ò¼ÜÌí¼Ó
XULRunner Ö§³Ö£©

=back

=head1 ÓëÏàËƲúÆ·µÄÒìͬ

ÃÀ¹úÑÅ»¢Í¨¹ý´óÁ¿ÐÞ¸Ä Firefox 2 µÄ C++ Ô´´úÂ룬¿ª·¢Á˽ÐΪ HLFS µÄÅÀ³æ¼¯Èº£¬ÓÃÓÚÅÀÈ¡ AJAX ÍøÕ¾µÄÄÚÈÝÒÔ¼°µÃµ½´øÓÐÊÓ¾õÐÅÏ¢µÄ
DOM Ê÷¡£ËûÃǽ« Firefox ½ø³Ì×ö³ÉÁË HTTP ´úÀíµÄÐÎʽ£¬¶ÔÍⲿӦÓÃÌṩ·þÎñ¡£

¶øÎÒÃÇµÄ List Hunter ¼¯ÈºÖÐµÄ Firefox ½ø³ÌÔòÊǸ߶È×ÔÖεÄÅÀ³æ£¬ËüÃÇ×Ô¼º´Ó OpenResty
Öв»¶ÏµØÅúÁ¿È¡ÈÎÎñÈ¥Íê³É¡£¶øÍⲿӦÓÃÔòÊÇÅúÁ¿µØÏò OpenResty µ¼ÈëÈÎÎñÀ´Èü¯ÈºÔËת¡£ÓÉÓÚ List Hunter ¼¯Èº²¢Ã»ÔõôÐÞ¸Ä
Firefox µÄÔ´´úÂ룬ÕâʹµÃÎÒÃÇ¿ÉÒÔºÜÈÝÒ×µØÓë¹Ù·½×îа汾±£³Öͬ²½£¬´Ó¶øµÚһʱÏíÊܵ½¹Ù·½ÓÅ»¯´øÀ´µÄÖÚ¶àºÃ´¦¡£

ͬʱ List Hunter ¼¯Èº±¾ÉíÊÇͨÓÃÄ¿µÄµÄ£¬Ëü¿ÉÒÔ×÷Ϊ¸÷ÖÖ Firefox ²å¼þµÄ"¼¯ÈºÈÝÆ÷"¡£»»ÑÔÖ®£¬ÕâÊÇÒ»ÖÖ½« Firefox
²å¼þ"¼¯Èº»¯"µÄÍêÕûµÄ¿ò¼Ü¡£

ÓÉÓÚ Firefox ²å¼þ¿ª·¢±¾ÉíÒѾ­Í¨¹ýÎÒ·¢²¼µ½ CPAN µÄ XUL::App ¿ò¼ÜµÃµ½Á˼«´óµÄ¼ò»¯£¬ËùÒÔÏìӦеÄÐèÇóµÄ³É±¾ÊǷdz£µÍµÄ¡£

=head1 ʹÓà Firefox µÄÀûÓë±×

=over

=item Óŵã

Firefox ÊÇÊÀ½ç¼¶µÄä¯ÀÀÆ÷¡£×÷Ϊ×ÔÓ¹¦ÄÜ×î·á¸»µÄ Internet ¿Í»§¶ËÖ®Ò»£¬ÎÒÃǽ«Ö®×÷ΪÅÀ³æ¿ÉÒÔÏíÊܵ½ºÍ×îÖÕÓû§Ò»ÑùµÄ·á¸»¹¦ÄÜ£¬ÎÞÂÛÊÇ
AJAX »¹ÊÇÊÓ¾õÐÅÏ¢¶¼²»ÊÇÎÊÌâ¡£

Firefox ÓлùÓÚ XUL ºÍ chrome JS µÄÁé»îµÄ²å¼þ»úÖÆ£¬¼«Ò×À©Õ¹¡£ÊÂʵÉÏ£¬Firefox Ö÷½çÃæ×ÔÉí¾ÍÊÇÒ»¸ö´ó²å¼þ¡£Í¬Ê±£¬Gecko
ÊÇ»ùÓÚ XPCOM ×é¼þ·½Ê½µÄ£¬Òò´Ë¿ÉÒÔºÜÈÝÒ×µØʹÓà C/C++/Java µÈÓïÑÔ¿ª·¢ XPCOM ×é¼þ£¬È»ºóÔÙÓà JavaSscript
°ÑËüÃÇÕ³ºÏÔÚÒ»Æð¡£ÓÚÊǺõ£¬JavaScript ³ÉΪÁËÏñ Perl Ò»ÑùµÄ½ºË®ÀàÓïÑÔ¡£

ÔËÐÐÓÚ Gecko Ö®ÉϵIJå¼þ JavaScript ÓµÓÐ×î¸ßȨÏÞ£¬ÕâÖÖ JS ¿ÉÒÔ·ÃÎÊ´ÅÅÌÎļþ£¬¿ÉÒÔ·ÃÎÊϵͳ»·¾³±äÁ¿£¬¿ÉÒÔʹÓÃÔ­ÉúµÄ
XmlHttpRequest ¶ÔÏó·¢³ö¿çÓò AJAX ÇëÇó¡£

Firefox µÄÐÔÄÜËæ×Åа汾µÄ·¢²¼×Ü»áÓÐÏ·¾çÐԵı仯¡£Firefox 3.1 ÖÐµÄ Gecko ÒýÇæµÄäÖȾËÙ¶È¾Í±È 3.0 ÖеĿìÁ˺ü¸±¶£¨¸ù¾Ý
List Hunter »Ø¹é²âÊÔ¼¯µÄ benchmark ½á¹û£¬Ç°ÕßΪƽ¾ù 60 ms£¬ºóÕßÔò³¤´ï 200+ ms£©¡££¨Firefox 3.1 ÖÐ
TraceMonkey µÄ JIT Ö§³Öµ¹²¢Ã»Óиø List Hunter ÖÐµÄ JS ´øÀ´¿É²âÁ¿µÄÐÔÄÜÌáÉý¡££©

´¿ JS дµÄ Firefox ²å¼þ¿ÉÒÔÔÚ Win32/Linux/Mac
¶àÖÖ²Ù×÷ϵͳÉϼ´×°¼´Óã¬ËùÒÔ·½±ãºÍ±à¼­¼°²úÆ·¾­Àí¹µÍ¨ÐÐΪϸ½Ú£¬·½±ãÑÝʾ¡£ÈçÈô¼ÆËã¹ýÓÚ¸´ÔÓ£¬Òà¿ÉʹÓà C++ ÓïÑÔ¸Äд²å¼þÖеļÆËãÃܼ¯µÄ²¿·Ö¡£

=item ȱµã

Firefox ÊǸßñîºÏµÄÈí¼þ£¬ÕâÓë Google Chrome ¼° Safari ä¯ÀÀÆ÷µÄºËÐÄ Webkit ÐγÉÁËÏÊÃ÷¶Ô±È¡£ÕâÒâζ×Å£¬ÎÒÃDZȽÏÄÑÓÚ¶Ô
Firefox ½øÐÐÉî²ã´ÎµÄ²Ã¼ô£¬ÎÞ·¨ÇáÒ×µØÃâ³ýһЩ±È½Ï´óµÄ¹¦Äܲ¿¼þ£¬Ò²ºÜÄѽ«ÆäÖеÄijһ¸ö´ó²¿¼þ°þ³öÀ´µ¥¶ÀʹÓ㨵±È»ÁË£¬SpiderMonkey
ÊÇÉÙÊý¼¸¸öÀýÍâÖ®Ò»£©¡£

=back

=head1 AUTHOR

ÕÂÒà´º (agentzh) C<< <agentzh at yahoo.cn> >>

=head1 LICENSE

Copyright (c) 2007-2008, Yahoo! China EEEE Works, Alibaba Inc. All rights
reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

=over

=item *

Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

=item *

Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

=item *

Neither the name of the Yahoo! China EEEE Works, Alibaba Inc. nor the names
of its contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

=back

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/china-pm/attachments/20081225/b5cca785/attachment-0001.html>


More information about the China-pm mailing list