<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>恐龙志 - evolve the web!</title>
        <link>http://www.w3cool.com/</link>
        <description>The Place where deploy our Ideas and Paranoeas!</description>
        <language>zh-cn</language>
        <copyright>Copyright 2010</copyright>
        <lastBuildDate>Tue, 06 Apr 2010 11:14:45 +0800</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>linux硬件监控-lm_sensors ！</title>
            <description><![CDATA[<p>今天一台兼容服务器发生死机问题，可能就是一年前的内存过热问题，苦于远程，又没有监控软件，于是找了一个lm_sensors 还不错：</p><p>安装lm_sensors<br />　　现在基本上每个Linux都已经有lm_sensors包了，我们主要安装了就可以了。或者我们也可以通过源文件来自己编译。</p><p>我是使用的源文件，官方网站下载的。</p><p>[root@localhost lm_sensors-3.1.2]# <span style="color: #ff0000"><b>make user</b><br /></span>Makefile:175: lib/data.ld: No such file or directory<br />Makefile:175: lib/general.ld: No such file or directory<br />Makefile:175: lib/error.ld: No such file or directory<br />Makefile:175: lib/access.ld: No such file or directory</p><p>......</p><p>[root@localhost lm_sensors-3.1.2]# <span style="color: #ff0000"><b>make user_install testing</b></span><br />mkdir -p /usr/local/lib /usr/local/include/sensors /usr/local/man/man3 /usr/local/man/man5<br />******************************************************************************<br />Warning: This is the first installation of the libsensors.so.4*<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; library files in /usr/local/lib!<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; You must update the library cache or the userspace tools may fail<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or have unpredictable results!</p><p>......</p><p>[root@localhost lm_sensors-3.1.2]# <span style="color: #ff0000">sensors-detect<br /></span># sensors-detect revision 5818 (2010-01-18 17:22:07 +0100)<br /># System: System manufacturer System Product Name<br /># Board: ASUSTek Computer Inc. DSBV-DX/SAS</p><p>This program will help you determine which kernel modules you need<br />to load to use lm_sensors most effectively. It is generally safe<br />and recommended to accept the default answers to all questions,<br />unless you know what you're doing.</p><p>Some south bridges, CPUs or memory controllers contain embedded sensors.<br />Do you want to scan for them? This is totally safe. (YES/no): Yes<br />Silicon Integrated Systems SIS5595...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No<br />VIA VT82C686 Integrated Sensors...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No<br />VIA VT8231 Integrated Sensors...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No<br />AMD K8 thermal sensors...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No<br />AMD Family 10h thermal sensors...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No<br />AMD Family 11h thermal sensors...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No<br />Intel Core family thermal sensor...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Success!</p><p>看的出来，支持探测器类型还是很全的。</p><p><font size="3"><font size="2">[root@localhost lm_sensors-3.1.2]# </font>lm_sensors start</font></p><div><font size="3">　　Starting lm_sensors: [ OK ]</font></div><div>&nbsp;</div><div><font size="3"><font size="2">[root@localhost lm_sensors-3.1.2]#</font> sensors<br />　　w83627hf-isa-0290<br />　　Adapter: ISA adapter</font></div><div><font size="3">　　VCore 1: +3.33 V (min = +0.00 V， max = +0.00 V) ALARM<br />　　VCore 2: +3.36 V (min = +0.00 V， max = +0.00 V) ALARM</font></div><div><font size="3">......</font></div><div><font size="3">名字不好认，可能要wf 比较好。<br /></font></div>]]></description>
            <link>http://www.w3cool.com/2010/04/06/linux-lm_sensors.html</link>
            <guid>http://www.w3cool.com/2010/04/06/linux-lm_sensors.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">linux</category>
            
            <pubDate>Tue, 06 Apr 2010 11:14:45 +0800</pubDate>
        </item>
        
        <item>
            <title>&quot;说说&quot;SaySo收费版本</title>
            <description><![CDATA[<p>关于很多用户希望获得更好服务的问题，在这里统一做回答，收费版本有单独的服务器组。</p>
<p>&nbsp;有两种方式：</p>
<p>一种方式是购买服务，即还是以嵌入代码的方式，即时提交及时合成，不排队，保证硬件及带宽，按<span style="color: #000080"><b>年</b></span>收费，按域名授权：</p>
<p>1、alexa排名100万外1500元 (每年)； <br />
2、alexa排名100万-50万以内的2500元 (每年)； <br />
3、alexa排名50万内50万以内的3500元 (每年)；<br />
4、alexa排名30万以内的4500 (每年)；<br />
5、alexa排名10万以内7500 (每年)；<br />
6、alexa排名5万以内9500 (每年)；<br />
7、alexa排名1万以内的高流量网单独洽谈。<br />
<b><span style="color: #ff0000">*</span></b><span style="color: #ff0000"> </span>1500元定制播放器。</p>
<p>二是购买软件，按CPU授权，需要打开CPUID功能。<br />
单机版本25000元/CPU(超线程及多核CPU按物理个数计算)，包3次安装，免费定制播放器一次。</p>
<p>如需要请联系销售代表： <span style="color: #ff0000; font-size: 18px"><b>QQ：909990866 Mail：<a href="mailto:909990866@qq.com">909990866@qq.com</a></b></span></p>
<p>&nbsp;</p>]]></description>
            <link>http://www.w3cool.com/2009/10/12/sayso_1.html</link>
            <guid>http://www.w3cool.com/2009/10/12/sayso_1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">说说|SaySo</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">项目|Projects</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">SaySo</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">说说</category>
            
            <pubDate>Mon, 12 Oct 2009 16:28:07 +0800</pubDate>
        </item>
        
        <item>
            <title>Linux命令备忘-sh</title>
            <description><![CDATA[<p>du的英文原义为&ldquo;disk usage&rdquo;，含义为显示磁盘空间的使用情况。&nbsp;</p><p>功能：统计目录（或文件）所占磁盘空间的大小。&nbsp;</p><p>语法：du [选项] [Names&hellip;]&nbsp;</p><p>说明：该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块（1024字节）的情况。若没有给出Names，则对当前目录进行统计。&nbsp;</p><p>该命令的各个选项含义如下：&nbsp;</p><p>-s 对每个Names参数只给出占用的数据块总数。<br />-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s，也不指定-a，则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。<br />-b 以字节为单位列出磁盘空间使用情况（系统缺省以k字节为单位）。&nbsp; <br />-k 以1024字节为单位列出磁盘空间使用情况。&nbsp; <br />-c 最后再加上一个总计（系统缺省设置）。&nbsp; <br />-l 计算所有的文件大小，对硬链接文件，则计算多次。&nbsp; <br />-x 跳过在不同文件系统上的目录不予统计。&nbsp;</p><p>下面举例说明du命令的使用：&nbsp;</p><p>　&nbsp;</p><p>例1：查看/mnt目录占用磁盘空间的情况。 $ cd /mnt $ ls -lFR total 10 -rwxrwxrwx 2 root root ll0 Ju1 3l 00:33 aa*&nbsp;</p><p>drwxr-xr-x 2 root root l024 Ju1 20 14:16 dev/<br />-rw-r--r-- 1 root root 6229 Aug 2 0l:39 s1ack<br />drwxrwxrwx 2 root root 1024 Aug 2 02:09 var/<br />1rwxrwxrwx 1 root root l0 Aug 2 0l:51 wei-&gt;/home/wei/</p><p>dev:&nbsp;</p><p>tota1 0&nbsp;</p><p>lrwxrwxrwx 1 root root 8 Ju1 20 l4:l6 cdrom-&gt;/dev/hdb&nbsp;</p><p>var:&nbsp;</p><p>tata1 37&nbsp;</p><p>-r-xr-xr-x l root root 36064 Aug 2 02:09 rawrite. exe*　&nbsp;</p><p>例2：列出各目录所占的磁盘空间，但不详细列出每个文件所占的空间。&nbsp;</p><p>$ du&nbsp;</p><p>l ./dev&nbsp;</p><p>38 ./var&nbsp;</p><p>48 .&nbsp;</p><p>输出清单中的第一列是以块为单位计的磁盘空间容量，第二列列出目录中使用这些空间的目录名称。&nbsp;</p><p>注意不带选项的du命令将从当前目录开始沿着目录结构向下工作直到列出所有目录的容量为止。这可能是一个很长的清单，有时只需要一个总数。这时可在du命令中加-s选项来取得总数：&nbsp;</p><p>$ du &ndash;s /mnt&nbsp;</p><p>/mnt&nbsp;</p><p>　&nbsp;</p><p>例3：列出所有文件和目录所占的空间（使用a选项），而且以字节为单位（使用b选项）来计算大小。&nbsp;</p><p>$ du -ab<br />8 ./dev/cdrom</p><p>l032 ./dev<br />36064 ./var/rawrite. exe<br />37088 ./var<br />6229 ./s1ack<br />1l0 ./aa<br />l0 ./wei&nbsp;</p><p>45493 .</p><p><br />du的英文原义为&ldquo;disk usage&rdquo;，含义为显示磁盘空间的使用情况。&nbsp;</p><p>功能：统计目录（或文件）所占磁盘空间的大小。&nbsp;</p><p>语法：du [选项] [Names&hellip;]&nbsp;</p><p>说明：该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块（1024字节）的情况。若没有给出Names，则对当前目录进行统计。&nbsp;</p><p>该命令的各个选项含义如下：&nbsp;</p><p>-s 对每个Names参数只给出占用的数据块总数。&nbsp; <br />-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s，也不指定-a，则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。&nbsp; <br />-b 以字节为单位列出磁盘空间使用情况（系统缺省以k字节为单位）。&nbsp; <br />-k 以1024字节为单位列出磁盘空间使用情况。&nbsp; <br />-c 最后再加上一个总计（系统缺省设置）。&nbsp; <br />-l 计算所有的文件大小，对硬链接文件，则计算多次。&nbsp; <br />-x 跳过在不同文件系统上的目录不予统计。&nbsp; <br />-h, --human-readable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print sizes in human readable format (e.g., 1K 234M 2G)<br />下面举例说明du命令的使用：&nbsp;</p><p>　&nbsp;</p><p>例1：查看/mnt目录占用磁盘空间的情况。 $ cd /mnt $ ls -lFR total 10 -rwxrwxrwx 2 root root ll0 Ju1 3l 00:33 aa*&nbsp;</p><p>drwxr-xr-x 2 root root l024 Ju1 20 14:16 dev/&nbsp; <br />-rw-r--r-- 1 root root 6229 Aug 2 0l:39 s1ack&nbsp; <br />wxrwx 2 root root 1024 Aug 2 02:09 var/&nbsp; <br />1rwxrwxrwx 1 root root l0 Aug 2 0l:51 wei-&gt;/home/wei/&nbsp;</p><p>dev:&nbsp; <br />tota1 0&nbsp; <br />lrwxrwxrwx 1 root root 8 Ju1 20 l4:l6 cdrom-&gt;/dev/hdb&nbsp;</p><p>var:&nbsp; <br />tata1 37&nbsp; <br />-r-xr-xr-x l root root 36064 Aug 2 02:09 rawrite. exe*&nbsp;</p><p>例2：列出各目录所占的磁盘空间，但不详细列出每个文件所占的空间。&nbsp;</p><p>$ du<br />l ./dev<br />38 ./var<br />48 .&nbsp;</p><p>输出清单中的第一列是以块为单位计的磁盘空间容量，第二列列出目录中使用这些空间的目录名称。&nbsp;</p><p>注意不带选项的du命令将从当前目录开始沿着目录结构向下工作直到列出所有目录的容量为止。这可能是一个很长的清单，有时只需要一个总数。这时可在du命令中加-s选项来取得总数：&nbsp;</p><p>$ du &ndash;s /mnt<br />/mnt&nbsp;</p><p>例3：列出所有文件和目录所占的空间（使用a选项），而且以字节为单位（使用b选项）来计算大小。&nbsp;</p><p>$ du -ab&nbsp;</p><p>8 ./dev/cdrom&nbsp;</p><p>l032 ./dev<br />36064 ./var/rawrite. exe<br />37088 ./var<br />6229 ./s1ack<br />1l0 ./aa<br />l0 ./wei&nbsp;</p><p>&nbsp;</p>]]></description>
            <link>http://www.w3cool.com/2009/10/07/linux-sh.html</link>
            <guid>http://www.w3cool.com/2009/10/07/linux-sh.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Linux/UNIX/BSD</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">系统|System</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">linux</category>
            
            <pubDate>Wed, 07 Oct 2009 21:55:00 +0800</pubDate>
        </item>
        
        <item>
            <title>关于&quot;童心&quot;</title>
            <description><![CDATA[<p>在古登堡计划的网站上发现一本书, 吕坤的《呻吟语》，一本很有意思的书，读文言文的书感觉很复杂，内容其实极其丰富，但言语精炼，篇幅短，读懂读透难，就像吃小锤牛肉，急难下咽，但是却是一种无法抗拒的原始清冽的香醇。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;突然发现一句很有意思的话:</p><p>動時只見發揮不盡，那裡覺錯？故君子主靜而慎動。主靜，則動者靜之枝葉也；慎<br />動，則動者靜之約束也。又何過焉？</p><p><span style="color: #ff0000">　　童心最是作人一大病，只脫了童心，便是大人君子。或問之，曰：「凡炎熱念、驕<br />矜念、華美念、欲速念、浮薄念、聲名念，皆童心也。」</span></p><p>　　吾輩終日念頭離不了四個字，曰「得失毀譽」。其為善也，先動個得與譽底念頭；<br />其不敢為惡也，先動個失與毀底念頭。總是欲心偽心，與聖人天地懸隔。聖人發出善念<br />，如饑者之必食，渴者之必飲。其必不為不善，如烈火之不入，深淵之不投，任其自然<br />而已。賢人念頭只認個可否，理所當為........</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 童心居然做如此解释：趋炎附势、骄傲矜夸、侈华、浮躁、浅薄、虚荣。但仔细想来，这不就是未受教导的童心想法，和小伙伴拉帮结派，谈论父母，攀比，可见夫子说的并不为过，儿童之心不经教导便是如此，儿童出生伊始，未经教化，自然如动物般，自然有这些兽心。但是经父母授之于文明，教之于经典，言传身教使儿童懂道理，明大义，而后&ldquo;<font color="#ff0000">便是大人君子</font>&rdquo;。这也许就是人区别于动物的根本原因。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如今这些词被犬儒主义者们演绎成&ldquo;成熟&rdquo;，与其说是人心不古，倒不如说是童心不古，想起《动物庄园》里的一句话： 我看了半天，也不知道谁是猪，谁是人.......</p><p>《呻吟语》附上（<a href="http://www.w3cool.com/2009/09/26/25558-0.txt">25558-0.txt</a>），希望与知音共勉</p>]]></description>
            <link>http://www.w3cool.com/2009/09/26/post_17.html</link>
            <guid>http://www.w3cool.com/2009/09/26/post_17.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">随笔|Essay</category>
            
            
            <pubDate>Sat, 26 Sep 2009 20:30:33 +0800</pubDate>
        </item>
        
        <item>
            <title>OpenX统计报表的乱码问题</title>
            <description><![CDATA[<p>我使用的版本是<strong>openx-2.8.1</strong>。在导出excel表格时遇到乱码，原来其实很简单,就是php字符串编码问题，iconv一下就行：</p><p>1、文件名：lib/pear/Spreadsheet/Excel/Writer.php文件的function send($filename)函数，第67行加上$filename = iconv(&quot;utf-8&quot;, &quot;gb2312&quot;, $filename);文件名由<font color="#ff0000">xxxxxxxx.</font><font color="#000000">变成</font><font color="#ff0000">广告分析报告&nbsp;xxx&nbsp;From Beginning 到 27-03-2009.xls。</font></p><p><font color="#000000">2、excel文件内容：lib/pear/Spreadsheet/Excel/Writer/Worksheet.php文件的Writerfunction write($row, $col, $token, $format = 0)函数，第1166行替换为</font><font color="#ff0000">return $this-&gt;writeString($row, $col, iconv(&quot;utf-8&quot;, &quot;gb2312&quot;, $token), $format);</font></p><p><font color="#000000">3、工作表名称：lib/pear/Spreadsheet/Excel/Writer/Workbook.php文件的function &amp;addWorksheet($name = '')函数，第318行加上</font><font color="#ff0000">$name = iconv(&quot;utf-8&quot;, &quot;gb2312&quot;, $name);</font></p>]]></description>
            <link>http://www.w3cool.com/2009/09/24/openx.html</link>
            <guid>http://www.w3cool.com/2009/09/24/openx.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CGI/PHP/Perl</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">编程|Coding</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">广告 php</category>
            
            <pubDate>Thu, 24 Sep 2009 16:30:19 +0800</pubDate>
        </item>
        
        <item>
            <title>关于SElinux和mysql</title>
            <description><![CDATA[<p>一直不太喜欢SElinux,但是他确实能让系统更安全，今天安装mysql，以前修改配置就要禁用Selinux,这次准备尝试配置而不是简单禁用。</p><p>发现label和namespace配置确实复杂，仔细读man,发现一个简单的工具：</p><p>setsebool -P mysqld_disable_trans=1</p><p>就可以，实际就是对mysql禁用mysql,大家可以看这里<a href="http://linux.die.net/man/8/setsebool">http://linux.die.net/man/8/setsebool</a></p><p>&nbsp;</p>]]></description>
            <link>http://www.w3cool.com/2009/07/31/selinuxmysql.html</link>
            <guid>http://www.w3cool.com/2009/07/31/selinuxmysql.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Linux/UNIX/BSD</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">MySQL</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">数据库|DataBase</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">系统|System</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">linux</category>
            
            <pubDate>Fri, 31 Jul 2009 22:12:34 +0800</pubDate>
        </item>
        
        <item>
            <title>&quot;马克思&quot;对经济危机的精确预言</title>
            <description><![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://www.w3cool.com\assets_c\2009\05\karl_marx.html','popup','width=480,height=563,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://www.w3cool.com\assets_c\2009\05\karl_marx.html"><img width="180" height="211" alt="karl_marx.jpg" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" src="http://www.w3cool.com/assets_c/2009/05/karl_marx-thumb-180x211.jpg" /></a></span><p>&quot;Owners&nbsp; of&nbsp; capital&nbsp; will&nbsp; stimulate&nbsp; the&nbsp; working&nbsp; class&nbsp; to&nbsp; buy&nbsp; more&nbsp; and&nbsp; more&nbsp; of&nbsp; expensive&nbsp; goods,&nbsp; houses&nbsp; and&nbsp; technology,&nbsp; pushing&nbsp; them&nbsp; to&nbsp; take&nbsp; more&nbsp; and&nbsp; more&nbsp; expensive&nbsp; credits,&nbsp; until&nbsp; their&nbsp; debt&nbsp; becomes&nbsp; unbearable.&nbsp; The&nbsp; unpaid&nbsp; debt&nbsp; will&nbsp; lead&nbsp; to&nbsp; bankruptcy&nbsp; of&nbsp; banks,&nbsp; which&nbsp; will&nbsp; have&nbsp; to&nbsp; be&nbsp; nationalised&nbsp; and&nbsp; the&nbsp; State&nbsp; will&nbsp; have&nbsp; to&nbsp; take&nbsp; the&nbsp; road&nbsp; which&nbsp; will&nbsp; eventually&nbsp; lead&nbsp; to&nbsp; Communism.&quot;&nbsp; <br />Karl&nbsp; Marx&nbsp; Das&nbsp; Kapital&nbsp; 1867&nbsp;</p><p>&nbsp;&ldquo;资本家希望工人阶级大量借贷消费越来越贵的商品、房屋和新技术享用，这将促使他们背负越来越大的债务，直到这些债务大到所有银行破产，政府将私有银行进行国有化，从而最终走向共产主义之路。&rdquo;卡尔马克思，《资本论》1867年。</p><p>是目前很流行的一句话，但是恐龙我自幼通读《资本论》，<span style="color: rgb(255, 0, 0); ">根本没有发现这句话</span>。很是诡异，经过一番鉴定后，原来是奥巴马就职时一个示威的老太太的给奥巴马的小纸条。流言澄清，本次马克思事件说明个真理，第一大家对经济危机真的很恼火，虽然还被称为金融风暴。第二真理是发自人民需要的，人民需要老马同志站出来，发个言，老马就站出来。很好很好，这两点都是值得庆贺的。</p><p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a onclick="window.open('http://www.w3cool.com\assets_c\2009\05\2873634346_ae80b5298f_b.html','popup','width=682,height=1024,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://www.w3cool.com\assets_c\2009\05\2873634346_ae80b5298f_b.html"><img width="682" height="1024" alt="2873634346_ae80b5298f_b.jpg" class="mt-image-none" style="" src="http://www.w3cool.com/assets_c/2009/05/2873634346_ae80b5298f_b-thumb-682x1024.jpg" /></a></span></p><p>马公千古。</p>]]></description>
            <link>http://www.w3cool.com/2009/03/04/post_16.html</link>
            <guid>http://www.w3cool.com/2009/03/04/post_16.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">随笔|Essay</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">马克思</category>
            
            <pubDate>Wed, 04 Mar 2009 16:19:28 +0800</pubDate>
        </item>
        
        <item>
            <title>关于LINQ，SqlDataReader， DataSet 以及LINQ Compiled Queries的性能对比</title>
            <description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 开发web程序，性能为王，web应用就是要使用最简单的方法，最廉价的应用实现密集的计算，最近在用asp.net mvc写一个帖吧程序，喜欢mvc的不是为了别的，URL比较好看，终于可以像struts一样实现： <span style="color: #ff0000"><b>http://doamin/board-11-page-1-0</b></span>&nbsp;这样比较漂亮的URL了。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 遇到Linq,一直都对这样东西不以为然，当年就及其唾弃hibernate这样的架构，可能开发一般的企业应用可能比较适合，但是肯定不适合web,还不如用JDBC+类似JCS的key value缓存，主要是为了满足部分知识面窄的程序员搭车的需要。不过遇到了Linq不得不研究一下，因为不调查就没有发言权，试着做了几个demo，发现比asp.net MVC还是好很多的，写model比较顺手，Controller的编写也比较符合个人喜好。Html.Action和Struts里很像，很神奇的是URL的匹配模式可以自动转换，让匹配不到RouteMap规则的时候会自动变成?board=11&amp;page=1，这个喜欢。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用.net的原应就是.net的运行效率高java太多，一台windows的承受负荷比linux+jsp要高很多，在上一篇文章《.<a href="http://www.w3cool.com/2008/08/29/net.html">net的运行效率问题</a>》讨论过。当然开发团队的素质还是决定性的，再好的架构都可能被写成焦油坑式的程序。看到一篇文章，对linq等几种数据访问的性能进行了对比:</p><p><a href="http://www.devtoolshed.com/node/12">Performance benchmarks for LINQ vs. SqlDataReader, DataSet - LINQ Compiled Queries: Part 2</a></p><p>我们这里只看数据，争论没用，用benchmark说话：</p><pre>
******************************<br />Run : 1<br />SQL Data Reader: 1,582 ms<br />LINQ to SQL: 6,045 ms<br />Strongly Typed DataSet: 2,785 ms<br />LINQ to SQL Compiled: 2,472 ms<br />&nbsp;<br />******************************<br />Run : 2<br /><br />SQL Data Reader: 1,556 ms<br />LINQ to SQL: 5,855 ms<br />Strongly Typed DataSet: 2,696 ms<br />LINQ to SQL Compiled: 2,432 ms<br />&nbsp;<br />******************************<br />Run : 3<br /><br />SQL Data Reader: 1,553 ms<br />LINQ to SQL: 5,859 ms<br />Strongly Typed DataSet: 2,730 ms<br />LINQ to SQL Compiled: 2,418 ms<br />&nbsp;<br />-------------------------------------------------------------------<br />Data Access Type&nbsp;&nbsp;&nbsp; Run 1&nbsp;&nbsp;&nbsp; Run 2&nbsp;&nbsp;&nbsp; Run 3&nbsp;&nbsp;&nbsp; Average<br /><br />SQL Data Reader&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1,582&nbsp;&nbsp;&nbsp; 1,556&nbsp;&nbsp;&nbsp; 1,553&nbsp;&nbsp;&nbsp; 1,563<br />LINQ to SQL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6,045&nbsp;&nbsp;&nbsp; 5,855&nbsp;&nbsp;&nbsp; 5,859&nbsp;&nbsp;&nbsp; 5,919<br />Strongly Typed DataSet&nbsp;&nbsp;&nbsp; 2,785&nbsp;&nbsp;&nbsp; 2,696&nbsp;&nbsp;&nbsp; 2,730&nbsp;&nbsp;&nbsp; 2,737<br />LINQ to SQL Compiled&nbsp;&nbsp;&nbsp; 2,472&nbsp;&nbsp;&nbsp; 2,432&nbsp;&nbsp;&nbsp; 2,418&nbsp;&nbsp;&nbsp; 2,440<br />&nbsp;<br />-------------------------------------------------------------------<br />SQL Data Reader Breakdown<br /><br />378.69% faster than LINQ to SQL<br />175.11% faster than Strongly Typed DataSet<br />156.11% faster than LINQ to SQL Compiled<br />&nbsp;<br />-------------------------------------------------------------------<br />LINQ to SQL Breakdown<br />378.69% slower than SQL Data Reader<br />216.26% slower than Strongly Typed DataSet<br />242.58% slower than LINQ to SQL Compiled<br />&nbsp;<br />-------------------------------------------------------------------<br />Strongly Typed DataSet Breakdown<br />175.11% slower than SQL Data Reader<br />216.26% faster than LINQ to SQL<br />112.17% slower than LINQ to SQL Compiled<br />&nbsp;<br />-------------------------------------------------------------------<br />LINQ to SQL Compiled Breakdown<br />156.11% slower than SQL Data Reader<br />242.58% faster than LINQ to SQL<br />112.17% faster than Strongly Typed DataSet<br /></pre><p>比较起来，Data Reader还是最高效的，DataSet次之， LINQ to SQL Compiled还行，LINQ就不要用了。</p><p>再次证明了程序越干净越好。</p>]]></description>
            <link>http://www.w3cool.com/2009/02/09/linqsqldatareader_dataset_linq_compiled_queries.html</link>
            <guid>http://www.w3cool.com/2009/02/09/linqsqldatareader_dataset_linq_compiled_queries.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">开发日志|Log</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">asp.net</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">C#</category>
            
            <pubDate>Mon, 09 Feb 2009 05:18:36 +0800</pubDate>
        </item>
        
        <item>
            <title>Linux命令备忘-in cp mv rm</title>
            <description><![CDATA[<p><b>ln 命令</b><br />用途：链接文件<br />语法：将某个文件链接到一个文件上<br />ln [ -f | -n] [ -s ] SourceFile [ TargetFile ]<br />将一个或多个文件链接到一个目录上<br />ln [ -f | -n] [ -s ] SourceFile ... TargetDirectory<br />描述：<br />ln 命令将在 SourceFile 参数中指定地文件链接到在 TargetFile 参数中指定地文件，或将其链接到在 TargetDirectory 参数中指定地另一个目录中地文件。在缺省情况下，ln 命令会创建硬链接。如果需要运用 ln 命令来创建符号链接，请指明 -s 标志。<br />符号链接是指向文件地一个间接指针；它地目录项中包含了它所链接地文件名。符号链接可能会跨越文件系统，可能指向目录。<br />&nbsp;标志<br />-f 促使 ln 命令替换掉任何已经存在地目地路径。如果目地路径已经存在，而没有指定 -f 标志，ln 命令不会创建新地链接，而是向标准错误写一条诊断消息并继续链接剩下地 SourceFiles。 <br />-n 指定，如果链接是一个现有地文件，那么不要覆盖文件地内容。 -f 标志重设了这个标志。这是缺省地行为。 <br />-s 促使 ln 命令创建符号链接。符号链接中包含了它所链接地文件地名字。当对链接执行打开操作地时候，会运用到引用文件。对符号链接地 stat 调用会返回链接地目标文件；必须完成lstat 调用来获取链接地信息。可以运用 readlink 调用来读取符号链接地内容。符号链接可能跨越文件系统，指向目录。 <br />注意：当为 -s 标志指定 SourceFile 参数地时候，必须运用绝对路径。如果没有指明绝对路径，那么当 SourceFile 和 TargetFile 参数位于不同地目录中地时候，可能会发生意外地结果。在创建符号链接原先，不需要存在源文件。 <br /><br />退出状态<br />此命令返回以下地退出值：<br />0 所有指定地文件都成功链接上了。 <br />&gt;0 出现一次错误。&nbsp;</p><p><b>cp 命令</b><br />使用权限：所有使用者 <br />使用方式： <br />cp [options] source dest <br />cp [options] source... directory <br />说明：将一个档案拷贝至另一档案，或将数个档案拷贝至另一目录。 <br />把计 <br />-a 尽可能将档案状态、权限等资料都照原状予以复制。 <br />-r 若 source 中含有目录名，则将目录下之档案亦皆依序拷贝至目的地。 <br />-f 若目的地已经有相同档名的档案存在，则在复制前先予以删除再行复制。 <br />范例： <br />将档案 aaa 复制(已存在)，并命名为 bbb : <br />cp aaa bbb <br />将所有的C语言程式拷贝至 Finished 子目录中 : <br />cp *.c Finished<br /><br />&nbsp;</p>]]></description>
            <link>http://www.w3cool.com/2008/12/27/linux-cheatsheet.html</link>
            <guid>http://www.w3cool.com/2008/12/27/linux-cheatsheet.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Linux/UNIX/BSD</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">系统|System</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">linux</category>
            
            <pubDate>Sat, 27 Dec 2008 00:36:46 +0800</pubDate>
        </item>
        
        <item>
            <title>ASP.NET MVC的WebSite模式（with mvc membership）</title>
            <description><![CDATA[<p>&nbsp;&nbsp; 一直极其讨厌web application,感觉不干净，不符合个人喜好完美纯净的代码的癖好，再加上不是单页程序集，性能也大打折扣。所以这次在决定用asp.net MVC写这个网站的时候花了一点时间移到Web site模式下面来。</p><p>&nbsp;&nbsp;&nbsp;&nbsp; 其实不是很麻烦，修改Web Site的web.config文件，在&lt;httpHandlers&gt;处添加MvcHttpHandler，在&lt;httpModules&gt;处添加UrlRoutingModule。IIS7可以配置一下WebServer，和web application模式下的webconfig一样。所有的CodeBehind都修改为CodeFile，Global.asax要删除重建一下，因为web site网站模式下结构并不一样，把原来那个RegisterRoutes方法拷贝进去即可。然后拷贝Content和Views两个文件夹复制到Web Site的根目录下，把Controllers和Models两个文件夹复制到Web Site的App_code文件夹下。或者另外再建一个工程也可以。</p><p>&nbsp;&nbsp;&nbsp;&nbsp; 然后就是集成了一下codeplex上的asp.net mvc membership. 有了一个简单的用户管理界面，管理员用户asministrator 密码<b>n2!1jLR8bL]{1:&nbsp; </b><b>。</b></p><p><b><img class="mt-image-center" style="display: block; margin: 0px auto 20px; text-align: center" height="527" alt="aaaaa.jpg" width="815" src="http://www.w3cool.com/2008/12/05/aaaaa.jpg" /></b></p><p><b>&nbsp;&nbsp;&nbsp; 下载这个压缩文件，添加到你的解决方案即可。</b></p><p><a href="http://www.w3cool.com/2008/12/05/mvcmenbership.website.www.rar">mvcmenbership.website.www.rar</a>&nbsp;&nbsp;<br />&nbsp;</p>]]></description>
            <link>http://www.w3cool.com/2008/12/05/aspnet_mvcwebsitewith_mvc_membership.html</link>
            <guid>http://www.w3cool.com/2008/12/05/aspnet_mvcwebsitewith_mvc_membership.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">.Net Framework</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">编程|Coding</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">asp.net</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">membership</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">mvc</category>
            
            <pubDate>Fri, 05 Dec 2008 21:04:46 +0800</pubDate>
        </item>
        
        <item>
            <title>一种新的制作面条的方法(非煮食)</title>
            <description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>原料</b>：挂面，番茄，大蒜，香肠</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先加油，烧至7成热，大蒜和香肠爆香，番茄切块下锅，翻炒，将番茄炒至糊状，改小火。加挂面，也就是这样:</p><p><a href="http://www.w3cool.com/WindowsLiveWriter/30b8c49f75ee_223A/09092008122_2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="396" alt="09092008122" width="527" border="0" src="http://www.w3cool.com/WindowsLiveWriter/30b8c49f75ee_223A/09092008122_thumb.jpg" /></a></p><p>小火焖煮10分钟，注意，一滴水也不要加，将面和下面的酱汁一起炒一下起锅。这样节约煤气，省水，省时，味道非常好，接近意大利面。</p><p>经同事建议，起名为：</p><h4><span style="color: #ff0000">番茄闷烧面</span></h4>]]></description>
            <link>http://www.w3cool.com/2008/09/12/noodle.html</link>
            <guid>http://www.w3cool.com/2008/09/12/noodle.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">随笔|Essay</category>
            
            
            <pubDate>Fri, 12 Sep 2008 02:01:28 +0800</pubDate>
        </item>
        
        <item>
            <title>一种更高效率的ISAPI整合IIS与Tomcat_JSP的方式(非jk)</title>
            <description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天发现一种极好的整合IIS和JSP的方法，毫无疑问java在windows下运行比在linux运行效率要高(大约4%)，同比IIS比Apache的IO能力强，在不考虑了lisence的问题下，笔者一直在考虑在windows下部署java的生产环境，尽管笔者的很大程度的工作是管理的维护linux服务器，但是发现很多时候windows还是最好的选择，当然是在得到一样优秀的维护和管理的前提下，一直以来很头疼的就是Tomcat和IIS的整合，在windows下肯定不会考虑使用apache，apache在windows下的表现太差了。笔者使用了2个月时间仔细研读和修改apache 2.29版的windows版源代码(哈哈，不专业了apache的源代码是可移植C++不分版本)试图优化apache的IO。 最终不得不放弃，Apache的构架上不如IIS,在windows上表现始终不如意，所以还是考虑用IIS整合tomcat.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IIS整合Tomcat的传统方式是JK,通过8009端口做代理，这样做缺点很多，当然优点也很多，优点我就不说了。这样的缺点是实际上要socket一次，笔者认为除非在一台IIS+多个Tomcat，或者IIS和tomcat不在一台服务器上时才有必要使用。在大多数情况，也就是IIS和Tomcat在同一台服务器上时，完全可以用一种高效的办法.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 答案其实就是asp.net里的ihttphandle, 使用asp.net的ISAPI handle劫持要转发的页面（图方便，有达人直接写一个C++的ISAPI也行，.net基于jit效率也没得说），<strong>直接把他rewrite到8080端口上，</strong>也就是实际上IIS和Tomcat没有任何通信。图片、js、html全部IIS处理，这个小程序只处理URL。也就是我写的这个JSP ihttphandle直接取tomcat 的response 作为IIS的response。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下载 <a href="http://www.w3cool.com/upload/JSP_iHttpHandle.rar">JSP_iHttpHandle.dll</a> (.net 3.5)&nbsp; 拷贝到站点的bin目录。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 修改web.config添加：</p><p>&lt;!-- JSP ihttpHandle 配置 --&gt; <br /><span style="background-color: #c0c0c0"><span style="color: #003300">&lt;add path=&quot;*.jsp&quot; verb=&quot;GET,POST&quot; type=&quot;<strong>com.w3cool.web.jsp.TomcatRequestHandler</strong>&quot; /&gt; <br />&lt;add path=&quot;*.xhtml&quot; verb=&quot;GET,POST&quot; type=&quot;<strong>com.w3cool.web.jsp.TomcatRequestHandler</strong>&quot; /&gt; <br />&lt;add path=&quot;/servlet/*&quot; verb=&quot;GET,POST&quot; type=&quot;<strong>com.w3cool.web.jsp.TomcatRequestHandler</strong>&quot; /&gt; <br /></span></span>&lt;!-- JSP ihttpHandle 配置 --&gt;</p><p>然后在 站点属性&nbsp; -&gt; &quot;home directory&quot; -&gt;Configuration -&gt;</p><p>把.jsp .xhtml你要tomcat处理的内容加在aspnet_isapi.dll上，当然也可以图方便设定一个WildCard</p><p><a href="http://www.w3cool.com/WindowsLiveWriter/ISAPIIISJSPjk_1624/j1_2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="440" alt="j1" width="425" border="0" src="http://www.w3cool.com/WindowsLiveWriter/ISAPIIISJSPjk_1624/j1_thumb.jpg" /></a></p><p>好了。现在就可以看看效果</p>]]></description>
            <link>http://www.w3cool.com/2008/09/09/isapi_iis_jsp_jk_tomcat.html</link>
            <guid>http://www.w3cool.com/2008/09/09/isapi_iis_jsp_jk_tomcat.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">.Net Framework</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Java/JSP</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">系统|System</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">项目|Projects</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">iis</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">java</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">jk</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">tomcat</category>
            
            <pubDate>Tue, 09 Sep 2008 17:34:06 +0800</pubDate>
        </item>
        
        <item>
            <title>Shell简单的按键操作(转自IBM网站)</title>
            <description><![CDATA[<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 用户与计算机交互的方式在不断发生变化。启动后提供纯命令行界面的操作系统已逐渐演化为图形化前端。然而，脱离构成操作系统的构建块有时并非是迈向正确方向的必要步骤。向图形化用户界面 (GUI) 过渡往往意味着损失功能；而且，用户渐渐倾向于不愿详细了解他们所使用的计算机。幸运的是，与其他 UNIX&#174; 和 Linux&#174; 系统类似，AIX 操作系统一直把握着重点：计算机操作系统的稳定性、功能和稳健性。</p>  <p>&#160;&#160;&#160;&#160;&#160;&#160; 大量 UNIX 和 Linux 供应商已充分认识到操作系统的 CLI 的重要性。但是，出于自动化、降低用户使用计算机的难度或其他原因，用户已忘记或从未了解 CLI 的细节。本文向新用户和已经遗忘细节的用户介绍 CLI，以帮助他们记住或回想起 CLI 对于管理、开发和常规 UNIX 计算之所以重要的原因。 </p>  <p><a name="whatis">什么是命令行？</a></p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 在计算机上工作时，了解实际使用的工具非常重要。如果您曾经使用过 UNIX 或 Linux，那么您应该听说过术语 <i>shell</i> 或 <i>命令行</i>。这两个术语可以作为同义词使用，并且指的是用户正在运行的实际 UNIX shell。UNIX 中的术语 <i>shell</i> 指的是您在键入命令或执行功能时所使用的接口。 </p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 当用户通过控制台或网络登录 UNIX 系统时，将调用可定义 shell（位于 /etc/passwd），并通过配置文件设置用户环境（本文稍后将进行说明），于是用户准备好在 shell 中执行操作。当用户在命令行（即用户正在使用的 shell）中键入命令时，用户只能看到 <i>stdin</i>（即标准输入），这是用户或程序提供的输入。当用户按 <b>Enter</b> 或 <b>Return</b> 键时，通过 shell 发送 stdin 以执行命令，然后用户可能收到 <i>stdout</i>（即标准输出）和 <i>stderr</i>（即标准错误），具体取决于输出重定向的方式（例如，重定向到用户的显示器、文件或打印机）。术语 <i>stdout</i> 表示执行的程序所返回的输出数据，而 <i>stderr</i> 指的是程序遇到或返回的错误。用户不会看到处理单个或多个命令的所有底层代码的执行情况，而是看到非常简单化的输入、输出和错误。由于上述原因，用户登录时调用的程序被恰当地称为 <i>shell</i>，因为它隐藏了操作系统的所有底层调用。 </p> ]]></description>
            <link>http://www.w3cool.com/2008/09/02/shellibm.html</link>
            <guid>http://www.w3cool.com/2008/09/02/shellibm.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">系统|System</category>
            
            
            <pubDate>Tue, 02 Sep 2008 11:44:53 +0800</pubDate>
        </item>
        
        <item>
            <title>.Net的运行效率问题</title>
            <description><![CDATA[<p>&#160;&#160;&#160;&#160;&#160;&#160; CLR只执行本机的机器代码。有两种方式产生本机的机器代码：实时编译（JIT）和预编译方式（产生native image）。详细了解了JIT,基本上每个人都知道的是，所有.Net语言都将被编译成为一个叫做IL汇编的中间语言。但是计算机是如何执行这个中间代码的，却是很多人不知道，甚至理解错误了的。</p>  <table cellspacing="0" cellpadding="0" width="699" border="0"><tbody>     <tr>       <td valign="top" width="146"><img src="http://msdn.microsoft.com/msdnmag/issues/05/04/NGen/fig01.gif" /></td>        <td valign="top" width="551">         <p>&#160;&#160;&#160;&#160;&#160;&#160; JIT是.NET程序运行的重要部件之一，全称是即时编译器。我刚才说的误解，就是很多人（绝对不是少数，问了很多c++程序员，10个有9个这种想法）都以为JIT其实就是跟JVM差不多的东西，是一个Interpreter，在运行时读取IL汇编代码，然后模拟成x86代码（也就是俗称的虚拟机）。但是事实上，.NET使用的是更为高级的技术。 .Net程序被加载入内存以后，当某段IL代码被第一次运行的时候，JIT编译器就会将这段IL代码，全部编译成本地代码，然后再执行。这也就是为什么.NET程序第一次运行都启动很慢的原因！ 随.NET库，微软还附带了一个工具，可以事先将.NET程序所有的IL代码都编译成本地代码并保存在缓存区中，这样一来，这个程序就跟c++编译的一模一样了，没有任何区别，运行时也可以脱离JIT了（这里不要混淆了，这里不是说可以脱离.NET库，而是说不需要在进行即时编译这个过程了）。所以，.NET和Java运行效率还是有些区别的，当然在执行高IO实时程序时也许仍然不如C++，因为还有在.net framework里面的appDomain的限制。 </p>          <p>&#160;&#160;&#160;&#160;&#160;&#160; Java JIT也曾经是Borland的亮点，.net的JIT想法极有可能就来自Borland，但是在架构了由于不用考虑平台的问题大大优于.net.</p>          <p>&#160;&#160;&#160;&#160;&#160;&#160; 所以在编译系统中，笔者的主张还是&quot;<strong>原生才是硬道理</strong>&quot;。</p>       </td>     </tr>   </tbody></table>]]></description>
            <link>http://www.w3cool.com/2008/08/29/net.html</link>
            <guid>http://www.w3cool.com/2008/08/29/net.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">.Net Framework</category>
            
            
            <pubDate>Fri, 29 Aug 2008 22:03:33 +0800</pubDate>
        </item>
        
        <item>
            <title>开源媒体播放器对比</title>
            <description><![CDATA[<p>在土鳖上看到这段视频，原来google player是基于VLC的.....</p>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/wL27nUjWOb4&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/wL27nUjWOb4&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>]]></description>
            <link>http://www.w3cool.com/2008/08/20/post_15.html</link>
            <guid>http://www.w3cool.com/2008/08/20/post_15.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">系统|System</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">google</category>
            
            <pubDate>Wed, 20 Aug 2008 07:57:20 +0800</pubDate>
        </item>
        
    </channel>
</rss>
