报价
HOME
报价
正文内容
nand2门 每个程序员书柜必备的编程书籍
发布时间 : 2024-10-11
作者 : 小编
访问数量 : 23
扫码分享至微信

每个程序员书柜必备的编程书籍

原文参考了Dan Luu的博客,经作者授权,由InfoQ编译、整理并分享。

http://danluu.com/programming-books/

一提到有关编程方面的书籍,你就会想起江湖中传说的“每个程序员必读的12本计算机科学书籍”,然而,这份清单并没有什么实用性。因为,计算机科学领域非常宽泛,几乎所有程序员都可以阅读任何主题,就算某个主题很重要,但由于读者的学习偏好天悬地隔,因此对所有读者而言,某个主题并不存在所谓“最好的”书籍。

本文是我已经阅读过的主题和书籍的清单。这些都是我很熟悉的主题,也许你可以在此文中,了解关于该主题更多的情况,并阅读其他相关书籍。换而言之,就是说你为什么需要阅读另一本书。

算法、数据结构、复杂性

为什么要关心算法、数据结构和复杂性? 好吧,有一个实用的结论:在工作中,即使你从来没有用到这些东西,但是,大多数一流的支付公司在面试中会测试这些内容。我决不瞎扯,算法真的很有用,就像我发现数学很有用一样。任何特定算法适用于任何特定问题的概率很低,但从总体上说明什么类型的问题如何解决,什么样的问题难以处理,通常当近似有效时就有用了。

《Cracking the Coding Interview》

作者:McDowell

出版社:CareerCup; 6th edition (July 1, 2015)

中文版:《程序员面试金典》

译者:李琳骁、漆犇

出版社:人民邮电出版社,第五版

《程序员面试金典》的作者McDowell,是原Google资深面试官的经验之作,层层紧扣了程序员面试的每一个环节,全面详尽介绍了程序员应当如何应对面试才能脱颖而出。

该书涉及到面试流程解析、面试官的幕后决策及可能提出的问题、面试前的准备工作、对面试结果的处理等内容,还涵盖了数据结构、概念与算法、知识类问题和附加面试题四个方面,为读者提供了来自Google、Facebook、Microsoft等多家知名公司的编程面试题,并为每一道面试题分别给出了详细的解决方案。

我会向那些并没有真正掌握算法、但又想通过面试的程序员推荐这本书。这本书读起来尚可,不过并不能真正教会你知识,如果想真正掌握算法和数据结构,那么继续往下看。

《Algorithms》

作者:Dasgupta、Papadimitriou、Vazirani

出版社:McGraw-Hill Education

中文版:《算法概论》

译者: 王沛、唐扬斌、刘齐军

出版社:清华大学出版社

《算法概论》是一本适合入门的读物,但却不失深度以及广度,读来让人兴趣盎然。我认为,认真读完这本书,并且思考每章后面的习题,会对算法有一个很好的大局观。当然要掌握算法,只靠这一本书是不够的,不过算作最佳入门是当之无愧的。

该书全面介绍了算法的基本知识,将算法分成类(例如分治法、,或贪婪算法),在表达每一种技术时,强调每个算法背后的数学思想,让你掌握如何判断应该使用什么样的算法来解决特定的问题。

该书合理挑选主题,厘清了一条算法这门学问的线索,对结构的精心安排,对问题的数学结构的剖析,从而推出一个算法的过程的讲解。长度适宜,仅有三百多页,可以利用几个周末进行阅读。

不过,我知道有些读者不会喜欢这本书,因为它包括了太多的数学思想。如果是你,我猜你可能喜欢Skiena著的那本书。

《The Algorithm Design Manual》

作者:Skiena

出版社:Springer; 2nd edition (July 26, 2008)

《The Algorithm Design Manual》要比Dasgupta所著的那本《Algorithms》更长,更全面,也更实用,而且涉及到的数学也更少。它差不多就是试图教你如何识别问题并使用正确的算法来解决问题、以及给出一个清晰的算法解释的那本书。

该书内容丰富,各个主题几乎无不涉及,从常见的各种数据结构到算法策略、可计算性。如果想当做教科书,该书每章结尾都有很多练习,值得推荐。这本书充满了激情的“战争故事”,显示了算法在现实世界编程的影响。

《Introduction to Algorithms》

作者:Cormen、Leiserson、Rivest、Stein(CLRS)

出版社:The MIT Press; 3rd edition (July 31, 2009)

中文版:《算法导论》

译者:殷建平、徐云、王刚、刘晓光、苏明、邹恒明、王宏志

出版社:机械工业出版社; 第1版 (2013年1月1日)

在江湖中流传的各种版本“所有程序员必读之书”的清单中,《算法导论》就占据了半壁江山。这本书将严谨性和全面性融为一体,深入讨论了各种算法。实际上,几乎没有读者会读完整本书。不过,全书各章自成体系,可以作为独立的学习单元。它是全球读者最多的算法圣经。

该书的特点是选材经典、内容翔实、结构合理、逻辑清晰。每章前半部分介绍了讲授和学习算法的有效方法,后半部分为更专业的读者和求知欲强的学生提供了更引人入胜的资料来讨论这个迷人领域的各种可能性和挑战,对本科生的数据结构课程和研究生的算法课程而言是非常棒的教科书。

比如说,有整整一章是关于Van Emde Boas树,写得很工整,这有点奇怪,像的平衡树结构的插入、删除、就像查找、继承一样好,也许以前的书籍可能如此,但它是第一个没有包含Van Emde Boas树的算法导论。

《Algorithm Design》

作者:Kleinberg、Tardos

出版社:PEARSON EDUCATION; 1 edition (2013)

《Algorithm Design》广受好评,堪比CLRS所著《Introduction to Algorithms》,被推荐为关于算法设计和分析的一本不可多得的优秀入门书。我发现,这本书与CLRS所著的书相比,该书将直观性与严谨性完美结合起来。覆盖面比较宽广,凡属串行算法的经典论题,都有所涉猎。

《Advanced Data Structures》

作者:Demaine

《Advanced Data Structures》是一套讲稿和笔记,而非一本书。如果你想要一套条理清楚但不难综合的数据结构的学习资料,在大多本科课程中,你不大可能看到,因此这套讲课和笔记,功德无量。

这些笔记没有出单行本的计划,所以如果您尚未看过这些资料,就必须观看教学视频。

《Purely Functional Data Structures》

作者:Okasaki

Cambridge University Press (June 13, 1999)

出版社: Cambridge University Press

《Purely Functional Data Structures》读起来很有趣,但不同于其他算法和数据结构的读物的是,我从这本书中,还没能得到真正解决实际问题的重要能力。

在我读完这本书后过了几年,有人告诉我,推理出纯函数冗余数据结构的性能并不难。我就向他们请教这本书中把我难倒的证明部分,我并不是在讨论那些晦涩难懂的超难习题,而是说这本书的主要内容,作者有太多过于明显的解释性的东西。但是并没有人解释。这种东西的推理比大家说的还要难。

《Higher Order Perl》

作者:Dominus

出版社: Morgan Kaufmann Publishers

中文版:《华章程序员书库:高阶Perl》

译者:滕家海

出版社:机械工业出版社

《高阶Perl》在Perl领域深入探讨了各种最新的主题,如递归、迭代器、过滤器、划分、数值方法、高阶函数、惰性求值等内容,并将这些转换成现实变成工作中强有力的实用工具:HTML处理、数据库访问、网页抓取、家庭理财等等。

该书恰当地介绍了使用Perl的函数式编程。通过这本书的学习,你可能像Python或Ruby那样很容易进行工作。

不过,如果你跟得上潮流,你会发现这本书可能有点过时,因为讲解的是2005年的Perl 5,而现在是2015年12月25日发行的Perl 6。不过,这本书提到的思想,目前已成主流。

《Algorithms》

作者:Levitin

出版社:Pearson; 3 edition (October 9, 2011)

“强化学习的其他特点,包括:章节摘要,习题提示。这是一本详细的解决方案手册。”、“学生通过习题提示和章节摘要进一步支持学习。”其中一个广告甚至印在书上。

