《高阶Perl》——3.11 传播福音

简介: 本节书摘来自华章计算机《高阶Perl》一书中的第3章,第3.11节,作者(美)Mark Jason Dominus,译 滕家海,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.11 传播福音

如果你正尝试向一个C程序员解释为什么Perl好,自动的记忆术是一个好例子。几乎所有的程序员都熟悉缓存技术。即使他们没在自己的程序里使用过任何缓存技术,他们也一定熟悉这个概念,来自网页浏览器里的,他们的计算机的缓存内存里的,DNS服务器里的,他们的网页代理服务器里的,或别的地方的缓存。缓存,就像大多数简单实用的主意,是无处不在的。

增加缓存不是非常麻烦,但至少需要几分钟修改代码。算上所有修改,你有可能犯错,这不得不计算进平均时间,一旦你完成了,可能发现缓存是个糟糕的主意,因为缓存管理的开销比函数的运行时间更长,或者因为在一次典型运行中,缓存命中的没有期望的多;那么就不得不移除缓存代码,然后你再次冒着犯错误的风险。这不是夸大问题,当然,在每个方向上至少会花费几分钟。

有了记忆术,增加缓存代码不再需要几分钟了,只要几秒钟就可以了。可以增加一行这样的代码:

memoize 'myfunction';

然后就不可能犯下严重的错误和破坏函数。如果记忆术表明这是个糟糕的主意,你可以在一秒钟以内关闭它。多数程序员会对这样的便利满意的。如果你有五分钟向一个C程序员解释Perl比C好在哪里,记忆术是一个很好的例子。

相关文章
|
6天前
构建安全可靠的系统:第十一章到第十五章
构建安全可靠的系统:第十一章到第十五章
177 0
|
6天前
|
算法 API C++
Qt框架与STL库之间的巅峰对决:差异、优缺点及适用场景
Qt框架与STL库之间的巅峰对决:差异、优缺点及适用场景
167 0
|
11月前
|
前端开发
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(四)
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(四)
58 0
|
11月前
|
前端开发 流计算
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(六)
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(六)
102 0
|
11月前
|
前端开发 JavaScript
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(一)
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(一)
56 0
|
11月前
|
前端开发
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(五)
《css揭秘》- 47个不为人知的高阶操作🔥(下篇20-47, 7K长文多图预警)(五)
60 0
|
Python
【python学习小案例】提升兴趣之模拟系统入侵
【python学习小案例】提升兴趣之模拟系统入侵
【python学习小案例】提升兴趣之模拟系统入侵
|
机器学习/深度学习 量子技术 Python
PennyLane | 用于量子计算机可微分编程的跨平台Python库
PennyLane | 用于量子计算机可微分编程的跨平台Python库
201 0
PennyLane | 用于量子计算机可微分编程的跨平台Python库
异常传播 | Python从入门到精通:高阶篇之四十一
当在函数中出现异常时,如果在函数中对异常进行了处理,则异常不会再继续传播;如果函数中没有对异常进行处理,则异常会继续向函数调用处传播;如果函数调用处处理了异常,则不再传播,如果没有处理则继续向调用处传播;直到传递到全局作用域(主模块)如果依然没有处理,则程序终止,并且显示异常信息。
异常传播 | Python从入门到精通:高阶篇之四十一