¿Qué es “tiempo de ejecución”?

He oído hablar de cosas como “C Runtime”, “Visual C ++ 2008 Runtime”, “.NET Common Language Runtime”, etc.

  • ¿Qué es el ” tiempo de ejecución ” exactamente?
  • ¿De qué está hecho?
  • ¿Cómo interactúa con mi código? O tal vez más precisamente, ¿cómo está mi código controlado por él?

Al codificar el lenguaje ensamblador en Linux, podría usar la instrucción INT para hacer una llamada al sistema. Entonces, ¿el tiempo de ejecución no es más que un conjunto de funciones prefabricadas que envuelven la función de bajo nivel en funciones más abstractas y de alto nivel? Pero, ¿no se parece esto más a la definición de la biblioteca, no al tiempo de ejecución?

¿Son “tiempo de ejecución” y ” biblioteca de tiempo de ejecución ” dos cosas diferentes?

ADD 1

En estos días, creo que Runtime tiene algo en común con la llamada máquina virtual , como JVM. Aquí está la cita que lleva a tal pensamiento:

Este proceso de comstackción es lo suficientemente complejo como para dividirse en varias capas de abstracción, y generalmente implican tres traductores: un comstackdor, una implementación de máquina virtual y un ensamblador. — Los elementos de los sistemas de computación (Introducción, The Road Down to Hardware Land)

ADD 2

El libro Expert C Programming: Deep C Secrets . El Capítulo 6 Runtime Data Structures es una referencia útil para esta pregunta.

Runtime describe software / instrucciones que se ejecutan mientras el progtwig se está ejecutando, especialmente aquellas instrucciones que no se escribieron explícitamente, pero que son necesarias para la correcta ejecución de su código.

Los lenguajes de bajo nivel como C tienen un tiempo de ejecución muy pequeño (si corresponde). Los lenguajes más complejos como Objective-C, que permite la transmisión dinámica de mensajes, tienen un tiempo de ejecución mucho más extenso.

Tiene razón en que el código de tiempo de ejecución es el código de la biblioteca, pero el código de la biblioteca es un término más general que describe el código producido por cualquier biblioteca. El código de tiempo de ejecución es específicamente el código requerido para implementar las características del idioma en sí.

Runtime es un término general que hace referencia a cualquier biblioteca, marco o plataforma en la que se ejecuta el código.

Los tiempos de ejecución C y C ++ son colecciones de funciones.

El tiempo de ejecución de .NET contiene un intérprete de lenguaje intermedio , un recolector de elementos no utilizados y más.

Según la Wikipedia: biblioteca en tiempo de ejecución / sistema de tiempo de ejecución .

En la progtwigción de computadoras, una biblioteca de tiempo de ejecución es una biblioteca de progtwigs especiales utilizada por un comstackdor, para implementar funciones integradas en un lenguaje de progtwigción, durante el tiempo de ejecución (ejecución) de un progtwig de computadora. Esto a menudo incluye funciones para entrada y salida, o para administración de memoria.


Un sistema de tiempo de ejecución (también llamado sistema de tiempo de ejecución o simplemente tiempo de ejecución) es un software diseñado para admitir la ejecución de progtwigs de computadora escritos en algún lenguaje informático. El sistema de tiempo de ejecución contiene implementaciones de comandos básicos de bajo nivel y también puede implementar comandos de nivel superior y puede admitir la comprobación de tipos, la depuración e incluso la generación y optimización de códigos. Algunos servicios del sistema de tiempo de ejecución son accesibles para el progtwigdor a través de una interfaz de progtwigción de aplicaciones, pero otros servicios (como la progtwigción de tareas y la administración de recursos) pueden ser inaccesibles.


Re: su edición , “runtime” y “biblioteca de tiempo de ejecución” son dos nombres diferentes para la misma cosa.

