fix Chinese grammar mistakes (#57)

Co-authored-by: 许睿 <xurui@xuruideMacBook-Pro.local>
This commit is contained in:
Helck 2020-07-28 02:12:41 +08:00 committed by GitHub
parent 276fe4fe16
commit 7d0a251d80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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)取代优步博客文章中描述的蛮力地理空间算法,使用更适合于所提交任务的更专业的算法。没有编译器开关可以提供相同的性能提升。