【问题标题】:Initial speed of fast vs slow computer快速与慢速计算机的初始速度
【发布时间】:2021-11-17 02:31:17
【问题描述】:

在我的一次技术面试中,我被问到一个关于主题操作系统的问题。

问题-> 我们有两台电脑。 第一台计算机较旧,RAM 较少,ROM 较少,处理能力较低。 第二台计算机是具有更多 RAM、更多 ROM 和更多处理能力的新计算机。 假设两台计算机中的所有进程都已停止,并且两台计算机上仅运行一个程序,其时间复杂度为 O(n)。 是否有可能最初在短时间内,慢速计算机会以比快速计算机更快的速度处理程序,只有在此之后,快速计算机才会显示它的真实速度。如果是,请说出原因。

我无法说出答案。请帮忙!

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: operating-system time-complexity cpu-architecture


【解决方案1】:

你可以编造很多愚蠢的理由来解释为什么快速机器最初可能会落后,比如一个分配和初始化尽可能多的内存的程序。因此,如果 RAM 比率大于带宽比率,它的启动开销会更大。

或者速度更快的计算机可能是 Transmeta Crusoe,或者是由 Rosetta-2 在 Apple M1 上模拟的虚拟 x86,并且程序的机器代码必须先翻译成本机代码才能运行。像优化编译器(或 JVM 的 JIT)一样工作的动态翻译首先需要一些时间来生成高效的代码,而不是仅仅以最佳速度开始解释。

【讨论】:

  • @Noah:很有趣。谁写的/你在哪里找到的?
  • 不确定是谁写的,有人在我大学的建筑松弛小组中链接了它。问
  • @Noah:我觉得奇怪的是它在文档中没有任何标题/作者信息,特别是考虑到大量的第一人称散文和个人不喜欢 XCode 调试器的描述。
  • @Noah:必须有更好的问答才能将此链接留在未来读者可能会找到的地方。似乎还没有任何 [apple-m1][cpu-architecture] Q&As,但 C++ Optimize Memory Read Speed 至少是关于性能的。
  • 人们也可以为“较慢”的机器会保持较快的速度做出也许不是那么愚蠢的理由。如果处理能力达到峰值,则较慢的机器可能比较快的机器执行得更接近其峰值(例如,SIMD 宽度/核心数对单个 gcc 线程没有帮助)。较慢的机器可能具有更适合程序的缓存层次结构/内存系统。即使对于这个问题,旧系统也可能具有更快的启动时间(I/O 性能或操作系统开销)。此外,多线程程序需要时间来生成线程,拥有更少的内核可能会导致更少的启动开销。
猜你喜欢
  • 1970-01-01
  • 2011-11-28
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
  • 2018-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多