(评论)
(comments)
原始链接: https://news.ycombinator.com/item?id=38457247
针对之前质疑本文关注硬件而不是软件是否是有效批评的评论,需要指出的是,尽管本文讨论的问题主要归因于底层硬件问题,但它仍然展示了有关开发中的限制和挑战的基本原则。 以及设计性能关键的软件。 此外,它还强调了在优化性能关键型软件时考虑硬件、软件、工作负载和配置的相关组合的重要性。 此外,它强调需要解决特定硬件架构的特定问题,而不是在所有平台上普遍应用解决方案。 虽然承认在软件开发中解决硬件问题的相关性和重要性,但本次讨论的重点主要是强调适用于所有硬件平台的原则和学习内容,强调调查这些问题的根本原因的好处,无论任何特定的问题 硬件制造商。
关于软件库中存在许多架构和 CPU 特定代码片段的观察结果,包括在内核等低级软件级别,有人指出,虽然这对于软件的基本组件来说是可以接受的,但对于更高级别的软件组件来说是不鼓励的。 软件,特别是当它导致更大的二进制大小时,特别是当它需要实施专门针对特定处理器架构的特性和缺点而定制的性能关键优化时。 尽管如此,在某些情况下,高级软件优化可能会偶然与解决硬件问题同时发生,但这不应阻止开发人员寻求这些机会。 然而,这些方法需要仔细考虑和评估,以免我们最终针对特定硬件配置采取临时解决方案,这可能导致软件包之间的可移植性和可维护性下降,同时也会增加总体工程成本。
关于切换到替代分配器可以解决本文中遇到的硬件问题的建议,需要强调的是,虽然切换分配器解决了一些问题,但尚不清楚是否有有意或更好的解决方案来克服已识别的硬件问题。 此外,此类方法需要严格的测试程序,以确保与所有预期硬件架构的兼容性。 最终,我们鼓励在任何新软件包的设计和规划阶段优先识别和理解任何重大性能瓶颈的根本原因,而不是寻找快速修复方案。 通过将我们的注意力集中在解决这些基本问题上,
I'm not surprised the conclusion had something to do with the way that native code works. Admittedly I was surprised at the specific answer - still a very interesting article despite the confusing start.
Edit: The conclusion also took me a couple of attempts to parse. There's a heading "C is slower than Python with specified offset". To me, as a native English speaker, this reads as "C is slower (than Python) with specified offset" i.e. it sounds like they took the C code, specified the same offset as Python, and then it's still slower than Python. But it's the opposite: once the offset from Python was also specified in the C code, the C code was then faster. Still very interesting once I got what they were saying though.
reply