2013-06-13 4 views
0

나는 항상 "엔진"을 실행중인 것으로 생각하므로 시작하고 중지해야합니다. 그러나 나는 또한 "런타임"("Java Runtime 환경"등)이라는 말도 들었으며 이것은 또한 뭔가가 실행되고 있음을 암시하는 것처럼 보입니다 ..."엔진"과 "런타임"의 차이점은 무엇입니까?

이 둘은 같은지, 아니면 다른 개념? 그렇다면 어떻게 다르고 어떤 기준이 "엔진"대 "런타임"을 만드는가?

+0

엔진 = 로직을 포함하는 핵심 구성 요소? – Toilal

답변

2

엔진은 일반적으로 실제 작업을 수행하는 일부 소프트웨어 구성 요소를 나타냅니다. 예를 들어, 데이터베이스 엔진은 개발자로부터 데이터가 저장되는 방법을 으로 추상화하고 효율적으로 검색하는 방법을 설명합니다.

JVM (Java Virtual Machine)은 실제 컴퓨터에서 실행되는 가상 컴퓨터입니다. JVM이 상당히 복잡하고 낮은 수준의 작업을 수행하는 것은 분명하지만 Engine이라는 용어는 일반적으로 더 높은 수준의 소프트웨어 구성 요소를 나타냅니다. 우리는 거의 JRE를 프로세서라고 생각합니다. 기계 코드를 실행하는 실제 CPU 대신 바이트 코드를 실행하는 가상 CPU가 있습니다. 다시 데이터베이스 예제 사용 : 많은 데이터베이스가 Java로 작성되어 Java Runtime Environment 내부에서 실행됩니다. 따라서 JRE는 데이터베이스 엔진을 실행하여 작업을 수행합니다.

4

엔진은 컴퓨터 프로그램의 핵심입니다. 위키에서 :

넓은, 평신도 청중에게 말할 때 자주 개발자에 의해 사용되는 소프트웨어의 조각을 설명하는 데 사용되는 용어 엔진, 그들은 그렇지 않으면 라이브러리, 플랫폼 SDK 또는 객체로 참조 할 것 무엇을 설명하기 위해 캡슐화 된 기능 블록을 나타냅니다.

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

런타임는 응용 프로그램이 실행되기 바로 시간입니다. 그것의 대응 부분은 컴파일 시간은입니다. 코드는 컴파일 된에서 실행되는 FOR 컴파일 된 분석 작성된 것입니다. 런타임은 CPU가 현재 프로그램을 실행 중임을 나타냅니다.

이 다른 있습니다 링크시, 로드 시간 같은 시간하지만 너무 자주 SW 개발에 사용되지 않습니다.

참고 : 용어 엔진과 런타임은 같은 평면에 있지 않습니다. 그들은 비교 될 수 없다. 엔진은 실행 여부에 따라 런타임에있을 수도 있고 그렇지 않을 수도 있습니다.

+0

감사합니다. @darijan (+1) - 한 가지 질문입니다. .NET의 CLR (Common Language Runtime)은 어떻습니까? 또는 OSGi의 컴포넌트 런타임? 제 생각에는 "런타임"에 대한 2 가지 정의가있을 수 있습니다 : 위에서 말한 것, 그리고 엔진/플랫폼의 일종을 의미하는 "런타임"의 또 다른 사용이라고 생각합니다. 생각? 다시 한 번 감사드립니다! – IAmYourFaja

+0

CLR 그냥 이름입니다. 기본 정의에서 런타임이 아닙니다. – darijan