Hello World
Spiga

归档:2009年05月

谈表达式树的缓存(7):五种缓存方式的总体分析及改进方案

2009-05-31 22:47 by 老赵, 22909 visits
摘要:终于到了这个系列的最后一篇文章了,这个系列的文章本是许多话题的基础,却拖了那么长时间还没有完结。这篇文章主要讨论五种缓存方式各自的优劣,以及他们的性能关键在什么地方,如果要进行改进又有什么可选方案。在这个问题上,老赵的思考可能会有遗漏,如果您有任何补充,也请不吝指出。 阅读全文

从汇编入手,探究泛型的性能问题

2009-05-30 05:21 by 老赵, 23887 visits
摘要:经过了《泛型真的会降低性能吗?》一文中的性能测试,已经从实际入手,从测试数据上证明了泛型不会降低程序效率。只是还是有几位朋友谈到,“普遍认为”泛型的代码性能会略差一些,也有朋友正在进一步寻找泛型性能略差的证据。老赵认为这种探究问题的方式非常值得提倡。不过,老赵忽然想到,如果从能从汇编入手,证明非泛型和泛型的代码之间没有性能差距——好吧,或者说,存在性能差距,那么事情不就到此为止了吗?任何理论说明,都抵不过观察计算机是如何处理这个问题来的“直接”。因此,老赵最终决定通过这种极端的方式来一探究竟,把这个问题彻底解决。 阅读全文

泛型真的会降低性能吗?

2009-05-29 16:41 by 老赵, 27292 visits
摘要:在《.NET,你忘记了么?(八)—— 从dynamic到特性误用》一文中,飞林沙同学提到,使用范型会略微降低程序性能,因此在程序中使用List<Ojbect>是不合理的行为,应该使用ArrayList。这一点和老赵平时的观点相悖,老赵一直提倡,在.NET 2.0之后,要尽可能使用List<T>,情愿是List<Object>也不要使用ArrayList。不过个中原因与性能无关,我们稍候再叙述。飞同学的文章让我有了将范型与非范型进行性能比较的想法。这个比较非常容易,不过也得出了一些非常有意思的结论。 阅读全文

写程序时该追求什么,什么是次要的?

2009-05-29 15:14 by 老赵, 23817 visits
摘要:就我看来,一段程序,最该关注的是“逻辑表现”,不该追求的是“性能”。当然,肯定也会有需要追求性能的场景,不过这并不是“追求”出来的,而是在大量经验累计情况下做出的正确决策。就算在那种情况下,“逻辑表现”还是非常重要的。 阅读全文

一道简单的编程题,不过您做对了吗?

2009-05-27 19:45 by 老赵, 29388 visits
摘要:CSDN学生中心是个好地方,如果善于利用,应该能够对大众产生正面影响。老赵也去那里安了家,并给出了一个编程问题。题目如下:Reverse方法的作用是将array数组中,从begin下标到end下标之间的元素反序一下,如一个数组初始值是[1, 2, 3, 4, 5, 6],begin为1,end为4,那么当调用了Reverse之后,array数组中的元素便依次成为[1, 5, 4, 3, 2, 6],其中从array[1]到array[4]之前的元素被反序了。此外补充一点……其实本不用补充:这个方法需要对传入参数的正确性进行校验,如果用户调用该方法时传入了非法的参数,那么则需要抛出异常,并写清原因。简单,不是吗?只可惜截止到目前,也只有1人给出了正确答案。 阅读全文

谈表达式树的缓存(6):五种缓存方式的性能比较

2009-05-26 21:06 by 老赵, 23989 visits
摘要:目前我们已经涉及了五种不同的缓存实现(SimpleKeyCache、PrefixTreeCache、SortedListCache、HashedListCache和DictionaryCache),如果要从一个已经包含n个表达式树的存储中,查找一个有m个节点的表达式树,根据几篇文章的分析,从理论上说除了HashedListCache的时间复杂度是O(m * log(n))之外,其它几种实现的时间复杂度都是O(m)。不过,理论上的结果和实际使用中的效果完全符合吗?那么我们就写一个程序,让数据说话。这是一个控制台应用程序,接受用户参数,并由此生成试验数据,或进行性能比较。 阅读全文

