Es posible que se haya encontrado con estas declaraciones, C está más optimizado o el rendimiento de C es mejor que los lenguajes superiores, por lo que discutiré las razones de esta hipótesis.

Primero, enumeremos las funcionalidades que proporcionan lenguajes como Java y no C:

  1. Comprobación de límite de índice de matriz
  2. Comprobación de valores de variables no inicializados
  3. Compruebe si hay fugas de memoria
  4. Compruebe si hay desreferencia de puntero nulo
  5. Recolección automática de basura
  6. Comprobación de tipo en tiempo de ejecución
  7. Manejo de excepciones

y hay más características de este tipo que no están presentes en C.

Las funciones adicionales tienen un costo y el costo incluye una disminución velocidad y aumentado Talla.

Tomemos un ejemplo de asignación dinámica en C y Java.
Java

MyClass obj = new MyClass();

¿Consideraste el tamaño de obj, la respuesta es No. La razón es que es manejado automáticamente por el lenguaje mismo en segundo plano y no tiene que escribir un código específico para él.

Pero en caso de C

struct MyStruct *obj = malloc(sizeof(struct MyStruct));

Como puede ver en el código anterior, las tareas de asignación de referencia al puntero, la asignación de tamaño se realiza explícitamente por el programador y, por último, libera la memoria asignada.

La verificación de enlace de matriz es compatible con Thumb Execution Environment (ThumbEE), sus otras características incluyen verificaciones automáticas de puntero nulo en cada instrucción de carga y almacenamiento, una instrucción especial que llama a un controlador.

Otra razón es la cercanía de C al lenguaje ensamblador; en la mayoría de los casos, sus instrucciones se asignan directamente al lenguaje ensamblador, C está a solo uno o dos niveles de abstracción del lenguaje ensamblador, mientras que Java está a un mínimo de 3 niveles de abstracción del ensamblador.

Referencias:
1) por qué-es-tan-rápido-y-por-qué-no-son-otros-idiomas-tan-rápidos-o-más-rápidos
2) ARM_architecture # Thumb_Execution_Environment_.28ThumbEE.29
3) Vista de Linus Torvalds

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *