多线程 Pipeline 的改进

阅读更多关于《多线程 Pipeline 的改进》

 如果一个任务的执行分多个步骤,有些步骤慢,有些步骤快,如果在处理时间长的步骤上使用更多线程,那么因为队列的缓冲作用,在平均处理时间上,这些步骤就可以大致持平了,从而导致更大的吞吐量。

以前的 Pipeline 完全胜任这样的需求,但是,如果有一个这样的需求,考虑如下例子:
有若干篇文章(百万以上),需要对这些文章进行分析并索引,使用Pipeline,分成以下步骤:

继续阅读

爱尔兰巨角鹿的死去

阅读更多关于《爱尔兰巨角鹿的死去》
地球上曾经出现了一种鹿,叫做爱尔兰巨角鹿,毫无疑问,它有非常巨大的鹿角。
按照新达尔文注意的解释:在开始的时候,较大的鹿角使得鹿有较强的生存能力,它夺取了第一个高地。后来事情发生了一点变化,雌鹿开始喜欢鹿角巨大的雄鹿,那些鹿角稍微小点的雄鹿,大多不是因为生存不下去而灭绝了,而是因为没有雌鹿和它交配而没了后代。然后,鹿角就越来越大,以至于大得对它来说是巨大的负担,让它承受不起,但是,为了能够得到母鹿,鹿角还在不停地长大。
为什么母鹿会喜欢大得夸张以至于毫无实用性甚至是有害的鹿角呢?道金斯给出了一个非常合理的解释:固然小鹿角的雄鹿的生存能力和大鹿角的雄鹿一样强,但是,正因为鹿角已经成了一个负担,负担得起大鹿角的,当然更强壮一点。就如同背着沙袋跑步的人,和轻装跑步的人,如果跑得一样快,当然是背着沙袋的人更强壮。
于是,鹿角就成了一个纯粹形式化的竞争热点。
现在,软件越来越复杂,但是大家可以发现,更多的复杂性不是因为它提高了大家的工作效率,而是它看上去更漂亮。对大家的工作效率一样的软件,如果看上去更漂亮,它就取得了优势,于是它就更加趋向于为了漂亮而复杂。以至于我们整天骂它华而不实。在这种情况下,就是进化史上的“进化稳定”阶段,因为环境的稳定,生物没有实质性的进化。然而,环境不是永远稳定不变的,在环境的骤然变化下,就是那些华而不实的特性消亡之日,拥有那些特性的生物如果不懂得变化,就会灭绝。
这些年,桌面软件实际上就是处于这种稳定阶段,然而,这种外显的特征,其实只是基因型的极小部分的显性体现,那些没有外显出来的基因型,一直待在那里等待机会。只要机会来临,历史就将重写。