在简单控制台程序中获取并使用参数

2009-05-24 23:12 by 老赵, 23157 visits
摘要:一个简单的处理控制台参数输入的代码片断,没有技术含量,只是在博客上做一个“备份”,方便以后查询。 阅读全文

正在构建一个新的版式

2009-05-20 20:55 by 老赵, 22530 visits
摘要:老赵对目前博客园中的模板都不太满意:样式单调,元素不够丰富,不容易Hack,不够“标准”,不够充分利用屏幕横向距离等等。因此和dudu商量后,准备为博客园新增一个模板。 阅读全文

ActorLite:一个轻量级Actor模型实现(下)

2009-05-16 17:52 by 老赵, 24018 visits
摘要:在上一篇文章中,我们实现了一个简单的Actor模型。如果要构建一个Actor,便只是简单地继承Actor类型并实现其Receive方法即可。在上次文章的末尾,我们使用C#演示了该Actor模型的使用。不过现在我们将尝试一下F#。 阅读全文

ActorLite:一个轻量级Actor模型实现(中)

2009-05-14 09:29 by 老赵, 26906 visits
摘要:从上一篇文章的反响来看,似乎大家对于这一话题并没有太大兴趣。而这篇文章将会为大家带来一个简单但完整的Actor模型实现。此外,在下一篇文章中……可能会出现一些让您觉得有趣的东西。:) 阅读全文

ActorLite:一个轻量级Actor模型实现(上)

2009-05-11 20:10 by 老赵, 35554 visits
摘要:Actor模型为并行而生,具Wikipedia中的描述,它原本是为大量独立的微型处理器所构建的高性能网络而设计的模型。而目前,单台机器也有了多个独立的计算单元,这就是为什么在并行程序愈演愈烈的今天,Actor模型又重新回到了人们的视线之中了。在这篇文章中,我们会先对Actor Model的相关知识进行简单的介绍。 阅读全文

老赵书托(1):写在前面

2009-05-06 00:11 by 老赵, 40160 visits
摘要:从现在开始,老赵将推荐一些自认为非常优秀且重要的书籍,并和大家一起交流自己的读书体会。这些书都是老赵认为的“.NET开发人员必读书籍”,但是您会发现,它们不一定是和.NET有关的书籍。基于老赵一贯的风格,我会尽可能地认真对待每一本书,甚至会把它们重新浏览一番,因此无法保证“书托”行动的周期长度,请大家谅解。 阅读全文

语言真是不重要的吗?谈语言的*层次*与技术的三六九等

2009-05-03 17:24 by 老赵, 26119 visits
摘要:关注——或“专注”于多语言编程之后,老赵对于语言的关注也越来越多,对于语言在编程中所带来的“美感”也有了越来越深的体会,还在博客的标题中加上“追求编程之美”。关注语言多了,关注纯粹的编程实践多了,自会有所比较,然后写出了引人注目的《为啥老赵不喜欢Java*语言*》。这篇文章所得到的负面评论的确也和想象中差不多,大部分朋友的观点是“语言不是关键”或类似说法,似乎对语言的讨论和比较非常没有必要。有个朋友说的更是直接:“在看到这些文章之前,我还是比较敬重老赵的,不过现在发现你也就这点高度”。老赵认为,这是对这方面的误解,而有这种误解无论是对于社区还是个人的发展都是没有益处的,因此单独开篇,讨论一下这个问题。 阅读全文

令人失望的智器Smart Q5

2009-05-02 01:42 by 老赵, 26459 visits
摘要:前一段时间看到有人提到了“智器Smart Q5(以下简称Q5)”这个手持上网设备,从网上的介绍来看,几乎可以用“划时代”来形容了:4.3寸屏幕,1600万色,800*480分辨率,内置MS Office兼容的编辑器、电子书阅读器(支持pdf,chm等常用格式)和媒体播放器(支持rmvb,mp3,mp4,ape,flac等各种媒体格式),并且可以使用wifi,兰牙,并可外接edge网卡——而且只要9... 阅读全文
1
使用Live Messenger联系我