软件优化悖论–你为什么要在乎?

摩尔定律结束了。就目前而言,我们正在反对自然法则,即构建晶体管的物理限制– 原子极限.
目前,英特尔的最佳制造方法生产的晶体管尺寸为14nm,而nVidia的晶体管尺寸为12nm,略胜一筹。尽管预计在未来几年中它们会缩小到5-7nm左右,但这似乎是我们可以做到的。超过这一点,晶体管将变得非常小,以至于量子效应会阻止它们正常工作。
这对于在这些处理器上运行的软件意味着什么?计算机科学家已经知道这一天将会到来一段时间,并且已经通过利用大规模并行处理和分布式计算进行了准备。云计算作为一种负担得起的技术的出现意味着软件工程师可以利用大量的分布式计算能力,从而允许其软件在全球范围内运行。
但是仍然存在问题。近年来,我已经将“过早优化”一词视为完全不进行优化的口头禅。这导致了某些高级和文件工程师的自满,并且作为80年代初期家庭计算革命的产物,这对我来说并不好。那时,优化是游戏的一部分,那时您必须为每个字节草花色–使用64KB可以完成的工作真是太神奇了。
让我们看一下node.js / npm的情况,作为我要提出的观点的现代示例。我最近看了一篇有趣的文章,真实地说明了 节点核心的问题之一.
在这种范例中,“代码膨胀”有了新的含义。即使是最简单的“你好,世界!”应用程序占用1.5MB的巨大空间!这不对。我知道我在这里听起来像个老货,但是在Web开发的初期,我们施加了90 KB的限制– including imagery –整个网页,否则我们无法保证良好的拨号体验。 (Z世代:是的,我们使用电话连接来拨打Internet服务提供商的电话–您甚至可以听到拨号音和数据传输的声音。
那么为什么这是一个问题,这里的矛盾到底是什么呢?好吧,我相信我们会因为没有选择在机会出现时进行优化而失去了宝贵的技能。矛盾的是,大量的创造力可以通过约束来实现。
为了说明这一点,我有三个例子:现代的场景,Oculus Rift和Banksy。
创建捕捉的“演示”的想法
特定设备的限制是
自从 80年代初,甚至可以说更早。这个想法是要“破解”游戏中的版权保护并与您的朋友分享(通常是通过盒式录音带),并增加一个介绍屏幕,以展示您作为编码员的技能。随着编码人员越来越熟悉计算机中处理器和其他芯片的复杂性,这些介绍屏幕变得越来越复杂。最终,这些演示都拥有了自己的生活,不再局限于游戏的简介/加载屏幕,而是拥有了自己的完整视听体验。

80年代最多产的“场景”是通勤者64场景。信不信由你,它至今仍然活着。编码人员正在设法找到使用64KB RAM和1MHz 6510处理器执行疯狂操作的方法。有展示的演示 视频流 –直到90年代中期,才有了功能更强大的多媒体PC,这才成为可能。同时,其他演示表明,可以通过一些巧妙地使用“未记录的操作码”(或俗称的非法操作码)。如果在VIC芯片和6510上没有硬性限制,就不会发明“任何给定的屏幕位置”,“灵活的行解释”和“多工画面”之类的技术。
硬件的物理约束迫使编码人员重新考虑可能发生的事情,并利用解决方案发挥创意。
对于更现代的示例,请查看Oculus团队取得的一些进步。视频延迟是将VR放到大脑不会虚弱和诱发晕车的地方的主要限制因素之一。
John Carmack(Oculus首席技术官–和我的个人英雄)经常谈到通过路由,网络软件和交换机(当然还有硬基础架构)方面的创新来解决网络延迟问题–同时,视频延迟直到现在一直不是问题。优秀的VR需要超越这些限制来克服上述问题,因此Oculus正确地在聪明上投入了大量时间 优化 以及可以使大脑完全沉浸的技术。毕竟,卡尔马克是乐观之王。
最后,我想谈一谈Banksy。他的作品在所有看到它的人身上都留下了不可磨灭的印记,并且总是传达着重要的信息,但是您看不到的是每件作品的计划量。
Banksy的限制因素是可用于实施许多人认为是非法活动的时间。只有几分钟,甚至可能只有几秒钟的时间来准备工作,这种约束导致幕后未知的创新,以确保其完美执行。有些作品的细节非常精致,因此模版制作必须同样如此。计划执行的工作,有时使用“工人”伪装和其他机制,也需要一定的天才。
外卖?优化是一项技能,这是一项基本技能。它不应该被简单地认为是“正确的事情”,而是一种通过受限的创造力来支持和支持创新的好方法。因此,作为工程师,我们有责任努力做到更好。

 

在脸书上分享
Facebook
分享到Twitter
Twitter
在linkedin上分享
LinkedIn

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

最近的帖子

文化,技能和能力//如何成为数据驱动型组织

在我们的白皮书“如何成为一个由数据驱动的组织中”,我们写了一个组织需要采取的五个步骤,它们是:成果:定义目标和指标以确保获得清晰和可衡量的结果分析:实施和共享分析,以改善数据驱动型决策创新:通过假设测试和学习来测试假设数据平台:获得新见解

Read More »

数据平台//如何成为更具数据驱动力的组织

这是我们关于“如何成为一个由数据驱动的更多组织”系列文章中的第四篇,我们将专注于数据平台。在这一点上,大多数人开始深入研究Data Lakes vs Data Warehouse的技术方面,但是我们想让我们回到一个更高的水平,并要求

Read More »

创新//如何成为更具数据驱动力的组织

在我们的白皮书“如何成为一个由数据驱动的组织中”,我们写了一个组织需要采取的五个步骤,它们是:成果:定义目标和指标以确保获得清晰和可衡量的结果分析:实施和共享分析以改善以数据为依据的决策制定创新:通过假设检验和学习来检验假设数据平台:获得新

Read More »

搜索博客

敏捷 Management Made Easy!

All About 敏捷

凯利·沃特斯(Kelly Waters)

“’Agile’ is one of the biggest buzzwords of the last decade. 敏捷 methods often come across as rather more complicated than they really are. This book is an attempt to unravel that complexity. To simplify the concepts. This book breaks the concepts into small bite-sized pieces that are easy to understand and easy to implement and delivers the message in a friendly and conversational style. Allaboutagile.com is one of the most popular blogs about agile on the web. ”

凯利·沃特斯

敏捷 101 is available to purchase. GAME ON!

敏捷 101

艾玛·霍普金森火花

“尽管有很多方法可以根据您拥有的团队和想要的学习成果来改变游戏,但是游戏的基本流程是所有人共有的。”
艾玛·霍普金森火花

我们为什么制作游戏?

怎么玩游戏?

伦敦

101种方式Limited
城市路145号
伦敦
EC1V 1AZ
英国

阿姆斯特丹

101种方式BV
Weesperstraat 61-105
1018 VN阿姆斯特丹
荷兰

联系我们

如果您想与101 Ways的团队之一联系,请填写以下表格或给我们发送电子邮件: contact-us@101ways.com.