开始的10分钟,看了还是想吐……反核武器……
作者归档:霏昀
又抽了个德国
世界杯就忍了,毕竟是第二档次,抽Italy也就抽了。08’Euro身为一档,又抽了个二档里的老牌,这个签运真是……还好剩下的队都不强
心情好奇怪
说不清,既不高兴也不忧伤,好像是思念,却又来得毫无理由,不想了,睡觉去了
python的垃圾回收机制
因为要和别人讲理,所以把这部分代码看了看。
大概说一下我的理解。python广义上的垃圾回收是用两种互补的方式实现的:首先对于每一个对象,如果它的引用计数减到0,那么它的__del__会先被调用然后被回收;python里还有一个gcmodule,这个模块虽然叫gc,但其实只是处理循环引用的问题。注释中明确地说了这个gcmodule中不会发现引用计数为0的对象。这个模块中有分代的机制。
比较java/C#和python的垃圾收集(也许是内存管理)大概有两方面区别。python和java/C#第一个区别是垃圾回收的时机。python是一旦一个对象的引用计数减为0就把这个对象回收,这里实际上是延续了C/C++的思维方式(考虑new/delete)。而java/C#都是在内存紧张才会执行整个空间上的垃圾回收。这里python看上去的好处是__del__的调用时机很明确,但是如果深入观察就会发现其实不是这样,因为你没办法控制引用计数,一旦发生循环引用你依然没办法控制__del__调用的时机(根据源码__del__还是有可能根本不被调用)。我是很怀疑python在这里把可以一起做的事情拆散了,因为完全可以在gcmodule处理循环引用的时候一并处理引用计数为零的情况。
另外的区别就是对堆的使用方式。java在创建对象时用的是很简单的方法就是从前向后不断分配――很想栈所以很快,这样在垃圾收集时,显然必要地,会对回收后还在使用的内存进行压缩。而python(至少是CPython)是继承了C的malloc,我对malloc的机制不怎么熟悉,印象中应该是空闲块list的方式吧,可能不对。加之前面回收时机的问题,这就使得python很需要一个高效的pool。
以上两种综合的机制(立即回收+malloc vs. 必要时回收+像栈一样使用,实际上有点像C/C++ vs. java了)哪个效率更高肯定是根具体实现有关的,要看具体的数据结构和算法(回收算法,pool的实现)。不过如果是java/C#对比python,那么java/C#作为大厂商们的推崇,胜出应该必然的结果。
想吃想吃
去健身结果出了东门发现自行车前带没气了……郁闷
从浩沙出来,忽然想去双马吃咖喱。结果是走过去的途中经过千锅居――想去,但是中餐一个人去不值;品诺――想去,但是之前没上网查推荐菜品;Tafi――想去,可是自助只是中午才有……好郁闷,好不容易到了双马,不知是不是因为学生放假的缘故,清静。点了猪排咖喱,上来发现底饭居然不热……太ft了。还好香蕉奶倒是一如既往的赞。
家里机器重装系统不慎把QQ聊天记录全删了
现在在家上Q,大部分人都不认识了……
怎么说呢,计划赶不上变化吧
还是把要干的事列一下吧:
工程:
XWB&aposs GuiModifier Extension(正在进行)
Mondrian + JPivot(下周开始)
PkuPM(春节开始)
Aspectpy(节后开始)
书:
可计算性与计算复杂性导引(节后开始)
小说:
通灵(正在进行)
通灵(一)并序
序
想不起来这篇的灵感最初来自哪了,不过演化下来就成了含蓄的纪念了。
把背景设定到“废铁镇”没什么特别的原因,故事和“废铁镇”也没什么具体的关系,只是恰恰最近看了“铳梦”而且觉得这个背景(赛伯朋克的味道)很合切自己风格罢了。如果想了解更多的关于“废铁镇”、“沙雷姆”和“耶鲁”的信息就去看木城幸人的“铳梦”吧。
一 通灵客
(一)
因为天空之城沙雷姆不断倾倒废料的缘故,无论白天黑夜废铁镇的空气总是颗粒蒙蒙的感觉。季节转换天气冷了下来,路边的乞丐点起了堆火,火光在这空气里就被泛化成了雾蒙蒙的光辉。因为传说在这个地区最近流窜着强夺合成人脊梁骨的罪犯,我将围巾向上拉了拉挡住切在脸颊上的寒气加快步速走出这邋遢的街道。转过来街角就是繁华的娱乐街区,一踏入这里就有穿着暴露的阻街女上来打招呼,我不理不睬地绕开她们沿着街边数着房子走下去。按照提示,数过12间房屋之后我停在了这间门帘破烂在近旁霓虹大亮的赌场衬托下几乎无法发现的小屋前。在废铁镇你总能找到帮你解决问题的人,而我来到这里因为并不怎么广泛流传的说法是,这里有地表上最好的“通灵客”。
(二)
屋里的装饰比我想象的要普通得多――只是个办公室,书桌将两把椅子隔开。电灯而不是蜡烛;桌上的一叠文件夹也替换了水晶球。我坐下点上香烟,嘴里喷出的烟雾倒也不能增加我以为会因烟雾缭绕而有的神秘气氛。
“这屋里禁烟。”内侧房门里挤出一个邋遢的胖子――我想体重和通灵应该没有联系。
“为什么?”
“我讨厌烟的味道。”
至少这是一句比“尼古丁会影响我通灵能力”更容易让人信任的话。我将烟在手掌上碾灭。
“尼尔先生?好的,您很准时。”胖子坐下的时候下巴上的肥肉泛起一道波纹,爱德华•拉弗尔,如果想和死人打交道,红龙酒吧里联系人都会向你推荐他――当然,负担得起价钱的条件下,“我看到你传过来资料了,订金也已经付过了。嗯,一切都没有问题。联络你过来是因为按惯例有些事应该当面确认一下,你的确想和死去的人交谈,是吧?”
“是的。”
“嗯,事实上这种事几乎总是起不到任何帮助,比如有些人希望向死人讨债……这很可笑,哈哈。我想他们已经疯了。所以……”
“我以为你已经看过我的资料了。”我打断了他,因为讨厌听别人说一些并不好笑的笑话。
“啊,是的,是的。我看过,你的想联系的对象……”胖子打开桌上的一个文件夹,“菲•维伦迪,是个赏金猎人。恩,这没什么不同,我只是想提醒你,和死者交谈通常并不能带来多少好处,当然有些情况例外,比如找些被死人藏起来的东西。让我看看,也不是这种情况……你是想问她还有什么话对你说。”
“是的。”
胖子合上文件夹,“好的,尼尔先生。我的提醒可是出于好意。不过只要你确定没有问题就可以了。另外你大可以放心,交谈的内容决不会被泄漏出去的,我的信誉一向很好。”
“嗯。”可以从死人嘴里知道秘密的人能一直活着,说明他和死人没什么区别。不过我倒是不怎么关心这一点。
“另外需要说明的是,和死人交谈并不是总能成功的。通常情况下只有和流魄交谈――也就是那种留恋现世不愿意去冥界的魂魄,才有意义。因为一旦决定渡过冥河,就要喝冥河的水,也就丢掉了以往的记忆。如果死者已经失去记忆,你可以选择放弃这次业务,不过订金可不退还。我想你之前应该清楚这一点。”
“是的。”
“好的。你可以回去了。如果联络到死者我会用邮件通知你的。”
“好的。”我站起身,拉起围巾走出了小屋。
考完了
本科基本上over了
Haagen-Dazs
性价比太低了也……冰激凌球冻得硬梆梆地,味道一般吧,不如同等价钱去喝酒或者DQ。