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