fix Chinese grammar mistakes (#57)
Co-authored-by: 许睿 <xurui@xuruideMacBook-Pro.local>
This commit is contained in:
parent
276fe4fe16
commit
7d0a251d80
@ -6,7 +6,7 @@
|
||||
|
||||
所有内容将根据CC-BY-SA进行许可。
|
||||
|
||||
本书分为不同的部分:
|
||||
本书分为以下几节:
|
||||
|
||||
1) 编写高性能软件的基本技巧
|
||||
* CS 101-level的东西
|
||||
@ -23,13 +23,13 @@
|
||||
|
||||
### 何时何地做优化
|
||||
|
||||
我先把这个放在第一位,是因为这真的是最重要的一步。你曾经也应该这样做吗?
|
||||
我先把这个放在第一位,是因为这真的是最重要的一步。你真的应该这么做吗?
|
||||
|
||||
每个优化都有成本。通常,这个成本是用代码复杂度或认知负载来表示的 - 优化后的代码很少比未优化的版本简单。
|
||||
每个优化都有成本。通常,这个成本是用代码复杂度或认知负载来承担的 - 优化后的代码很少比优化前的版本简单。
|
||||
|
||||
但另一方面,我将称之为“优化经济学”。作为程序员,你的时间是宝贵的。你可以为你的项目工作的机会成本,哪些错误需要修复,以及需要添加哪些功能。优化的工作是很有趣的,但并不总是正确的选择。性能是一项功能,但代价和正确性也是如此。
|
||||
但另一方面,我称之为“优化经济学”。作为程序员,你的时间是宝贵的。你可以为你的项目工作的机会成本,哪些Bug需要修复,以及需要添加哪些功能。优化的工作是很有趣的,但并不总是正确的选择。性能是一种特性,但交付和正确性也是如此。
|
||||
|
||||
选择最重要的工作。有时它不是一个实际的CPU优化,而是一个用户体验。就像添加进度条一样简单,或者通过在渲染页面后在后台执行计算来提高页面的响应速度。
|
||||
选择最重要的工作。有时它不是一个实际的CPU优化,而是一个用户体验。就像添加进度条一样简单,或者在渲染页面后通过在后台执行计算来提高页面的响应速度。
|
||||
|
||||
有时这是显而易见的:在三小时内完成的报告在一小时完成可能不太有用。
|
||||
|
||||
@ -111,9 +111,9 @@ TODO:如何跟踪一段时间的性能表现?
|
||||
|
||||
本书主要讨论如何减少CPU使用率,减少内存使用量并减少延迟。很高兴指出你很少能做到这三点。也许CPU时间更快,但现在你的程序使用更多的内存。也许你需要减少内存空间,但现在该程序需要更长的时间。
|
||||
|
||||
[阿姆达尔定律](https://en.wikipedia.org/wiki/Amdahl%27s_law)告诉我们要关注瓶颈。如果你将运行时间仅占5%的例程速度提高一倍,那么整个挂钟的速度只有2.5%。另一方面,将80%的时间加速10%的例程将使运行时间提高近8%。配置文件将有助于确定实际花费的时间。
|
||||
[阿姆达尔定律](https://en.wikipedia.org/wiki/Amdahl%27s_law)告诉我们要关注瓶颈。如果你将运行时间仅占5%的代码速度提高一倍,那么整个程序的速度只提升了2.5%。但是,将运行时间占80%的代码加速10%,整体运行时间将提高近8%。配置文件将有助于确定实际花费的时间。
|
||||
|
||||
优化时,你想减少CPU必须完成的工作量。Quicksort比气泡排序更快,因为它能以更少的步骤解决相同的问题(排序)。这是一个更高效的算法。你已经减少了CPU完成相同任务所需完成的工作。
|
||||
在做优化时,你想减少CPU必须完成的工作量。快速排序比冒泡排序更快,因为它能以更少的步骤解决相同的问题(排序)。这是一个更高效的算法。这样就减少了CPU完成相同任务所需完成的工作。
|
||||
|
||||
像编译器优化一样,程序调优通常只会在整个运行时间中造成一点小小的负担。大的胜利几乎总是来自算法改变或数据结构的改变,这是你的程序组织方式的根本转变。编译器技术有所改进,但速度很慢。Proebsting定律表明,编译器每18 年的性能翻倍,这与摩尔定律(稍微误解了解释)形成鲜明对比,该定律使处理器性能每18 个月翻一番。算法改进在更大的范围内工作。从1991年到2008年,混合器整数规划算法提高了30,000倍 有关更具体的示例,请考虑[此故障](https://medium.com/@buckhx/unwinding-uber-s-most-efficient-service-406413c5871d)取代优步博客文章中描述的蛮力地理空间算法,使用更适合于所提交任务的更专业的算法。没有编译器开关可以提供相同的性能提升。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user