【问题标题】:What's the difference between an "engine" and a "runtime"? [closed]“引擎”和“运行时”有什么区别? [关闭]
【发布时间】:2013-06-13 15:27:08
【问题描述】:

我一直认为“引擎”是正在运行的东西,因此需要启动和停止。但我也听说过“运行时”一词(“Java 运行时环境”等),这似乎也暗示着某些东西正在运行……

这些是相同的,还是不同的概念?如果是这样,它们有什么不同?是什么标准使某个东西成为“引擎”与“运行时”?

【问题讨论】:

  • engine = 包含逻辑的核心组件?
  • 关闭这个问题是垃圾。这是一个非常有效的问题,值得大量反馈。这直接取自 NodeJS 主页,清楚地表明“引擎”和“运行时”之间存在明显的区别...... Node.js® 是基于 Chrome 的 V8 JavaScript 引擎构建的 JavaScript 运行时。
  • 如果这不是一个有效的问题,那么这是怎么回事?:stackoverflow.com/q/29027845/10027592

标签: java runtime platform


【解决方案1】:

引擎通常是指做实际工作的一些软件组件。例如,数据库引擎从开发人员那里抽象出如何存储数据以及我们如何有效地搜索数据的所有细节。

Java 虚拟机 (JVM) 是在您的物理计算机中运行的虚拟计算机。虽然 JVM 确实做了相当多的复杂和低级工作,但术语引擎通常指的是更高级别的软件组件。我们几乎将 JRE 视为处理器。我们有一个运行字节码的虚拟 CPU,而不是运行机器代码的物理 CPU。 再次使用数据库示例:许多数据库是用 Java 编写的,因此在 Java Runtime Environment 中运行。因此,JRE 正在运行一个数据库引擎 来完成这项工作。

【讨论】:

    【解决方案2】:

    引擎是计算机程序的核心。来自维基:

    当用于描述软件时,开发人员在与更广泛的外行受众交谈时经常使用术语引擎来描述他们在其他情况下称为库、平台、SDK 或对象的内容,以表示封装的块功能。

    http://en.wikipedia.org/wiki/Software_engine

    Runtime 只是应用程序运行的时间。它的对应物是编译时间。代码是在编译时中编写分析和编译的。运行时只是描述CPU当前正在执行程序。

    还有其他时间,如链接时间加载时间,但在软件开发中并不常用。

    备注:术语引擎和运行时不在同一平面上。它们无法比较。引擎可能在运行时也可能不在运行时,这取决于它是否被执行。

    【讨论】:

    • 感谢@darijan (+1) - 一个后续问题:.NET 的 CLR(公共语言运行时)怎么样?还是 OSGi 的组件运行时?我认为“运行时”可能有两种定义:您在上面所说的那个,然后是“运行时”的另一种用法,它暗示某种引擎/平台。想法?再次感谢!
    • CLR 只是名称。它不是默认定义的运行时。
    猜你喜欢
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多