当我看到这两个广告后,就在亚马逊下了订单购买《Algorithms》。但在我拿到这本书后,我唯一的自学资源却是在雅虎问答(Yahoo Answers)里的一些帖子,在那里你能找到提示或者解答。

最后,我拿起了Dasgupta的著作来取代了这本书,因为他的网站资源可以免费使用。

《Probability and Computing: Randomized Algorithms and Probabilistic Analysis》

作者:Mitzenmacher、Upfal

出版社: Cambridge University Press (January 31, 2005)

我获得的算法知识可能比其他任何算法书籍讲述的都多。许多随机算法移植到其他应用程序虽然很琐碎,但却可以简化很多事情。

《Probability and Computing: Randomized Algorithms and Probabilistic Analysis》有关概率学的介绍部分很翔实,就算读者不具备任何概率学的背景也能轻松入门。此外,的内容(例如,)对许多计算机科学理论的证明很有用,这些在我所阅读到的概率学介绍内容中都没有提到。

《Introduction to the Theory of Computation》

作者:Sipser

出版社:Cengage Learning; 3 edition (June 27, 2012)

中文版:《计算理论导引》

译者:段磊、唐常杰

出版社:机械工业出版社,第一版

《计算理论导引》以独特的视角,系统介绍了计算理论的三大板块:自动机与语言、可计算性理论、计算复杂性理论。讲述了宽泛的数学原理,没有拘泥于某些低层次的细节。

在证明之前,都有直观的“证明思路”,帮助读者理解数学形式下蕴涵的概念。很多重要的结果,如定理,都被作为练习题。所以你真的需要做这些关键练习题。但是,大多数关键练习题没有提供答案,因此你也无法知道你解答是否正确。

如果想选择更为现代的主题,也许可以阅读Aurora和Barak的著作。

《Computation》

作者:Bernhardt

《Computation》这部教学影片涵盖了一些计算机理论的重点部分。影片讲解令人愉悦,为了观看Bernhardt讲解的内容,这个影片我已经观看不止一次了。该影片的受众是那些没有计算机科学背景的一般程序员。

《An Introduction to Computational Learning Theory》

作者:Kearns & Vazirani

出版社:The MIT Press (August 15, 1994)

《An Introduction to Computational Learning Theory》是一本非常经典的读物。但是这本书已经过时(InfoQ注:该书1994年出版,距今已经22年了),而且漏洞百出,没有勘误。我最终从几门课程拼凑了一些笔记,一个是Klivans的著作,另一个是Blum的著作。

操作系统

为什么要关心操作系统?因为,掌握一些关于操作系统的知识,可以让你节省几天或一周的调试时间。 这是Julia Evans博客上经常提到的话题,我发现,就我个人经验来说,确实如此。

那些建立可行的系统并了解一些操作系统知识的人,却没有发觉如果有操作系统知识的话会很节省时间,这点我很难想象。

可是,读过操作系统书籍的人往往有偏见——正是做这方面的相关人士,如果你是骨灰级玩家,除非阅读这些,你可能得不到同样的结果。

《Operating System Concepts》

作者:Silberchatz、Galvin、Gagne

出版社:Wiley; 9 edition (December 17, 2012)

中文版:《操作系统概念》(第七版)(翻译版)

译者:郑扣根

出版社:高等教育出版社; 第1版 (2010年1月1日)

好吧,这是Comet Book成为标准之前,我们在Wisconsin就用过的一本书。

《操作系统概念》涵盖了高阶概念并击中要点,但是在技术层次的深度稍显不足,没有详细阐述事情是如何工作的,也没有清晰列出更高级的主题。

顺便说一下,我听说了关于Comet书籍的好消息,但是我不敢妄言,毕竟我还没有阅读过。

《xv6》

作者:Cox、Kasshoek、Morris

这本《xv6》真的太棒了!它解释了你如何能够在真实系统上有效运作,你可以设想自己实现一个可执行的操作系统。按照本书写作的设计,作者倾向于简单的实现而非优化的实现,因此,书中使用的算法、数据结构和平常的生产系统完全不同。

这本书与介绍现代操作系统如何工作的书籍配合阅读,比如Love著的《Linux Kernel Development》或者Russinovich著的《Windows Internals》,学习效果会更好。

《Linux Kernel Development》

作者:Love

出版社:Addison-Wesley Professional; 3 edition (July 2, 2010)

《Linux Kernel Development》的书名可能有误导之嫌,这不是关于Linux内核开发的读物,基本上是一本阐述Linux内核如何工作的书籍:事物是如何契合的,使用了什么算法和数据结构等等。我阅读的是第二版,现在已经完全过时了。

第三版内容有所更新,但是也引进了一些错误和矛盾之处。而且,这一版本仍然过时,这本书2010年出版,讲的是内核2.6.34。虽然如此,该书仍然不啻一本优秀的介绍现代操作系统原理的读物。

该书还有一个缺点,在作者拿Linux和Windows进行比较时,有失客观,基本上就是每次比较的时候,就宣扬Linux是明确无疑的正确选择,Windows总是干蠢事。总体来说,Linux和Windows我都喜欢,在有些领域,Windows做得更好。而且在有些地区,Windows已经领先很多年了。但在这本书中,你甭想看到类似这些评价。

《Windows Internals》

作者:Russinovich、Solomon、Ionescu

出版社:Microsoft Press; 6 edition (March 25, 2012)

中文版:《深入解析Windows操作系统:第6版(上册)》

译者:潘爱民、范德成

出版社:出版社: 电子工业出版社; 第1版 (2014年4月1日)

《深入解析Windows操作系统》是阐述现代操作系统如何工作最全面的一本书,只不过碰巧这本书是关于微软Windows。作为从*nix走过来的人,看到Windows和*nix不同的差异,这样的阅读非常有趣。

然而,该书并非简单的入门书,在阅读本书之前你必须掌握一些操作系统知识。

如果想买这本书,你要等到2017年初发行的第七版。

《The Little Book of Semaphores》

作者:Downey

《The Little Book of Semaphores》是一本这样的读物:列出一个主题,通常从操作系统的教科书中抽取一两个章节,然后拼凑成为自己长达300页的书。

这本书是一系列的习题,有点像小型提纲,但更多的是阐述。它首先解释了什么是信号量,然后给出构建高并发原语知识的一系列习题。

在我开始编写并发线程代码时,这本书提供了很大的帮助。我订阅了Butler Lampson学院关于并发的资料,我喜欢把并发相关代码塞到别人写的黑盒。但是有时候你坚持自己写黑盒的话,如果是这样,这本书有很好的导论,要求思考方式才可能写出不是完全错误的并发代码。

我希望有朝一日,能有这样的一本书问世:既照顾低水平的读者,又兼顾高水平读者,我很喜欢这样的写作设计。从几个指令集原语不同的内存模型的体系结构(如x86和Alpha),而不是从信号量开始讲起。如果今天我写低劣的低级线程代码,我会更喜欢用C++ 11的线程原语,所以我想用这些东西而非信号量。如果由我来写线程代码的话,我可能会用Win32 API来编写。但到目前为止,还不存在这样的一本书。以后如果有这样一本书问世,那将是最好不过的了。

我听说Doug Lee的Java并发编程非常不错,但我只泛泛而读没有深入研读。

计算机体系架构

为什么要关心计算机体系架构?当你进行底层性能优化的时候,你所学到的具体事实和细节,将会非常有用。但是,真正的价值就是学习如何在性能和其他因素进行权衡,无论是功耗、成本、体积、重量,亦或者其他因素。

从理论上讲,这种推理应该不分专业进行教授,但我的经验是,那些学习计算机体系结构的人更可能会“得出”那种推理和粗略的计算:才能让他们抛开一个没有理由在性能上2倍或10倍(或100倍)的因素。听上去很显然,但是我想到大公司的多个生产系统放弃10到100倍的性能,而以一个标准来运行,甚至2倍的性能差异,都足以支付VP的薪水。全是因为人们没有意识到他们的设计带来的性能影响。

《Computer Architecture: A Quantitative Approach》

作者:Hennessy、Patterson

《Computer Architecture: A Quantitative Approach》教你如何用多约束(如性能、TCO(总开销)、功率等)进行系统设计,以及如何推论权衡。它主要以微处理器和超级计算机为例。

