我总是将“引擎”视为正在运行的东西,因此需要启动和停止。但我也听过“运行时”这个术语(“Java 运行时环境”等),这似乎也意味着某些东西正在运行......
这些是相同的,还是不同的概念?如果是这样,它们如何不同以及什么标准使某些东西成为“引擎”与“运行时”?
答案 0 :(得分:4)
引擎是计算机程序的核心。来自维基:
开发人员在与更广泛的外行观众交谈时经常使用术语Engine来描述一个软件,以描述他们将其称为库,平台,SDK或对象的内容,以表示封装的块功能。
http://en.wikipedia.org/wiki/Software_engine
运行时就是应用程序运行的时间。它的对应部分是编译时间。编写的代码经过编译分析,编译为在编译时中运行。运行时只是描述了CPU当前正在执行程序。
还有其他次,例如链接时间,加载时间,但在SW开发中并不常用。
备注:术语引擎和运行时不在同一平面中。他们无法比较。根据是否执行,引擎可能也可能不在运行时。
答案 1 :(得分:2)
引擎通常指的是一些完成实际工作的软件组件。例如,数据库引擎从开发人员那里抽象出如何存储数据的所有细节以及我们如何有效地搜索它。
Java虚拟机(JVM)是在物理计算机内运行的虚拟计算机。虽然JVM肯定会执行大量复杂和低级别的工作,但术语Engine通常指的是更高级别的软件组件。我们几乎认为JRE是处理器。我们有一个运行字节码的虚拟CPU,而不是运行机器代码的物理CPU。 再次使用数据库示例:许多数据库都是用Java编写的,因此在 Java Runtime Environment 中运行。因此,JRE运行数据库引擎来完成工作。