展开讨论

经验与复盘经验摘录 · 机器翻译

所以我曾在谷歌(还有Facebook)工作过,这真的让我明白了硬件到底有多便宜……

所以我曾在谷歌(还有Facebook)工作过,这真的让我明白了硬件到底有多便宜,以及大多数时候优化代码是多么不值得。十多年前,谷歌不得不开始管理数据中心的资源使用。每个项目都有预算。CPU核心、硬盘空间、固态存储、硬盘转轴、内存等等。这些通常可以相互转换,你可以看到它们的相对成本。有趣的是:尽管当时固态存储的价格是硬盘存储的约20倍,但由于转轴瓶颈,它往往更便宜。总之,所有这些都可以转化为软件工程师的工作时间,通常称为“毫-SWE”,即1个SWE一年工作量的千分之一。因此,项目可以在硬件上节省开支,雇佣更多人,或者在现有预算内雇佣更少的人但获得更多的硬件。我不记得一个SWE相当于多少个CPU核心,但据我回忆,大概是几千个。……

源讨论如果软件优化是优先事项,世界可以用更旧的硬件运行原帖 814 条评论 · 导入时统计
5

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 5

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

XO

除非你选择的是一个具有高工程成本的公司,拥有较大的利润率来承担额外的硬件成本,并且有很多项目供工程师们工作。 评估需要在利润率中进行,即使每年每美元节省几美分,也最好让这些工程师去做这件事,而不是让他们闲置。 问题在于几乎没有人这样做,因为我们的决策方式与背后的经济计算毫无关系,大多数人只是“效仿谷歌的做法”,这解释了为什么会有这么多的不协调。

完整原文
MI

我也在那工作过,你所说的性能是指每个项目中CPU的最优使用。 谷歌确实投入了大量精力在性能的另外两个方面:延迟和整体机器利用率。这两方面都是自上而下的指令,消耗了数千名工程师大量的时间和注意力。薪资成本非常高。但是,如果你的机器受到限制,你真的不希望有很多核心闲置,即使它们单独来看很便宜(因为等待新数据中心建设的机会成本很高)。如果你的使用对延迟非常敏感,那么为了业务指标而削减毫秒级的时间是合理的,而不是为了节省硬件成本)。

完整原文
AR

> 我不记得单个软件工程师(SWE)对应的CPU核心数量的具体数字,但据我回忆,大概是数千个。 我认为这在像谷歌这样的公司中是成立的,因为1)在他们的规模下,“一个核心”比平均水平要便宜得多,2)他们的薪资远高于平均水平。但对于一般的公司,甚至是大型公司呢?情况就大不相同了。 我认为这是一个典型的“Facebook/谷歌/奈飞等公司属于一个独特的类别,它们的大多数做法对你来说并不适用”的情况。

完整原文
KA

谷歌并不是为了好玩而开发更好的压缩和二进制序列化格式——这会改善他们的利润。

完整原文
SM

我不知道如何解决这个问题,甚至不知道它是否会被‘解决’。它不会被‘解决’,因为它根本不是一个真正的问题。 你可以做一个思想实验,想象一个不同的宇宙,人类资源被用于优化,这个宇宙看起来会和我们现在的完全不同。一个额外的工程师专注于优化,意味着另一个工程师不能专注于功能开发。为了什么?为了节省一些CPU周期吗?别逗我了。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。