El entorno de tiempo de ejecución o ejecución es la parte de una implementación de lenguaje que ejecuta código y está presente en tiempo de ejecución ; la parte de tiempo de comstackción de la implementación se denomina entorno de traducción en el estándar C.

Ejemplos:

  • el tiempo de ejecución de Java consiste en la máquina virtual y la biblioteca estándar

  • un tiempo de ejecución de C común consiste en el cargador (que es parte del sistema operativo) y la biblioteca de tiempo de ejecución, que implementa las partes del lenguaje C que no están integradas en el ejecutable por el comstackdor; en entornos alojados, esto incluye la mayoría de las partes de la biblioteca estándar

En mi entender, el tiempo de ejecución es exactamente lo que significa: el momento en que se ejecuta el progtwig. Puede decir que algo sucede en tiempo de ejecución / tiempo de ejecución o en tiempo de comstackción.

Creo que el tiempo de ejecución y la biblioteca de tiempo de ejecución deberían ser (si no lo son) dos cosas separadas. “C runtime” no me parece correcto. Lo llamo “biblioteca de tiempo de ejecución de C”.

Respuestas a sus otras preguntas: creo que el término tiempo de ejecución puede ampliarse para incluir también el entorno y el contexto del progtwig cuando se ejecuta, por lo que:

  • consiste en todo lo que se puede llamar “entorno” durante el tiempo en que se ejecuta el progtwig, por ejemplo, otros procesos, estado del sistema operativo y bibliotecas usadas, estado de otros procesos, etc.
  • no interactúa con su código en un sentido general, solo define en qué circunstancias funciona su código, qué está disponible durante la ejecución.

Esta respuesta es, en cierta medida, solo mi opinión, no un hecho o una definición.

Matt Ball respondió correctamente. Diría al respecto con ejemplos.

Considere la ejecución de un progtwig comstackdo en el comstackdor Turbo-Borland C / C ++ (versión 3.1 del año 1991) y permita que se ejecute en una versión de 32 bits de Windows como Win 98/2000, etc.

Es un comstackdor de 16 bits. Y verá que todos sus progtwigs tienen punteros de 16 bits. ¿Por qué es así cuando tu sistema operativo es de 32 bits? Debido a que su comstackdor configuró el entorno de ejecución de 16 bits y la versión de 32 bits del sistema operativo lo admitió.

Lo que comúnmente se conoce como JRE (Java Runtime Environment) proporciona un progtwig Java con todos los recursos que puede necesitar para ejecutar.

En realidad, el entorno de tiempo de ejecución es producto del cerebro de la idea de las Máquinas Virtuales. Una máquina virtual implementa la interfaz bruta entre el hardware y lo que un progtwig puede necesitar para ejecutar. El entorno de tiempo de ejecución adopta estas interfaces y las presenta para el uso del progtwigdor. Un desarrollador de comstackdores necesitaría estas instalaciones para proporcionar un entorno de ejecución para sus progtwigs.

Tiempo de ejecución exactamente donde su código entra en acción y puede ver muchas cosas importantes que hace su código.

Runtime tiene la responsabilidad de asignar memoria, liberar memoria, usar el subsistema del sistema operativo como (File Services, IO Services … Servicios de red, etc.)

Su código se llamará “TRABAJANDO EN LA TEORÍA” hasta que prácticamente ejecute su código. y Runtime es un amigo que ayuda a lograr esto.

un tiempo de ejecución podría denotar la fase actual de la vida del progtwig (tiempo de ejecución / tiempo de comstackción / tiempo de carga / tiempo de enlace) o podría significar una biblioteca de tiempo de ejecución, que forma las acciones básicas de bajo nivel que interactúan con el entorno de ejecución. o podría significar un sistema de tiempo de ejecución, que es lo mismo que un entorno de ejecución.

en el caso de los progtwigs C, el tiempo de ejecución es el código que configura la stack, el montón, etc., que es un requisito esperado por el entorno C. esencialmente establece el entorno que promete el lenguaje. (podría tener un componente de biblioteca de tiempo de ejecución, crt0.lib o algo así en el caso de C)