该书的新版增加了实质性的补充,这个版本才是你真正想要的读物。比如,新版增加了一个关于数据中心设计的章节,回答了以下问题:用于电力、功率分布、制冷的运营开支OPEX/资本支出CAPEX,以及支持团队和机器的支付费用,使用低功耗机器对tail larency的结果质量及影响(以必应搜索的结果为例),在设计数据中心时应该考虑哪些其他因素。

假设读者具备一些背景,但背景已在附录中提供,并且可免费在线获取。

《Modern Processor Design》

作者:Shen、Lipasti

出版社:Waveland Press, Inc.; 1 edition (July 30, 2013)

《Modern Processor Design》展示了设计Pentium Pro(1995年)时代高性能微处理器所需要了解的大部分内容。因为这种处理器的复杂性,阐述清楚绝非易事。另外,还介绍了一些更为先进的想法和从各种工作负荷可以运行的平行计算的范围(以及你可能会如何进行如此计算)。该书有一个很长的章节,是关于值预测,因为作者发明了这个概念,当第一版发行的时候,还很热门。

对于纯CPU架构,这本可得到的读物大概是最好的。

《Readings in Computer Architecture》

作者:Hill、Jouppi、Sohi

出版社:Morgan Kaufmann; 1 edition (September 23, 1999)

因为历史原因而阅读,看看我们所理解的解释有多好。比如,比较Amdal关于定律的论文(没有公式,只有一幅并非显而易见的图表的两张纸),相对与现代教科书的表述(一个段落,一个公式,或者一幅图表来阐明,虽然通常来说足够清晰,不需要额外的图表)。

糟糕的是,《Readings in Computer Architecture]》看上去让你后退得更远。因为计算机架构真的是很年轻的领域,这里没有什么真正难以理解的东西。如果你想看到一个动人心魄的例子,例如我们怎样更好解释这一些,像比较Maxwell在方程组的最初论文与现代对同一事物的解释。如果你喜欢历史的话,这本书很有趣。但是如果你只是想学习的话,它勉为其难。

博弈算法理论、拍卖理论、机制设计

为什么要关注这些知识(博弈算法理论、拍卖理论、机制设计)?因为这些知识介绍了世界上最大的科技公司在广告收入的运作方式,而这些广告是通过拍卖来销售的。该领域介绍了它们运作的方法和理由。另外,当你尝试弄明白如何设计有效分配资源的系统,这些知识就派上用场了。此外,如果你玩桌游,拍卖理论解释了为什么通过拍卖机制来固化博弈失衡是重要的,往往使游戏更糟。

尤其对设计公司内部激励相容制度(粗略的说,就是如何创建能提供人们出于私心而追求最佳利益的全局最优结果的系统)的人员而言,这些书应为必读书籍。如果你曾在两家大公司供职过,其中一家建立了有效的内部激励相容制度,而另一家没有建立相应制度。你就会发现,没有建立内部激励相容制度的那家大公司烧了大把大把的钱,因为这些人建立了超级没用的激励系统。

这个领域展现了这么一幅画卷,让你了解什么样的机制会带来什么样的结果。通过阅读案例研究,你会得到一个耗资数百万甚至数十亿美元的错误列表,洋洋洒洒,也很有趣。

《Auction Theory》

作者:Krishna

出版社:Academic Press; 2 edition (August 26, 2009)

中文版:《拍卖理论》

译者:罗德明、奚锡灿

出版社:中国人民大学出版社

上一次我阅读《拍卖理论》的时候,它是当时唯一对拍卖理论进行全面且最近介绍的一本书。在第一章中,涵盖了经典的第二价格拍卖的结论,然后涵盖了风险规避、竞标操纵、多个拍卖、非对称信息和其他现实世界的问题。

该书涵盖了拍卖的大部分理论,对深入理解拍卖理论的主要脉络非常必要。但这本书相当枯燥无趣,不大可能激起阅读欲望。除非你对这个主题感兴趣。需要了解基本的概率学和微积分学的知识。该书对致力拍卖研究的研究生是不可或缺的读物。

《Snipers, Shills, and Sharks: eBay and Human Behavior》

作者:Steighlitz

出版社: Princeton University Press (April 1, 2007)

《Snipers, Shills, and Sharks: eBay and Human Behavior》看上去似乎是专门为外行介绍拍卖理论、带有娱乐性质的书籍。该书解释了eBuy的工作方式及理由,正如书名的副标题所言,作者还探讨了人类在eBuy和其他地方拍卖中的怪癖行为。这本书妙趣横生,无需读者具备数学背景,可能包含了Krishna所著《Auction Theory》的少量内容,能让读者对拍卖理论产生兴趣。

《Combinatorial Auctions》

作者:Crampton、Shoham、Steinberg

出版社: The MIT Press

《Combinatorial Auctions》所讨论的是,是像美国通信委员会(FCC)那次频段拍卖,由于拍卖机制设计中的“漏洞”引起数亿甚至数十亿美元的价差被摆上台面的案例(InfoQ注:有兴趣的读者可以通过google检索“美国拍卖600MHz频段”来了解这个事件)。该书虽然是由不同作者共同撰写的读物,但读起来仍然行云流水一气呵成,让我乐意阅读。

这本书在组合拍卖领域有着深度和广度,于细微处见功夫,它还罗列了详细的作者和主题索引,排版质量非常棒,以至于可以跳过开头提到的Krishna的著作进行阅读,但我不会推荐它。这本书对于想了解组合拍卖的研究人员和从业者,都是必不可少的读物。

《Multiagent Systems:Algorithmic,Game-Theoretic,and Logical Foundations》

作者:Shoham、Leyton-Brown

出版社:Cambridge University Press; 1 edition (December 15, 2008)

《Multiagent Systems:Algorithmic,Game-Theoretic,and Logical Foundations》最槽的就是书名了。然而,它是Multiagent System方面最值得阅读的读物之一。

该书涵盖了基本的博弈论、拍卖理论,以及在计算机科学中读者可能不知道的其他经典主题,囊括了很多新颖的前沿理论,还有计算机科学和这些主题的交集内容,比如博弈学习模型等,甚至还有逻辑学的内容(这也是Shoham最关注的方向,将博弈理论上升到哲学层次)。这本书非常有特色,前面几章有很多例子,计算机科学学术味很浓。该书假定读者对主题没有特定的背景。

《Algorithmic Game Theory》

作者:Nisan、Roughgarden、Tardos、Vazirani

出版社:Cambridge University Press; 1 edition (September 24, 2007)

《Algorithmic Game Theory》包含了博弈算法理论的各种调查结果。要求读者具有相当数量的背景(首先要阅读过Shoham和Leyton-Brown的著作),例如第五章基本上是Devanur、Papadimitriou、Saberi和Vazirani的JACM论文:

《Market Equilibrium via a Primal-Dual Algorithm for a Convex Program》(《通过用于Convex程序的原始对偶算法的市场均衡》),并引出一些相关问题,让读者有更上一层楼的动机。如果你深入了这本书的话,会发现该书阐述很棒,而且很有趣。但如果你想通过阅读一本书来窥探一个领域的话,它未必是你想要的那种书。

杂项

《Site Reliability Engineering》

作者:Beyer、Jones、Petoff、Murphy

出版社:O'Reilly Media; 1 edition (April 16, 2016)

中文版:《SRE:Google运维解密》

译者:孙宇聪

出版社:电子工业出版社; 第1版 (2016年10月1日)

《SRE:Google运维解密》可以让读者学习到Google工程师在提高系统部署规模、改进可靠性和资源利用效率方面的指导思想与具体实践——这些都是可以立即直接应用的宝贵经验。任何一个想要创建、扩展大规模集成系统的人都应该阅读,该书针对如何构建一个可长期维护的系统提供了非常宝贵的实践经验。

要看更丰富的简要说明,请阅读这本22页的该书的笔记。

《Refactoring》

作者:Fowler、Beck、Brant、Opdyke、Roberts

出版社:Addison-Wesley Professional; 1 edition (July 8, 1999)

