摘要: 装箱用于在垃圾回收堆中存储值类型,是值类型(C#参考)到object类型或到此值类型所实现的任何接口类型的隐式转换。对值类型装箱会在堆中分配一个对象实例,并将该值复制到新的对象中。 以下3段代码说明如何使用装箱拆箱操作,请尝试将其分别保存在不同的文件中并使用csc命令编译,然后分别运行查看效果:classTestBoxing { staticvoidMain() { intI=123; objecto=I;//implicitboxing I=456;//changethecontentsofi System.Console.WriteLine("Thevalue-typevalue 阅读全文
posted @ 2011-08-20 15:21 ChaunceyHao 阅读(245) 评论(0) 推荐(0)
摘要: 另一个重要的优化是减少函数调用的次数。虽然现在许多编译器已经针对函数调用进行了重大优化,但是对于函数携带的重大开销还是稍存疑虑。为了验证这一点,我们可以编写一个小程序,它把一个只执行返回语句的函数调用了10 000次,你将开始感觉到函数调用的代价,如果函数传递参数或者返回值,那么花费的时间将会更长一些。常见的惯例是使用内联代码或者宏,把函数直接隐藏在算法中。研究编译器的库(如果可用,应该总是能得到源代码),并且你将会发现许多函数已经被实现为宏。要尽可能使用这些宏,并且要留心观察它们的副作用。如果你仍然必须调用函数并且不能获得所需的性能,可以考虑将供应商的源代码直接复制到你的算法中。这是一种危险 阅读全文
posted @ 2011-08-20 08:29 ChaunceyHao 阅读(196) 评论(0) 推荐(0)
摘要: 在计算机领域,一项正在进行的工作是,通过对算法进行改进以求获得最佳的性能。这种工作通常采用以下两种策略之一:优化现有的算法或者开发新的算法。这些策略具有截然不同的目标,应当加以区别看待。在优化算法的时候,一般不会尝试使其性能方程降级。例如,我们知道冒泡排序的平均性能是O(N2-N)。如果你必须使用冒泡排序,那么将希望确定在冒泡排序中执行的动作所耗费的时间非常短。也就是说,希望它的两个主要操作(比较列表中的元素并交换它们)执行得非常快。在应用程序的上下文中,需要付出相当大的努力来确保算法的实现是经过完全优化的。例如,需要确保在内存中而不是在磁盘上交换元素。通过处理每个数据项的处理所需的时间,可以 阅读全文
posted @ 2011-08-20 08:28 ChaunceyHao 阅读(249) 评论(0) 推荐(0)
摘要: 除了最直观的应用之外,算法是所有程序的核心和灵魂。算法一般被设计用于以最小的代价高效地解决特定的问题。算法的价值一般取决于两方面因素:如何恰当地解决问题以及如何高效地实现解决方案。这些是算法分析的定性和定量方面。对于许多算法,质量不是一个问题。例如,对于排序算法,必须保证每次都对所有元素正确地进行了排序。一旦出错,就必须丢弃它并且严格说来不能将其视为一种算法。在其他领域,不能基于这种简单的通过/失败测试来度量质量。例如,在第4章中介绍的Soundex算法允许检索听起来相同的单词或名字。与排序算法不同,可以调整Soundex算法,以寻找接近的匹配或者相当宽泛的匹配;这取决于实现算法的方式和开发人 阅读全文
posted @ 2011-08-20 08:27 ChaunceyHao 阅读(448) 评论(0) 推荐(0)
摘要: 如果许多个体有着共同的名字,那么我们可以认为它们同样有着相应的概念或形式—明白我所说的吗?明白。让我们以任意一个普通的事物为例。我们的世界中有许许多多的床和桌子,是吗?是的。但这里仅仅存在两个它们的概念或形式:一个是床的概念,一个是桌子的概念。确实如此。而任何工匠都是遵循这种概念来制作我们所使用的床和桌子的。—柏拉图(公元前360年),《理想国》第十卷在2008年的第7届设计思想研讨会上,每个发言人都对四个同样的设计小组会议作报告。3 视频和打印件都提前很好地分发下去了。来自雷丁大学的Rachael Luck在架构会谈中提出一个之前没有引起任何人注意,而后又被大家一致认同的实体:设计概念。毫无 阅读全文
posted @ 2011-08-20 08:15 ChaunceyHao 阅读(274) 评论(0) 推荐(0)
摘要: 《牛津英文词典》对设计这个动词作了如下定义:To form a plan or scheme of, to arrange or conceive in the mind ... for later execution.对……形成计划或模式,运用思维整理或考量……以便后续执行。这一定义的精髓在于计划、思维和后续执行。所以,一个设计(名词)是一种被创造出来的事物,它先于被设计的事物出现且与之相关,但又有所区别。英国作家、戏剧家Dorothy Sayers在她那本发人深省的著作《The Mind of the Maker》里,将创作的过程分为了三个不同的阶段,她称之为构想(Idea)、精神(Ene 阅读全文
posted @ 2011-08-20 08:14 ChaunceyHao 阅读(238) 评论(0) 推荐(0)