<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>纯爷们的小生活</title>
	<atom:link href="http://chunyemen.org/feed" rel="self" type="application/rss+xml" />
	<link>http://chunyemen.org</link>
	<description>下一个奇迹</description>
	<lastBuildDate>Fri, 20 Jan 2012 17:34:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>2012的愿望</title>
		<link>http://chunyemen.org/archives/627</link>
		<comments>http://chunyemen.org/archives/627#comments</comments>
		<pubDate>Fri, 20 Jan 2012 17:34:17 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[脑子里什么在转悠]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[新年计划]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=627</guid>
		<description><![CDATA[不管这是不是世界末日，该咋活就得咋活不是么？ 之前的几年每年都会写一个“拜拜20xx”的博客来给旧的一年划上句号，从今年开始，也在每年年初写下一些愿望，希望写“拜拜2012”的时候，以下都能够地都实现。 家人平安快乐，包括某猪 工作上能够承担更大的事情，把现在的事情做好，做大 努力学习电吉他，要脱离当前弱到爆的水平 回趟天津，而且得是上半年，不然真就见不到人了 最后的，也是最难的，希望年底地时候能够毫不犹豫地说出”what can make me CRAZY?”这个问题的答案 2012，哥来了！ p.s. 原文地址：http://chunyemen.org/archives/627， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>不管这是不是世界末日，该咋活就得咋活不是么？</p>
<p>之前的几年每年都会写一个“拜拜20xx”的博客来给旧的一年划上句号，从今年开始，也在每年年初写下一些愿望，希望写“拜拜2012”的时候，以下都能够地都实现。</p>
<blockquote>
<ol>
<li>家人平安快乐，包括某猪</li>
<li>工作上能够承担更大的事情，把现在的事情做好，做大</li>
<li>努力学习电吉他，要脱离当前弱到爆的水平</li>
<li>回趟天津，而且得是上半年，不然真就见不到人了</li>
<li>最后的，也是最难的，希望年底地时候能够毫不犹豫地说出”what can make me CRAZY?”这个问题的答案</li>
</ol>
</blockquote>
<p>2012，哥来了！</p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/627">http://chunyemen.org/archives/627</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/627/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>拜拜2011</title>
		<link>http://chunyemen.org/archives/619</link>
		<comments>http://chunyemen.org/archives/619#comments</comments>
		<pubDate>Sun, 01 Jan 2012 17:24:15 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[脑子里什么在转悠]]></category>
		<category><![CDATA[总结]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=619</guid>
		<description><![CDATA[每年都有这么一篇，逃不掉的&#8230; 1月 那时还住在长江西苑，元旦三天啥也没干，就把《三体3》看完了。按照一位同学的建议，听梁静茹的《情歌》把宇宙二维化的那段重新看了一遍，不得不哭啊！ 在维护那坨java的web代码，感觉java太痛苦了，很想回终端下写c++。 杭州继续大雪，觉得走路上班都烦 过年回家，边看春晚边在校内上吐槽 2月 过年，各种吃喝玩乐，有遗憾就是没跟老盆友们多聚聚 去老婆家，老婆家人到我家&#8230;功德圆满了&#8230; 回杭州上班，奶奶的，走的时候下雪，回来了还在下 元宵节，果然没有买到元宵，三个男人吃水饺 拿到了M9，算是第一份自己赚钱买来的东西吧，奖励一下自己 某些国家闹革命闹的很厉害，直接导致公司上不了国外网站了，技术男们不干了，特别临时网络通道开通了，情况得到缓解 3月 日本核泄漏了，天朝抢盐了，小区门口的超市里都没有盐&#8230;.把老妹给骗了，还真买盐去了，soooooooory&#8230;. 自行车丢掉，房间灯坏了，电脑蓝屏，各种点儿背，各种倒霉 firefox 4正式发布，谁知到这货成了2011的版本帝，到现在已经正式版出到9了&#8230; 4月 顿时觉得生活好无趣，于是就整了个猥琐大叔版本的《小手拉大手》 杭州的天气真bt，才4月就大太阳暴晒，外加狂风暴雨 5月 五一某兜兜来杭州了，四处转了转&#8230;转哪儿忘了，倒是吃了不少垃圾食品&#8230; 老婆来杭州面试，月底拿到实习offer。从此，每天走路上班，走路下班，每天下雨，雨伞，拖鞋 6月 运气不错，不过都花在“再来一瓶”上了，连中了好几个 淘宝账户被盗，索性没啥损失，于是各种改密码，绑手机 老婆回学校考试，搬家这种体力活还是由我来干吧 看完了《灌篮高手》，迷上了里头的音乐，哎，逝去的童年！ 7月 老婆从学校回来，老妹也一起过来，到处赚，拍照片 outing去张家界，风景很赞，张家界的猴子和妹子也很赞，你们懂的 入职一年了，感觉到了强烈的瓶颈感，想找突破口，弄得心情有些郁闷 8月 杭州步入每天都下暴雨的季节，某天在街上转，走着走着一转身，已经瓢泼大雨了 去上海，到各种传说中的地方路过 卸载ubuntu，切回windows，我只想专心工作，不去折腾那些乱七八糟的玩意儿 新项目的预言开始，各种看论文，写ppt，这期间收获不少，真的！ 9月 买了把yy很久的电吉他，作为自己半年的奖励，不过发现这玩意儿一个人玩真没劲 新项目的语言继续进行，了解各种其他系统，真是大开眼界 晚上下班回来，听见楼下琴行在排练《直到世界的尽头》，一连好几天这样，每次都忍不住驻足聆听 慢慢的开始喜欢周末跟老婆在家做饭吃，比厨艺。做自己吃的东西真的是一种莫大的享受 10月 国庆没怎么出去玩，貌似还跟老婆吵架了，对不起啦亲。 开始看各种烧脑子的电影《穆赫兰道》《记忆碎片》之类的 好吧，新项目的预言一直在进行，现在看来战线真是够长。不过最后一个星期完成编码也算是厚积薄发了 11月 冰冰来杭州，历尽各种纠结总算见了一面，聊了一晚，丫风骚依旧，挺好！ 老婆23岁生日，感谢你陪我这些年！ 需要运动啊，老婆买了块羽毛球拍，偶尔在公司打打羽毛球 挺忙的，不想讨论工作和生活的关系，现在忙些好，值得的。忙的时候容易迷失，于是就利用下班坐班车的时间写了好多思考，这样就能找到方向了。 12月 尝试了好多新菜，做出了自己最满意的水煮牛肉和鲫鱼豆腐汤 感冒一次、坏肚子若干次&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>每年都有这么一篇，逃不掉的&#8230;<br />
1月</p>
<ul>
<li>那时还住在长江西苑，元旦三天啥也没干，就把《三体3》看完了。按照一位同学的建议，听梁静茹的《情歌》把宇宙二维化的那段重新看了一遍，不得不哭啊！</li>
<li>在维护那坨java的web代码，感觉java太痛苦了，很想回终端下写c++。</li>
<li>杭州继续大雪，觉得走路上班都烦</li>
<li>过年回家，边看春晚边在校内上吐槽</li>
</ul>
<p>2月</p>
<ul>
<li>过年，各种吃喝玩乐，有遗憾就是没跟老盆友们多聚聚</li>
<li>去老婆家，老婆家人到我家&#8230;功德圆满了&#8230;</li>
<li>回杭州上班，奶奶的，走的时候下雪，回来了还在下</li>
<li>元宵节，果然没有买到元宵，三个男人吃水饺</li>
<li>拿到了M9，算是第一份自己赚钱买来的东西吧，奖励一下自己</li>
<li>某些国家闹革命闹的很厉害，直接导致公司上不了国外网站了，技术男们不干了，特别临时网络通道开通了，情况得到缓解</li>
</ul>
<p>3月</p>
<ul>
<li>日本核泄漏了，天朝抢盐了，小区门口的超市里都没有盐&#8230;.把老妹给骗了，还真买盐去了，soooooooory&#8230;.</li>
<li>自行车丢掉，房间灯坏了，电脑蓝屏，各种点儿背，各种倒霉</li>
<li>firefox 4正式发布，谁知到这货成了2011的版本帝，到现在已经正式版出到9了&#8230;</li>
</ul>
<p>4月</p>
<ul>
<li>顿时觉得生活好无趣，于是就整了个<a href="http://chunyemen.org/archives/547" target="_blank">猥琐大叔版本的《小手拉大手》</a></li>
<li>杭州的天气真bt，才4月就大太阳暴晒，外加狂风暴雨</li>
</ul>
<p>5月</p>
<ul>
<li>五一某兜兜来杭州了，四处转了转&#8230;转哪儿忘了，倒是吃了不少垃圾食品&#8230;</li>
<li>老婆来杭州面试，月底拿到实习offer。从此，每天走路上班，走路下班，每天下雨，雨伞，拖鞋</li>
</ul>
<p>6月</p>
<ul>
<li>运气不错，不过都花在“再来一瓶”上了，连中了好几个</li>
<li>淘宝账户被盗，索性没啥损失，于是各种改密码，绑手机</li>
<li>老婆回学校考试，搬家这种体力活还是由我来干吧</li>
<li>看完了《灌篮高手》，迷上了里头的音乐，哎，逝去的童年！</li>
</ul>
<p>7月</p>
<ul>
<li>老婆从学校回来，老妹也一起过来，到处赚，拍照片</li>
<li>outing去张家界，风景很赞，张家界的猴子和妹子也很赞，你们懂的</li>
<li>入职一年了，感觉到了强烈的瓶颈感，想找突破口，弄得心情有些郁闷</li>
</ul>
<p>8月</p>
<ul>
<li>杭州步入每天都下暴雨的季节，某天在街上转，走着走着一转身，已经瓢泼大雨了</li>
<li>去上海，到各种传说中的地方路过</li>
<li>卸载ubuntu，切回windows，我只想专心工作，不去折腾那些乱七八糟的玩意儿</li>
<li>新项目的预言开始，各种看论文，写ppt，这期间收获不少，真的！</li>
</ul>
<p>9月</p>
<ul>
<li>买了把yy很久的电吉他，作为自己半年的奖励，不过发现这玩意儿一个人玩真没劲</li>
<li>新项目的语言继续进行，了解各种其他系统，真是大开眼界</li>
<li>晚上下班回来，听见楼下琴行在排练《直到世界的尽头》，一连好几天这样，每次都忍不住驻足聆听</li>
<li>慢慢的开始喜欢周末跟老婆在家做饭吃，比厨艺。做自己吃的东西真的是一种莫大的享受</li>
</ul>
<p>10月</p>
<ul>
<li>国庆没怎么出去玩，貌似还跟老婆吵架了，对不起啦亲。</li>
<li>开始看各种烧脑子的电影《穆赫兰道》《记忆碎片》之类的</li>
<li>好吧，新项目的预言一直在进行，现在看来战线真是够长。不过最后一个星期完成编码也算是厚积薄发了</li>
<li>11月</li>
<li>冰冰来杭州，历尽各种纠结总算见了一面，聊了一晚，丫风骚依旧，挺好！</li>
<li>老婆23岁生日，感谢你陪我这些年！</li>
<li>需要运动啊，老婆买了块羽毛球拍，偶尔在公司打打羽毛球</li>
<li>挺忙的，不想讨论工作和生活的关系，现在忙些好，值得的。忙的时候容易迷失，于是就利用下班坐班车的时间写了好多思考，这样就能找到方向了。</li>
</ul>
<p>12月</p>
<ul>
<li>尝试了好多新菜，做出了自己<a href="http://www.xiachufang.com/dish/21554/" target="_blank">最满意的水煮牛肉</a>和<a href="http://www.xiachufang.com/dish/21255/" target="_blank">鲫鱼豆腐汤</a></li>
<li>感冒一次、坏肚子若干次&#8230;</li>
</ul>
<p>&nbsp;</p>
<p>就这些吧&#8230;总结一下:</p>
<p>工作是工作、生活是生活。工作的时候就要玩命地工作，生活的时候就要尽情地生活。</p>
<p>要成长，就要跳出自己的“舒适圈”。</p>
<p>出了做饭，还有什么会让我感到痴迷？我觉得还需要一种爱好，让自己痴狂才对！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/619/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>我不是文青，我是码农</title>
		<link>http://chunyemen.org/archives/612</link>
		<comments>http://chunyemen.org/archives/612#comments</comments>
		<pubDate>Tue, 11 Oct 2011 15:02:47 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[脑子里什么在转悠]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=612</guid>
		<description><![CDATA[我不是文青，我是码农。 我已经写不出什么诗了，我只会敲这#include &#60;iostream&#62;。 我隐约记着被烧焦的孙悟空还攥着紫霞送的纱巾。 不是什么复杂的隐喻，这是这一刻的事实。 &#160; p.s. 原文地址：http://chunyemen.org/archives/612， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>我不是文青，我是码农。</p>
<p>我已经写不出什么诗了，我只会敲这#include &lt;iostream&gt;。</p>
<p>我隐约记着被烧焦的孙悟空还攥着紫霞送的纱巾。</p>
<p>不是什么复杂的隐喻，这是这一刻的事实。</p>
<p>&nbsp;</p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/612">http://chunyemen.org/archives/612</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/612/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>apache pig的map reduce执行</title>
		<link>http://chunyemen.org/archives/608</link>
		<comments>http://chunyemen.org/archives/608#comments</comments>
		<pubDate>Mon, 10 Oct 2011 01:34:10 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[pig]]></category>
		<category><![CDATA[源码]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=608</guid>
		<description><![CDATA[Apache Pig是用于做大数据量分析的平台，并且提供pig-latin作为操作pig的高级语言。 Pig将pig-latin脚本翻译成map-reduce job，交由hadoop执行。最近浏览了一下pig的代码，探究了一下pig将脚本翻译成map-reduce job的过程，以及map和reduce的执行框架，在ppt里进行了相关介绍。 Pig Source Code 思维导图，是阅读代码时候的笔记，有兴趣的同学也可以看看。有空了争取写一个源码解析，因为网上现在关于pig的资料还是太少了！ p.s. 原文地址：http://chunyemen.org/archives/608， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>Apache Pig是用于做大数据量分析的平台，并且提供pig-latin作为操作pig的高级语言。<br />
Pig将pig-latin脚本翻译成map-reduce job，交由hadoop执行。最近浏览了一下pig的代码，探究了一下pig将脚本翻译成map-reduce job的过程，以及map和reduce的执行框架，在ppt里进行了相关介绍。</p>
<p><a href="http://chunyemen.org/blog/wp-content/uploads/2011/10/Pig-Source-Code.zip">Pig Source Code 思维导图</a>，是阅读代码时候的笔记，有兴趣的同学也可以看看。有空了争取写一个源码解析，因为网上现在关于pig的资料还是太少了！</p>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/9622827" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="425" height="355"></iframe></p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/608">http://chunyemen.org/archives/608</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/608/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>真的爱你前奏</title>
		<link>http://chunyemen.org/archives/601</link>
		<comments>http://chunyemen.org/archives/601#comments</comments>
		<pubDate>Tue, 04 Oct 2011 12:38:36 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[beyond]]></category>
		<category><![CDATA[吉他]]></category>
		<category><![CDATA[真的爱你]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=601</guid>
		<description><![CDATA[终于能够不带停的把一段曲子弹完了！！虽然各种跑调各种没节奏各种不出声，但还是连着弹完了！ 不容易啊，泪奔&#8230;. p.s. 原文地址：http://chunyemen.org/archives/601， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>终于能够不带停的把一段曲子弹完了！！虽然各种跑调各种没节奏各种不出声，但还是连着弹完了！<br />
不容易啊，泪奔&#8230;.</p>
<p><object width="480" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.tudou.com/v/6P0wQolYE_c/&amp;rpid=2382609/v.swf" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><param name="wmode" value="opaque" /><embed width="480" height="400" type="application/x-shockwave-flash" src="http://www.tudou.com/v/6P0wQolYE_c/&amp;rpid=2382609/v.swf" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" /></object></p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/601">http://chunyemen.org/archives/601</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/601/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>介绍pig的ppt</title>
		<link>http://chunyemen.org/archives/596</link>
		<comments>http://chunyemen.org/archives/596#comments</comments>
		<pubDate>Mon, 26 Sep 2011 01:27:12 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[我和小老婆之间的事]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[pig]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=596</guid>
		<description><![CDATA[Pig是用于做大数据量分析的平台，并且提供pig-latin作为操作pig的高级语言。这是最近介绍pig-latin的ppt。 p.s. 原文地址：http://chunyemen.org/archives/596， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>Pig是用于做大数据量分析的平台，并且提供pig-latin作为操作pig的高级语言。这是最近介绍pig-latin的ppt。</p>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/9418060?rel=0" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="595" height="497"></iframe></p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/596">http://chunyemen.org/archives/596</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/596/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>慎用hash_map的遍历器</title>
		<link>http://chunyemen.org/archives/588</link>
		<comments>http://chunyemen.org/archives/588#comments</comments>
		<pubDate>Wed, 21 Sep 2011 11:27:01 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[hash_map]]></category>
		<category><![CDATA[iterator]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=588</guid>
		<description><![CDATA[今天同事写了这么一段代码： 1 2 3 4 5 6 7 8 //mp is a hash_map Iterator_t it = mp.begin&#40;&#41;; if&#40;it == mp.end&#40;&#41;&#41; &#123; .... &#125; else &#123; .... &#125; 发现程序跑的奇慢无比，原因就在mp.begin()上面！ hash_map这个东西，好好理解一下就明白，通过hash把key分布在一个大的空间内。空间内的key分布式相当离散的，要再上面做遍历操作肯定得遍历各个hash bucket（当然，你自己维护一个链表除外），使用遍历器的代价是十分高昂的，而这个begin()也不例外！代码里头也确实这么写的(/usr/include/c++/4.1.1/ext/hashtable.h): 1 2 3 4 5 6 7 8 iterator begin&#40;&#41; &#123; for &#40;size_type __n = 0; __n &#38;lt; _M_buckets.size&#40;&#41;; ++__n&#41; if &#40;_M_buckets&#91;__n&#93;&#41; return iterator&#40;_M_buckets&#91;__n&#93;, this&#41;; [...]]]></description>
			<content:encoded><![CDATA[<p>今天同事写了这么一段代码：</p>

<div class="wp_codebox"><table><tr id="p5883"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p588code3"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">//mp is a hash_map</span>
Iterator_t it <span style="color: #000080;">=</span> mp.<span style="color: #007788;">begin</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>it <span style="color: #000080;">==</span> mp.<span style="color: #007788;">end</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    ....
<span style="color: #008000;">&#125;</span>
<span style="color: #0000ff;">else</span> <span style="color: #008000;">&#123;</span>
   ....
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>发现程序跑的奇慢无比，原因就在mp.begin()上面！</p>
<p>hash_map这个东西，好好理解一下就明白，通过hash把key分布在一个大的空间内。空间内的key分布式相当离散的，要再上面做遍历操作肯定得遍历各个hash bucket（当然，你自己维护一个链表除外），使用遍历器的代价是十分高昂的，而这个begin()也不例外！代码里头也确实这么写的(/usr/include/c++/4.1.1/ext/hashtable.h):</p>

<div class="wp_codebox"><table><tr id="p5884"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p588code4"><pre class="cpp" style="font-family:monospace;">      iterator
      begin<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>size_type __n <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> __n <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span> _M_buckets.<span style="color: #007788;">size</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>__n<span style="color: #008000;">&#41;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_M_buckets<span style="color: #008000;">&#91;</span>__n<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #0000ff;">return</span> iterator<span style="color: #008000;">&#40;</span>_M_buckets<span style="color: #008000;">&#91;</span>__n<span style="color: #008000;">&#93;</span>, <span style="color: #0000dd;">this</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> end<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      <span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>所以，使用hash_map的时候一定要尽量避开iterator。</p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/588">http://chunyemen.org/archives/588</a>， 欢迎访问<a href="http://chunyemen.org/" target="_blank">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/588/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>select系统调用的1024限制</title>
		<link>http://chunyemen.org/archives/585</link>
		<comments>http://chunyemen.org/archives/585#comments</comments>
		<pubDate>Wed, 31 Aug 2011 14:58:26 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[我和小老婆之间的事]]></category>
		<category><![CDATA[1024]]></category>
		<category><![CDATA[select]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=585</guid>
		<description><![CDATA[今天遇到一个诡异的问题，一个我们常用的通讯框架不能服务了，每个服务线程干了一次活儿就退出了。问题出在框架里头的select系统调用上。先说前言&#8230; 框架中使用了pipe()创建了一个fd pair，对一个管道进行读和写，作为网络线程和工作线程的通讯方式。当有一个请求到来时，网络线程会在写fd上写一个字节，而工作线程则在读fd上select，读到东西了说明有请求分发给自己，则进行相关操作。问题就在这个select上！ 1 2 3 FD_ZERO&#40;&#38;amp;read_set&#41;; FD_SET&#40;fd, &#38;amp;read_set&#41;; int ret = select&#40;fd + 1, read_set, NULL, NULL, timeout&#41;; 运行时，select返回值ret不为零，但是使用FD_ISSET(fd, &#38;read_set)检查的结果却是false！顿时觉得怎么会有尼玛这么坑爹的事情！ 后来@joke提醒说，select的fd最大1024。检查一下，果然超过了，因为这个服务却是打开了这么多句柄，然后再启动通讯框架的时候，fd数已经超过1024了。 唉唉，吃一堑长一智啊！以后在使用select的时候一定要注意这个限制！ 其一，文件句柄较多的程序在使用select的时候需要小心，此时可以用epoll代替，效率也会有所提升。其二，线程间通讯还是blockingqueue这种方式比较简单直接，使用select这样的事件触发机制固然高效，但一般的场合线程间的通讯还不至于成为瓶颈的。 p.s. 原文地址：http://chunyemen.org/archives/585， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>今天遇到一个诡异的问题，一个我们常用的通讯框架不能服务了，每个服务线程干了一次活儿就退出了。问题出在框架里头的select系统调用上。先说前言&#8230;</p>
<p>框架中使用了pipe()创建了一个fd pair，对一个管道进行读和写，作为网络线程和工作线程的通讯方式。当有一个请求到来时，网络线程会在写fd上写一个字节，而工作线程则在读fd上select，读到东西了说明有请求分发给自己，则进行相关操作。问题就在这个select上！</p>

<div class="wp_codebox"><table><tr id="p5856"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p585code6"><pre class="cpp" style="font-family:monospace;">FD_ZERO<span style="color: #008000;">&#40;</span><span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span>read_set<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
FD_SET<span style="color: #008000;">&#40;</span>fd, <span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span>read_set<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> ret <span style="color: #000080;">=</span> select<span style="color: #008000;">&#40;</span>fd <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span>, read_set, <span style="color: #0000ff;">NULL</span>, <span style="color: #0000ff;">NULL</span>, timeout<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>运行时，select返回值ret不为零，但是使用FD_ISSET(fd, &amp;read_set)检查的结果却是false！顿时觉得怎么会有尼玛这么坑爹的事情！</p>
<p>后来<a href="http://weibo.com/1644203875" target="_blank">@joke</a>提醒说，select的fd最大1024。检查一下，果然超过了，因为这个服务却是打开了这么多句柄，然后再启动通讯框架的时候，fd数已经超过1024了。</p>
<p>唉唉，吃一堑长一智啊！以后在使用select的时候一定要注意这个限制！</p>
<blockquote><p>其一，文件句柄较多的程序在使用select的时候需要小心，此时可以用epoll代替，效率也会有所提升。其二，线程间通讯还是blockingqueue这种方式比较简单直接，使用select这样的事件触发机制固然高效，但一般的场合线程间的通讯还不至于成为瓶颈的。</p></blockquote>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/585" target="_blank">http://chunyemen.org/archives/585</a>， 欢迎访问<a href="http://chunyemen.org/" target="_blank">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/585/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>介绍了一下haloop</title>
		<link>http://chunyemen.org/archives/572</link>
		<comments>http://chunyemen.org/archives/572#comments</comments>
		<pubDate>Fri, 26 Aug 2011 06:43:00 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[我和小老婆之间的事]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[haloop]]></category>
		<category><![CDATA[mapreduce]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=572</guid>
		<description><![CDATA[在team内分享了一下haloop——一个变种的，支持迭代的hadoop，以下是ppt，欢迎交流。 论文地址在这里。 &#160; p.s. 原文地址：http://chunyemen.org/archives/572， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>在team内分享了一下haloop——一个变种的，支持迭代的hadoop，以下是ppt，欢迎交流。</p>
<p>论文地址在<a href="http://www.cs.washington.edu/homes/magda/papers/bu-vldb10.pdf" target="_blank">这里</a>。</p>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/9017508?rel=0" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="510" height="426"></iframe></p>
<p>&nbsp;</p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/572" target="_blank">http://chunyemen.org/archives/572</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/572/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>写给一年的自己</title>
		<link>http://chunyemen.org/archives/565</link>
		<comments>http://chunyemen.org/archives/565#comments</comments>
		<pubDate>Sun, 07 Aug 2011 15:44:22 +0000</pubDate>
		<dc:creator>qiuxiafei</dc:creator>
				<category><![CDATA[脑子里什么在转悠]]></category>
		<category><![CDATA[一年]]></category>
		<category><![CDATA[工作]]></category>

		<guid isPermaLink="false">http://chunyemen.org/?p=565</guid>
		<description><![CDATA[其实从去年入职到现在已经一年零一个多月了，不过按照星期五颁发一年香勋章计算，我入职一年了。 一年里，完成了从学生到职业码农的转变，想起刚来的时候干什么都小心翼翼的，现在已经很熟悉周围的一切了。 一年的时候，只是想提醒自己，要时时刻刻保持进取的心态。之前曾经看到这么一句话： 对很多人来说，所谓的十年经验不过是后面九年的时间里，重复使用这第一年的经验。 三分钟热情是很普遍的现象，随着时间的流逝，人愈发容易变得慵懒和认命，我只是不想这样而已。所以，要多学习，多看书，多看代码，多思考，多想想为什么！ 人和生活时间是零和博弈，不是你享受了生活，就是生活把你给“享受”了。 所以，不能懈怠的，何况还有这么多想想都觉得很high的事情等着我去做！路还很长，我还很年轻！吼吼，加油！ &#160; p.s. 原文地址：http://chunyemen.org/archives/565， 欢迎访问纯爷们的小生活！]]></description>
			<content:encoded><![CDATA[<p>其实从去年入职到现在已经一年零一个多月了，不过按照星期五颁发一年香勋章计算，我入职一年了。</p>
<p>一年里，完成了从学生到职业码农的转变，想起刚来的时候干什么都小心翼翼的，现在已经很熟悉周围的一切了。</p>
<p>一年的时候，只是想提醒自己，要时时刻刻保持进取的心态。之前曾经看到这么一句话：</p>
<blockquote><p>对很多人来说，所谓的十年经验不过是后面九年的时间里，重复使用这第一年的经验。</p></blockquote>
<p>三分钟热情是很普遍的现象，随着时间的流逝，人愈发容易变得慵懒和认命，我只是不想这样而已。所以，要多学习，多看书，多看代码，多思考，多想想为什么！</p>
<p>人和生活时间是零和博弈，不是你享受了生活，就是生活把你给“享受”了。</p>
<p>所以，不能懈怠的，何况还有这么多想想都觉得很high的事情等着我去做！路还很长，我还很年轻！吼吼，加油！</p>
<p style="text-align: center;"><a href="http://chunyemen.org/blog/wp-content/uploads/2011/08/IMG_20110805_1509561.jpg" rel="lightbox[565]"><img class="aligncenter size-full wp-image-567" title="IMG_20110805_150956" src="http://chunyemen.org/blog/wp-content/uploads/2011/08/IMG_20110805_1509561.jpg" alt="" width="522" height="697" /></a><a href="http://chunyemen.org/blog/wp-content/uploads/2011/08/IMG_20110805_150956.jpg" rel="lightbox[565]"><br />
</a></p>
<p>&nbsp;</p>
<p>p.s. 原文地址：<a href="http://chunyemen.org/archives/565">http://chunyemen.org/archives/565</a>， 欢迎访问<a href="http://chunyemen.org/">纯爷们的小生活</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://chunyemen.org/archives/565/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