中文版:《重构:改善既有代码的设计》

译者:熊节

出版社:人民邮电出版社; 第2版 (2015年8月1日)

那时候当我读这本《重构:改善既有代码的设计》时,由于它在关于代码异味的单独章节所花的篇幅,使得这本书非常值这个价。该书非常成功,因为它使重构和代码异味的观念成为主流。

Steve Yegge曾对这本书不吝赞誉之词:

2003年10月,我第一次阅读这本书,有一种不寒而栗的感觉。如果你意识到,当你想离职时,你已经工作5年。转天我就随意问周围:“嗯,你已经读过重构方面的书,对吧?我只是随便问问,因为我很久以前读过,当然不是现在。”在我所调查的20个人中,只有一个人读过。感谢上帝,所有的人都很尴尬,不只是我。

……

如果你是资深工程师,你会发现该书中至少80%,都是你所熟知的东西。但该书罗列了所有的名称,并客观地讨论这些技术的利弊,这一点很有用。它戳穿了我刚成为程序员时所珍藏的若干个“秘籍”的真相。不注释代码?局部变量是万恶之源?这疯子是狂人吗?要不要阅读这本书,取决于你自己!

《Peopleware》

作者:Demarco、Lister

出版社:Addison-Wesley Professional; 3 edition (June 28, 2013)

中文版:《人件(原书第3版)(珍藏版)》

译者:肖然、张逸、滕云

出版社:机械工业出版社; 第1版 (2014年9月1日)

在大学时我读到这本《人件》,该书似乎很令人信服,甚至所有的研究结果都支持该书的观点:不设置截止日期就比设置截止日期要好;办公室比隔间要好,等等。所有开发人员跟我讨论的时候,基本都赞同这些观点。

但实际上每家成功的公司都是以截然不同的方式运作的。甚至微软公司也从个人办公室转为开放式办公室进行了建筑改造。是不是这些观点都无所谓?如果真的很重要的话,那些公司怎么会成为真正信徒,像Fog Creek公司不去践踏竞争对手?

因为该书符合我的“偏见”,我就希望这本书是正确的。但是,荟萃分析(InfoQ注:Meta分析,指将多个研究结果整合在一起的统计方法)的理念让我用鉴定的眼光重读来查证主要来源。

《Renegades of the Empire》

作者:Drummond

出版社:Crown; 1 edition (November 16, 1999)

《Renegades of the Empire》讲述了DirectX历程的故事。它还揭示了今天的微软狼性文化是怎么形成的。阅读介绍:

微软未必会雇佣像盖茨的人(虽然企业园区有不少这样的人),但会招聘那些有着更为显著的盖茨特征的人——傲慢、进取心和高智商。

……

因为嘲笑某人的想法是“愚蠢的”,或者更为槽糕的是,“胡说八道”——盖茨因此臭名昭著——只是为了看他如何捍卫一个位置。这种敌对的管理技术贯穿一系列的命令,创造了一种冲突的文化。

……

微软建立了达尔文的秩序,资源经常被掠夺,囤积力量、财富和威望。一名外出休假的经理回来时可能会发现他的部门被竞争对手袭击,他的项目被勒令降级或者完全取缔。

在微软面试:

“你喜欢微软什么呢?”“比尔踢屁股。”St. John说,“我喜欢踢屁股。我喜欢那种扼杀竞争对手和支配市场的感觉。”

结果St. John被雇佣了。多年来他没有犯任何错误。这本书就讲述了他的故事,以及像他那样的员工的故事。如果你想在微软公司谋差,你就需要读这本书。我希望我加入之前就读过这本书而不是之后!

数学

为什么要关注数学?从纯ROI(InfoQ注:Return On Investment,投资回报率)观点来看,我怀疑,对于99%的工作,学习数学是值得的。据我所知,我用数学比大多数程序员要多,但我并没有那么经常使用数学。不过,有正确的数学背景可能会派上用场。我很享受学习数学的乐趣。

《Introduction to Probability》

作者:Bertsekas

出版社:Athena Scientific; 2nd edition (July 15, 2008)

中文版:《概率导论(第2版)》(修订版)

译者:郑忠国、童行伟

出版社:人民邮电出版社; 第1版 (2016年1月1日)

《概率导论》是入门的大学课程,对 阐述定义比较严谨、直观。对任何关心严密推导的读者而言,该书后面有一些更为详细的习题。有很多可用解决方案的练习题,使得本书更适宜作为自学用书。

《A First Course in Probability》

作者:Ross

出版社:Pearson Prentice Hall; 8th edition (January 7, 2009)

中文版:《华章教育·华章数学译丛:概率论基础教程(原书第9版) 》

译者:童行伟、梁宝生

出版社:机械工业出版社; 第1版 (2014年1月1日)

为了使学生购买《概率论基础教程》,该书经常推出新版本,亚马逊定价更是高达174美元,我曾跟作者请教过这个问题,他抱怨说,这几年,二手书市场破坏了教科书的收入,而作者的版税并不多,所以要有更多收入,就不得不保持每两年推出新版的节奏来保证版税收入。

新作者要编写前人著过的经典书籍,经常大发牢骚,因为最早的作者通常比后来的作者拿更多的版税,即使他的后续版本并没有什么更新。

我在Wisconsin学习概率学的时候,该书是一本标准的教科书。我真的想不起有谁发现这本书有所帮助。

《Introductory Combinatorics》

作者:Brualdi

出版社:Pearson; 5 edition (January 7, 2009)

中文版:《组合数学(原书第5版) 》

译者:冯速

出版社:机械工业出版社; 第1版 (2012年5月1日)

Brualdi是一名大教授,是我大学生涯最好的教授之一。但是他著的《组合数学》充满了错误,而且也不特别清晰。自从我使用该书后,有两个新版本,但从亚马逊评论来看,这本书仍然有很多错误。

至于另一本基础入门型的教科书,我听过关于Camina和Lewis合著的《An Introduction to Enumeration (Springer Undergraduate Mathematics Series)》好消息,但我自己没有读过。此外,Lovasz的《Combinatorial Problems and Exercises (AMS Chelsea Publishing)》是一本关于组合数学的名著,但它并未被广为人知。

《Calculus》

作者:Apostol

出版社:Wiley; 2nd edition (January 16, 1991)

《Calculus》第一卷涵盖了你所期望的微积分I和微积分II的内容。第二卷涵盖了线性代数和多元微积分。在多元微积分之前,讲述线性代数,这样使得多元微积分更易理解。

从编程角度来看,微积分学也是很有意义的。因为我在微积分得到的价值观就是近似应用等等。教授这一连串的概念,很清晰。

如果你没有教授或助教帮你的话,该书可能是一本粗略的入门书。Spring SUMS系列丛书在各门功课上更易自学,但我并没有读过它们的微积分书籍,因此,我不敢妄下结论来推荐。

《Calculus》

作者:Stewart

出版社:Cengage Learning; 7 edition (2012)

中文版:《微积分(第六版)》(双语教材)

译者:张乃岳

出版社:中国人民大学出版社; 第1版 (2014年10月1日)

《微积分》是那些作者通过无关紧要的变更推出新版来赚钱的众多书籍中的一本。这是Wisconsin大学Non-Honor学位的标准教科书。结果是,我教了很多人用Apostol的那本书所教授的方法来计算复杂的微积分,对许多人而言,更直观一些。

该书采用的方式是,对于某种类型的问题,你应该将该模式匹配很多可能的公式,然后套用该公式。而Apostle更多的是教授你一些技巧和直觉,让你足以应付各种各样的问题。我不知道你为什么会买这本书,除非你需要一些类。

硬件基础

为什么要关注硬件基础?人们经常宣称,要成为优秀程序员,你必须理解所用的每一个抽象概念。这是无稽之谈,因为现代计算过于复杂,以至于任何人都不可能真正完全理解到底发生了什么事情。事实上,现代计算之所以能高效完成它所做的工作,是因为它不需要程序员深入了解底层的相关内容,大部分也低于你的水平。

话虽如此,如果你对底层软件充满好奇,这里有一些适合你的入门书籍。

《nand2tetris》

作者:Nisan、Shocken