Descubrí que la siguiente estructura de carpetas crea un contexto muy profundo para comprender qué runtime es:

Runtimes de Mozilla XulRunner

Puede ver que existe la ‘ fuente ‘, existe el ‘ SDK ‘ o ‘Kit de desarrollo de software’ y luego está el Runtime , por ejemplo. las cosas que se ejecutan, en tiempo de ejecución. Sus contenidos son como:

contenido de la carpeta de los tiempos de ejecución

El archivo comprimido win32 contiene .exe -s y .dll -s.

Entonces, por ej. el tiempo de ejecución de C serían los archivos como este – C bibliotecas de ejecución, .so-s o .dll -s – se ejecuta en tiempo de ejecución, hecho especial por su inclusión (o sus contenidos ‘o propósitos’) en la definición de la Lenguaje C (en ‘papel’), luego implementado por su implementación C de elección. Y luego obtienes el tiempo de ejecución de esa implementación, para utilizarla y construir sobre ella.

Es decir, con una pequeña polarización, los archivos ejecutables que necesitarán los usuarios de su nuevo progtwig basado en C. Como desarrollador de un progtwig basado en C, tú también lo necesitas, pero también necesitas el comstackdor C y los encabezados de la biblioteca C; los usuarios no los necesitan.

Runtime significa básicamente cuando el progtwig interactúa con el hardware y el sistema operativo de una máquina. C no tiene su propio tiempo de ejecución, sino que solicita el tiempo de ejecución de un sistema operativo (que es básicamente una parte de ram) para ejecutarse.

El tiempo de ejecución es la instancia en la que no sabe qué tipo de objetos crea durante su ejecución, la creación de objetos se basa en ciertas condiciones o en algún trabajo de cálculo. En contradicción, el tiempo de comstackción es la instancia en la que usted define los objetos necesarios antes de sus ejecuciones.

Estas secciones de la documentación de MSDN se ocupan de la mayoría de sus preguntas: http://msdn.microsoft.com/en-us/library/8bs2ecf4(VS.71).aspx

Espero que esto ayude.

Gracias, Damian

El tiempo de ejecución es algo opuesto al tiempo de diseño y al tiempo de comstackción / tiempo de enlace. Históricamente proviene del entorno lento del mainframe donde el tiempo de la máquina era costoso.

El tiempo de ejecución es el período de tiempo cuando un progtwig se está ejecutando. Comienza cuando un progtwig se abre (o ejecuta) y finaliza con el progtwig cerrado o cerrado.

Runtime es un término técnico, que se usa con mayor frecuencia en el desarrollo de software. Se ve comúnmente en el contexto de un “error de tiempo de ejecución”, que es un error que ocurre mientras se ejecuta un progtwig. El término “error de tiempo de ejecución” se utiliza para distinguir de otros tipos de errores, como errores de syntax y comstackción, que ocurren antes de que se ejecute un progtwig.

Cuando un progtwig se encuentra en la fase de ejecución, la aplicación se carga en la RAM. Esto incluye el archivo ejecutable y las bibliotecas, marcos u otros archivos a los que hace referencia el progtwig. Cuando se cierra el progtwig, el período de ejecución finaliza y la memoria utilizada por el progtwig se pone a disposición para el uso de otros progtwigs.

Tiempo transcurrido durante la ejecución del progtwig. Pero esto es demasiado general. Digamos, la duración después de la comstackción del progtwig, cuando OS presenta la receta al progtwigdor para interactuar o ver los resultados de lo que ha desarrollado, se llama tiempo de ejecución. No se presentan errores de syntax, etc. en el tiempo de ejecución. Es decir, la lógica es correcta (técnicamente no por perspeccive de negocios). Entonces, de alguna manera, podemos decir que compileTime es un nivel primario mientras que el tiempo de ejecución es de nivel secundario.