如果你只想读一本单一内容的书,那么非这本《nand2tetris》莫属。它是一本关于逻辑门和布尔逻辑的“101级”入门书。正如书名所示,它带你从与非门(NAND gate)到编一个可用的俄罗斯方块游戏。

《Fundamentals of Logic Design》

作者:Roth

出版社:CL Engineering; 5 edition (June 11, 2003)

《Fundamentals of Logic Design》在关于逻辑门和逻辑设计的细节上比《nand2tetris》还要多。该书有大量习题,似乎是为自学而著。注意,上面的链接是第五版,目前有更贵的新版本,但似乎没有什么改进,而且新版也有很多错误,而且更昂贵。

《CMOS VLSI Design》

作者:Weste、Harris、Bannerjee

出版社:Pearson; 4 edition (March 11, 2010)

中文版:《CMOS超大规模集成电路设计(第4版) 》

译者:周润德

出版社:电子工业出版社; 第1版 (2012年7月1日)

逻辑门下一级的就是VLSI(very large scale integration),即超大规模集成电路。然而,在今天真的没有任何意义。

《CMOS超大规模集成电路设计》比其他书籍更有广度和深度,并且阐述极为清晰。在探索设计空间,比如,加法器的章节,不仅仅提及了几种不同的类型,而且也提供了问题和解决方案,非常适合自学。

《CMOS Digital Integrated Circuits》

作者:Kang、Leblebici

《CMOS Digital Integrated Circuits》是Wisconsin当前的教科书。但这本书很难跟上,助教基本上重新解释了几乎所有的必要项目和考试。我觉得它是参考书而不是用来学习的读物。

与West等人相比,Weste 花费了更多的精力讨论设计中的折衷,如,创建并行前缀树加法器时,在设计空间的某个特定点,它意味着什么?

《Semiconductor Device Fundamentals》

作者:Pierret

出版社:Addison Wesley; 2nd edition (April 12, 1996)

超大规模集成电路(VLSI)下一级,也就是晶体管,你将了解晶体管实际上是如何工作的。

《Semiconductor Device Fundamentals》真正完美地解说了固态设备(SSD)。该书指出了你要真正理解诸如波段图解的这些东西,需要知道什么。然后用这些基础原理和清晰的解释,给你建立一个良好的思想模型,理解不同类型的交汇点和设备的工作原理。

《Pentium Pro and Pentium II System Architecture》

作者:Shanley

出版社:Addison-Wesley Professional; 2 edition (January 10, 1998)

与本文提到的其他书不同,《Pentium Pro and Pentium II System Architecture》是关于实践而非理论。它有点像Windows内部,因为它涉及一个真实的工作系统的细节。主题包括硬件总线协议、I/O实际上是如何工作的(如APIC,Advanced Programmable Interrupt Controller,即高级可编程终端控制器)等等。

实际介绍的问题,就是从8080的CPU以来,复杂性一直呈指数级的增长。当你学得越深,你就越容易理解系统重要的可移动部分,而知识越不相关。因为总线和I/O协议不得不操作多处理器,这本书似乎妥协了,这些系统包含了现代系统中的许多元素,只不过是以更简单的形式。

未尽事宜

在这些我喜欢的读物中,我会说,这些图书中,软件读物最多占据25%、硬件读物占据5%。一般说来,未在清单中罗列出来的读物更为专业。清单还缺少很多领域的主题,如PL,关于如何学习编程语言的实用书籍、网络等等。

未涉及某些领域的原因有多种,比如我没有列出任何PL相关书籍,因为我不阅读PL方面的书籍。我没有提到网络是因为我虽然读过一些书,但我这方面的了解程度不足以提供有用书籍的建议。

绝大部分硬件相关的书籍都没有包含在内,因为它们涉及到你不会关心的内容,除非你是专家(比如容错电路设计(《Skew-Tolerant Circuit Design (The Morgan Kaufmann Series in Computer Architecture and Design》,Harris著)或超快光学《Ultrafast Optics》,Weiner著))同样也适用于数学和计算机科学理论。

我遗落了相当数量的一些我认为是名著的读物,因为在我日常编程生活中基本没有机会用到,比如极值组合论(Extremal Combinatorics)。我也没有罗列那些我没有读完的书籍,除非我停下来,因为这些书籍极为晦涩难读。因为我没有读完像SICP和The Little Schemer的书籍,这意味着我无法列出经典的清单。那些书籍很好,只是我没有完成阅读的原因。

清单中还不包括历史和文化相关的书籍,像《Inside Intel》或《Masters of Doom》。我可能会在未来某个时候,在清单中添加一个类别,就是我一直尝试的实验,像Julia Evans(意识流,文字更少或者没有草稿)那样撰写。

我必须回去重读十多年前曾经阅读过的书,然后写出有意义的评论,但这不符合我这个实验。关于这一点,因为这份清单是根据我记忆写的,几年前我就几乎没再读过那些所有的书,而且可能有所遗忘很多书,我打算日后将补充。

今日荐号:细说云计算

探讨云计算的一切,关注云平台架构、网络、存储与分发。这里有干货,也有闲聊。

今日荐文

点击下方图片即可阅读

大规模Nginx平台化实践,

京东能提供哪些参考经验?

喜欢我们的会点赞,爱我们的会分享!

高、中、低到底有多大差距?6款NVMe M2 SSD对比评测

随着主板、CPU内置PCIe 3.0通道数的大幅增加,以及NVMe SSD技术的成熟、价格的下调,特别是近期闪存与SSD价格整体的大幅下跌,NVMe SSD的普及度得到迅猛提升,其中又以体型小巧、安装方便、价格相对较低的NVMe M.2 SSD最受市场、用户的关注。所以当本刊才于6月初制作了《到底比SATA强多少?2018 5款NVMe SSD新品实战体验》文章后(该文已测试4款NVMe M.2 SSD新品,如需了解三星、台电、十铨、威刚部分产品的用户,请点击打个响指就能灭掉SATA SSD? 快来领教5款NVMe SSD的真实实力阅读),随后应读者要求我们又特别再次收集了6款2018 NVMe M.2 SSD新品,涵盖高、中、低三类M.2 SSD。

接下来就让我们一起通过多项实战测试来了解不同定位、不同配置的M.2 SSD在性能表现上到底有何区别?在预算范围内,到底哪款M.2 SSD能满足你的需求?

NVMe+3D NAND TLC成M.2 SSD新趋势

对于M.2 SSD这类产品,最初不少人可能会认为它那小巧的体形就是为小型计算设备而量身打造的,但不曾想历经几个阶段的发展后,M.2 SSD也成为性能的代言人。与传统SSD相比,最初的M.2 SSD大多采用的也是SATA主控芯片,与2.5英寸的SATA SSD其实没有本质的区别,仍受限于600MB/s的接口带宽。后来一些M.2 SSD也采用了早期的PCIe主控芯片,如浦科特的M6e、金士顿的HyperX Predator系列,这些SSD分别采用了PCIe 2.0 x2、PCIe 2.0 x4的主控,其传输带宽提升到了1GB~2GB/s。

而在NVMe技术普及后,NVMe主控自然也就在M.2 SSD中得到了大量应用。除了老旧的SATA主控,即便相对于PCIe主控,NVMe主控也有巨大的优势—要知道NVMe SSD主控的起步标准就是支持PCIe 3.0 x2,拥有2GB/s的接口带宽,而支持PCIe 3.0 x4的NVMe主控芯片则能提供高达4GB/s的传输带宽。

▲NVMe主控大幅降低了延迟,提升了并行读写性能。

同时NVMe主控大幅加强了并行读写性能,允许存储系统一次最多可执行64K(64000个)队列,并且允许每个队列拥有64K的命令。而之前固态硬盘使用的AHCI标准仅支持存储系统一次最多执行1个队列,每个队列32条指令。

此外NVMe标准对多核心处理器进行了更好的优化,新加入的中断模式可以让多个处理器核心同时向NVMe控制器发出命令。同时比起AHCI技术标准,NVMe可以降低控制器和软件接口部分的延迟,NVMe精简了调用方式,执行命令时不需要读取寄存器,而AHCI每条命令则需要读取4次寄存器,一共会消耗8000次CPU循环,从而造成2.5微秒的延迟。

闪存方面,与传统SSD类似,大部分M.2 SSD也从早期使用MLC、SLC颗粒转换到现在全面使用TLC颗粒,而在2018年更加流行的则是3D NAND TLC颗粒。对厂商来说,采用3D NAND TLC颗粒最主要的好处就是降低成本,如西数与东芝联合开发的BiCS 3D闪存现在最高已实现了64层堆叠,其单颗核心容量达到64GB,而之前闪存颗粒的核心容量只有16~32GB,这意味着闪存颗粒单位面积下的容量翻倍。

另一方面,部分3D NAND TLC颗粒还明显提升了写入性能,同时厂商也为TLC SSD设置了特别的SLC CACHE即把用于OP保留空间的闪存模拟为SLC闪存。当然一旦写入大容量数据的话,还是很容易出现缓存溢出,遇到性能不济的3D NAND TLC颗粒,其连续写入速度直接降低到100MB/s左右,甚至100MB/s以内。

▲3D NAND TLC颗粒是占据2018年M.2 SSD市场的主力。

总之NVMe主控+3D NAND TLC颗粒就是当前M.2 SSD的主流硬件配置形态,那么我们将如何测试才能反映出它的真实性能呢?

我们如何测试

测试平台

处理器:Core i7-8700K

主板:华硕TUF Z370-PLUS GAMING

显卡:GeForce GTX 1080

内存:宇瞻黑豹极光DDR4 3200 8GB×2

电源:安钛克(Antec)HCG850 GOLD

操作系统:Windows 10专业版

基准测试

在这部分测试中,我们将使用可以同时显示固态硬盘传输速度、IOPS的Anvil's Storage Utilities基准测试工具,除了常规的1GB文件测试外(注:读1GB、写1GB,实际写入2GB测试文件),我们还将采用32GB文件测试(注:读32GB、写32GB,实际写入64GB测试文件),以测试在使用大容量文件时,固态硬盘的真实性能,会不会因为耗尽SLC CACHE而掉速。

SLC CACHE缓存容量与全盘写入性能解析

通过HD TUNE PRO全盘写入测试,进一步测试固态硬盘SLC CACHE缓存容量的具体大小,以及其真实的写入性能,TLC颗粒是否会拖累固态硬盘的写入性能。

游戏与程序应用性能

通过涵盖游戏、Adobe PhotoShop、InDesign、After Effects、Word、Excel等9种应用软件的PCMark 8存储性能测试,以及实际启动《绝地求生:大逃杀》、《使命召唤:二战》两款游戏,考察固态硬盘的游戏与程序应用性能。

发热量测试

使用专业的PASS MARK BurnInTest PRO对固态硬盘进行连续15分钟读写的烤机测试,考察每款M.2 SSD的温度。

PCIe 3.0 x2主流NVMe SSD

威刚XPG-SX6000系列 256GB

接口:PCIe 3.0×2

主控:瑞昱RTS5760 4通道

闪存:美光 3D NAND TLC

板型:M.2 2280

质保时间:5年

参考价格:449元

这款SSD采用了来自瑞昱的RTS5760 PCIe 3.0 x2主控芯片,它采用四通道读写设计,闪存方面,它则搭配了美光研发、威刚封装的3D NAND TLC闪存,并配备一块散热片。

基准性能测试

受限于PCIe 3.0 x2接口,这款SSD的传输带宽不会特别高,从测试来看,它的连续读取速度在916.74MB/s,低队列深度随机4KB读取性能则维持在主流水准,约7761.11IOPS。而让人感兴趣的是它的写入性能,在1GB容量测试上,它的连续写入速度就达到910.22MB/s。而在我们将写入容量大幅提升到32GB后,它的写入性能并没有大幅下跌,仍保持在661.78MB/s。

▲1GB文件测试成绩

▲32GB文件测试成绩

SLC CACHE缓存容量与全盘写入性能解析

在HD TUNE PRO的全盘写入测试中,虽然测试中它的写入速度没有达到基准测试中的那么高,但在大约前90GB容量的文件写入中,它的写入速度都维持在350~470MB/s左右,表明它拥有一个较大的SLC CACHE,这显然也是它为什么不易掉速的原因所在。当然如果写入容量超过90GB,写入速度则会大幅下跌至不到100MB/s,数据就比较难看了。

▲SLC CACHE容量大约有90GB,因此在日常应用中写入掉速不会太明显。

游戏与程序应用

它的游戏启动时间也与其他产品的表现差不多——《使命召唤:二战》游戏上的启动时间在8.34秒左右,在《绝地求生:大逃杀》上的启动时间在12.84秒。而在PCMark 8测试中,得益于较大的SLC CACHE缓存容量,这款SSD在测试中的总成绩仍突破5000分,在InDesign、After Effects等常规软件的读写中,其任务执行时间与高端SSD的差距都不到1秒,即便在写入5640MB数据的PhotoShop重载任务中,它也只多耗时约5秒。

▲威刚XPG-SX6000系列 256GB PCMark 8存储性能

发热量测试

由于配备了散热片,因此在15分钟的BurnInTest PRO SSD满载测试时,这款SSD的工作温度并不是特别高,测试结束时的工作温度在73℃。

PCIe 3.0 x2中端NVMe SSD

金士顿A1000系列 480GB

接口:PCIe 3.0×2

主控:群联PS5008-E8 4通道

闪存:东芝 3D NAND TLC

板型:M.2 2280

质保时间:5年

参考价格:999元

这款SSD采用了来自群联科技的PS5008-E8四通道主控芯片,带宽为 PCIe 3.0 x2。闪存方面它则配备了基于东芝技术,金士顿封装的64层堆叠3D NAND TLC颗粒。

基准性能测试

尽管它的接口带宽只有PCIe 3.0 x2,但群联PS5008-E8显然拥有更强的性能,其连续读取速度达到1310.3MB/s。而在写入性能上,在使用1GB容量测试时,与其他同级产品类似,其写入速度也可以达到910.22MB/s,在使用32GB容量测试时,其写入速度同样会出现明显下跌,不过写入速度仍能保持在近400MB/s。

▲32GB文件测试成绩

SLC CACHE缓存容量与全盘写入性能解析

金士顿A1000系列 480GB SSD初段的写入速度在400MB/s到720MB/s左右波动,随后在写入容量达到约40GB时,速度稳定在接近500MB/s,在写入约110GB后,写入速度则下调至接近400MB/s,最后在写入容量达到约450GB时,垃圾回收开始,速度进一步下跌,但最低速度也控制在270.3MB/s左右,因此其全盘写入速度可以控制在400.8MB/s,比很多PCIe 3.0 x4主流M.2 SSD都要好得多。

▲金士顿A1000系列 480GB SSD的全盘平均写入速度可以达到408.8MB/s

游戏与程序应用

在游戏应用中,金士顿A1000系列 480GB SSD还是有较好的表现,《使命召唤:二战》的启动时间不到8秒,《绝地求生:大逃杀》的启动时间为12.75秒。在PCMark 8存储性能测试中,它也获得了5000出头的评分,得益于较高的写入速度,它在写入5640MB数据、读取468MB的PhotoShop重载任务中,其任务耗时只有353.4秒,与高端产品相比只有约3秒的差距。

▲金士顿A1000系列 480GB PCMark 8存储性能。

发热量测试

尽管没有配备散热片,但这款金士顿A1000系列480GB SSD的发热量也不算很大,在15分钟的BurnInTest PRO SSD满载测试结束时的温度为74℃,与一些配备散热片的产品相比也没有高不少,表现不错。

PCIe 3.0 x4主流NVMe SSD

铭瑄复仇者NM5 M.2 240GB

接口:PCIe 3.0×4

主控:慧荣2263XT 4通道

闪存 英特尔:3D NAND TLC

板型:M.2 2280

质保时间:3年

参考价格:409元

这款SSD采用了四通道无需缓存设计的慧荣2263XT PCIe 3.0 x4主控芯片,并搭配编号为“29F0IT2ANCTH2”的英特尔64层堆叠3D NAND TLC闪存颗粒,但没有配备散热片。

基准性能测试

与PCIe 3.0 x2的主流NVMe SSD相比,借助带宽优势,铭瑄复仇者NM5 M.2 240GB的连续读取速度已接近2000MB/s,同时这款SSD也表现出不错的随机4KB读取性能,在QD1低队列深度下也达到15915.42IOPS。而在使用1GB容量测试文件时,其连续写入速度也突破1200MB/s大关。不过如使用32GB文件进行测试时,因为实际写入测试文件达64GB,这款SSD的写入速度就会出现明显掉速。

▲1GB文件测试成绩

▲32GB文件测试成绩

SLC CACHE缓存容量与全盘写入性能解析

从测试图可以看到这款SSD的缓存容量的确不算太大,不到36GB,在写入36GB以后,SSD的写入速度则会出现下跌到156MB/s左右。而在写满约204GB之后,SSD则会进行积极的垃圾回收,一边清理出空白块,一边进行写入,因此写入速度会下跌到100MB/s以下,最低写入速度只有87.5MB/s。

▲SLC CACHE容量不到36GB,耗尽后写入掉速比较明显。

游戏与程序应用

这款SSD在《使命召唤:二战》游戏上的启动时间只有8.02秒,在《绝地求生:大逃杀》上的启动时间也只有12.63秒。而在PCMark 8存储性能测试中,铭瑄复仇者NM5 M.2 240GB 5009的总分则只与PCIe 3.0 x2产品相当。较差的写入性能有时还是会拖后腿,如在写入5640MB数据的PhotoShop重载任务中,它那374秒的耗时就明显比其他NVMe SSD要长一些。

▲铭瑄复仇者NM5 M.2 240GB PCMark 8存储性能

发热量测试

由于没有配备散热片,没有任何辅助散热措施,因此在结束15分钟BurnInTes t SSD满载测试时,铭瑄复仇者NM5 M.2 240GB最后的工作温度要高于那些配备了散热片的产品,达到76℃。

PCIe 3.0 x4主流NVMe SSD

阿斯加特AN系列256GB

接口:PCIe 3.0×4

主控:慧荣SM2260 8通道

闪存:美光大S 3D NAND TLC

板型:M.2 2280

质保时间:5年

参考价格 :379元

这款SSD采用了支持PCIe 3.0 x4接口、8通道设计的慧荣SM2260,并搭配来自美光大S(SpecTek)的3D NAND TLC颗粒。此外,该产品还配备了一块铝制散热片。

基准性能测试

借助PCIe 3.0 x4通道,这款SSD的读取速度也可轻松突破2000MB/s。同时它还拥有不错的低队列深度随机4KB读取性能,IOPS达到16228.46IOPS。写入性能方面,在使用1GB文件时,它的连续写入速度可达992.25MB/s,总分轻松上万。不过在换用32GB大容量文件,实际写入测试文件为64GB,耗尽其SLC缓存后,它的连续写入性能则会剧烈下降至仅仅141.84MB/s。

▲32GB文件测试成绩

SLC CACHE缓存容量与全盘写入性能解析

从HD TUNE PRO全盘写入测试可以,这款SSD的SLC CACHE容量大约有31~32GB左右,在这个范围内进行写入的话,连续写入速度可以保持在接近1000MB/s,不过如超过此容量,它的写入速度就会大幅下降,仅仅只有120MB/s左右。而在写入容量超过200GB后,SSD会开始积极地进行垃圾回收,写入速度进一步下降到100MB/s以内。

▲SLC CACHE容量在32GB左右,耗尽后写入掉速比较明显。

游戏与程序应用

凭借非常不错的低队列深度随机4KB读取性能,这款SSD在《使命召唤:二战》游戏上的启动时间只有7.41秒,在《绝地求生:大逃杀》上的启动时间也只有12.29秒。同时在反映一般程序应用的PCMark 8存储性能测试中,它的表现还是令人满意。其总分达到5041,在写入5640MB数据的PhotoShop重载任务中,其任务耗时只有352.6秒,即便与高端产品相比也没有太大的差距。

▲阿斯加特AN系列256GB PCMark 8存储性能。

发热量测试

得益于散热片的配备,阿斯加特AN系列256GB在运行15分钟BurnInTest Pro SSD满载测试时,其发热量明显小于那些没有散热片的产品,工作温度为71℃,要稍微凉爽一些。

PCIe 3.0 x4中端SSD

建兴睿速系列T10 PLUS 512GB

接口:PCIe 3.0×4

主控:忆芯STAR1000 8通道

闪存:东芝 3D NAND TLC

板型:M.2 2280

质保时间:3年

参考价格:999元

这款SSD采用了由中国忆芯科技研发的忆芯STAR1000 NVMe SSD 8通道PCIe 3.0 x4主控芯片,并搭配东芝原厂3D NAND TLC颗粒。此外它还配备了一块印有中国风Logo,做工厚实的红色散热片,用户可自行安装。

基准性能测试

从基准测试来看,睿速系列T10 PLUS 512GB在1GB容量测试下就表现出了不错的性能—连续读写速度双双破千兆每秒,随机4KB QD16 IOPS更高达302851.7IOPS。而在我们将测试容量提升到32GB后,其写入速度也会出现明显下降,不过仍能稳定在531.73MB/s,因此其测试总成绩仍能突破7000分。

▲1GB文件测试成绩

▲32GB文件测试成绩

SLC CACHE缓存容量与全盘写入性能解析

从全盘写入测试来看,睿速系列T10 PLUS 512GB的SLC CACHE应该不大,在测试刚开始就掉速,不过其在写入大约前70GB容量时,连续写入速度都能保持在430~500MB/s左右,能够满足大部分用户的日常应用。但在超过这个范围后,T10 PLUS 512GB的写入速度就会出现剧烈波动,最低可到35.4MB/s,因此它的全盘平均写入速度并不高,只有293.8MB/s。

▲在写入速度超过70GB容量后,SSD的写入速度变得非常不稳定。

游戏与程序应用

睿速系列T10 PLUS 512GB在《绝地求生:大逃杀》中的启动上表现正常,启动时间为12.61秒,与其他产品差不多。但在《使命召唤:二战》游戏的启动中,经多次测试,其耗时始终要略多一点,在9.73秒左右。而在程序应用上,这款产品的PCMark 8存储性能测试成绩也略低一点,总分为4991。主要问题在于各项应用如InDesign、After Effects、Illustrator、Photoshop的耗时都要多一些,但差距不大,大多多消耗的时间也就在1秒以内。

▲睿速系列T10 PLUS 512GB PCMark 8存储性能。

发热量测试

虽然配有散热片,但这款SSD的发热量还是比较大,在15分钟的BurnInTest PRO SSD满载测试结束时,散热片比较烫手,软件侦测温度为75℃,用户需做好散热措施。

PCIe 3.0 x4高端SSD

西部数据 Black系列-3D版 1TB

接口:PCIe 3.0×4

主控:西部数据自研8通道主控

闪存:闪迪 3D NAND TLC

板型:M.2 2280

质保时间:5年

参考价格:待定

这款SSD采用了西部数据自行研发的三核心、8通道、PCIe 3.0 x4主控。闪存方面,它则搭配了闪迪64层 BiCS 3D NAND TLC颗粒,不过这款SSD没有采用任何辅助散热措施。

基准性能测试

显然,高端产品就的确具备高端产品的价值—在1GB文件测试中,它的连续读写速度均双双突破2000MB/s,14675.12的总成绩与其他产品拉开了大幅差距。而就算使用32GB文件测试,这款SSD的连续写入速度也没有太大下跌,仍保持在1668.35MB/s,在32GB文件测试下也能拿到12908.59分,让其他产品难以望其项背。

▲1GB文件测试成绩

▲32GB文件测试成绩

SLC CACHE缓存容量与全盘写入性能解析

在全盘写入测试中可以看到,它拥有一个超过100GB的大型SLC CACHE,在这个范围内写入的话,写入速度基本可以保持在1375MB/s以上,而在SLC CACHE耗尽后,它会一边清空SLC CACHE,一边写入数据,也就是说一些数据会在清理SLC CACHE的时候直接写入到闪存,一些数据则写入到SLC CACHE。因此写入速度时高时低,但最低速度也可达到639.3MB/s。所以这款产品拥有940.3MB/s的平均速度。

▲这款SSD拥有超过100GB的超大SLC CACHE,在耗尽缓存后,最低写入速度也在600MB/s

游戏与程序应用

在游戏应用中,这款SSD仅需7.71秒就可完成《使命召唤:二战》的启动;在《绝地求生:大逃杀》中的启动上,耗时也只需要12.61秒。在PCMark 8存储性能测试中,西部数据Black系列-3D版 1TB M.2 SSD获得了5063的高分,在各项应用中都能与其他SSD拉开小幅差距—如在PhotoShop重载任务中,它的执行时间比阿斯加特AN系列256GB少用2.5秒,在After Effects中的耗时也比铭瑄复仇者NM5 M.2 240GB少用1.1秒。

▲西部数据 Black系列-3D版 1TB PCMark 8存储性能

发热量测试

高性能显然还是带来了较高的热量,在15分钟的BurnInTest PRO SSD满载测试结束时,西部数据Black系列-3D版 1TB M.2 SSD的工作温度达到77℃。

高、中、低到底有何区别?

程序游戏应用差别不大

通过以上测试,不知大家对定位不同的高、中、低M.2 SSD有什么感觉?首先从程序体验来看,它们的差别的确不大,而且定位中、高端的NVMe M.2 SSD在程序、游戏应用上,相对于价格更低的产品也不能完全保证胜利。关键原因还是我们在之前的文章中所提到的—消费级应用更依赖低队列深度的随机4KB读写性能,而当前NVMe主控性能更突出的地方往往在它的高队列深度随机读写性能上,各类NVMe主控所谓几十万IOPS往往指的是其在高队列深度下的随机读写性能,在消费级应用中,这些性能则难有用武之地。

当然高端M.2 SSD在总体趋势上相对中、低产品还是保持着小幅领先,而如果你只是希望将M.2 SSD用作程序启动盘、系统盘、游戏启动盘等偏向随机读取应用,且预算有限,那么定位主流、中端的M.2 SSD就能满足需求。

高、中、低到底有何区别?

传输速度与掉速程度就是答案

高、中、低三类NVMe M.2 SSD它们最大的差距一还是在传输速度上,高端NVMe SSD的连续读写速度都可轻松突破2000MB/s,而定位中、低的NVMe M.2 SSD在读写速度上一般能确保双双过千就算不错了。另外PCI 3.0 x2 NVMe SSD在传输速度上会受限于带宽,在这部分指标上有明显的劣势,难以突破1400MB/s。

高、中、低三类NVMe M.2 SSD的另一大差别就在于掉速控制上。大家都知道TLC闪存颗粒的写入性能无法同MLC颗粒相比,因此才加入SLC CACHE来提升体验,但面对不同的用户、五花八门的应用,固态硬盘的SLC CACHE很有可能会遭遇耗尽的一刻,这时就需要比拼SLC CACHE的算法、TLC闪存颗粒的性能。

测试中主流SSD的SLC CACHE大多采用较“笨”的算法——先写入SLC CACHE,耗尽后直接写入闪存,因此在SLC CACHE耗尽后,如闪存颗粒性能差,就会为用户带来非常糟糕的体验,写入速度跌入不到200MB/s、甚至不到100MB/s。

而中端M.2 SSD如金士顿A1000系列480GB在算法上可能没有什么突破,但其闪存性能较好,可以保证在大部分的时间里,写入速度都维持在接近400MB/s,最低写入速度也能保持在250MB/s以上。而测试中的高端产品西部数据 Black系列-3D版 1TB就更加“聪明”,可以实时主动清理SLC CACHE,再加上优秀的闪存写入性能,使得其拥有高达940.3MB/s的全盘平均写入速度。

因此如果用户想尽量避免出现严重的掉速现象,那么切记不要仅仅被那些使用1GB容量测试,实际读写测试都在SLC CACHE中进行的光鲜测试所蒙蔽双眼,大容量文件读写测试、HD TUNE PRO全盘写入测试也是你需要参考的重要指标。

请重视固态硬盘原始形态发热量

最后对于M.2 SSD来说的另一大考察指标就是它的发热量,总体上来看配备散热片的产品在温度控制上要略好于M.2 SSD。但是大家也没必要 “歧视”那些没有散热片的M.2 SSD,它们没有配备散热片则能为用户提供更高的自由度。毕竟如果将它们用于超极本、超薄本等小型运算设备,这时还为M.2 SSD加装散热片的话,就有可能遭遇安装兼容性问题。

不过我们认为对于一款M.2 SSD来说,其销售形态就代表了它的使用形态,如原始形态没有散热片,那么就必须在该形态下保证固态硬盘能够稳定使用,否则就不是合格产品。而令人欣慰的是,在本次测试中,所有没有配备散热片的M.2 SSD尽管发热量稍高,但工作温度并没有大幅上升,而且在烤机测试中都没有出现任何错误。

▲此次使用BurnInTest测试SSD发热量的具体设置。一般而言,使用连续读写模式可以尽可能地提升SSD的工作温度。

▲买回M.2 SSD固态硬盘后,请即刻进行烤机测试,无需多长时间,一般15分钟即可,如出错或温度异常就立即退货。

但我们不能确保每款固态硬盘都具有这样的水准,在曾经的测试中,我们就遭遇了这样一款产品—没有配备散热片,短短几分钟的BurnInTest测试就出了10多个错,温度飙升到100℃,不得不紧急中止测试以防硬件损坏,这款产品的品质显然严重不达标。因此不管您购买的是高、中、低哪类定位的M.2 SSD,不管它身价如何,购买后请立即用BurnInTest这类软件进行检测,测试中如有错误、温度飙升就请立即退货。

相关问答

and 增加一个字母,可能是什么单词】作业帮

[最佳回答]hand手land陆地如果需要帮助,可以来问我噢

COM与非 怎么判断?

COM与非门(NANDgate)是一种基本的逻辑门,它具有两个输入和一个输出。两个输入信号都为真时,输出信号为假;否则输出信号为真。COM与非门的真值表如下:|输...

in-law's.她嫂子的两个女儿2.mysisterandbrotherin-law'sn...

[回答]in-lawn.姻亲Rowswithone’sin-lawsoftencreatedividedloyalties.与姻亲之间的矛盾常常让人两面为难.motherin-law岳母加...

TTL与非 的逻辑功能是什么?

与非门,同时输入两个高电平,则输出一个低电平,否则输出高电平的电路。逻辑表达式是:F=(AB)'。与非门(英语:NANDgate)是数字电路的一种基本逻辑电路。...非...

CMOS数字集成电路的标准 是指?

现在主流的集成电路器件还是CMOS,所以理论的结构还是基于CMOS。CMOS有N和P两种MOS组合组合在一起。CMOS最简单的器件就是反相器。然后是标准的逻辑门(与门和或...

与非是什么芯片?

与非门(英语:NANDgate)是数字电路的一种基本逻辑电路。是与门和非门的叠加,有多个输入和一个输出。若当输入均为高电平(1),则输出为低电平(0);若输入...与...

on和 and 的区别?

on释义:prep.在……之上;向,朝;关于;在……时候;由……支撑;(身上)带着;一……就;吃,喝;接近;根据;挣……钱;以……支付;以……为燃料;在…...on释义:prep...

“非 ”是什么意思?

非门是一个输入端,一个输出端的器件,它的作用是使输入信号反向。与非门是数字电路的一种基本逻辑电路。若当输入均为高电平(1),则输出为低电平(0).门电...

nand2 在multisim什么位置?

NAND2是一种数字逻辑门电路,在Multisim中您可以在工具箱中找到。在Multisim界面的左侧,工具箱下面是逻辑门选项卡,其中包含各种逻辑门电路。单击其中的“NAND...

什么是与非 ?

与非门(英语:NANDgate)是数字电路的一种基本逻辑电路。是与门和非门的叠加,有多个输入和一个输出。若当输入均为高电平(1),则输出为低电平(0);若输入中...与...

 周开旺  龙岩莲花山公园 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部