¿Qué significa cuando un lenguaje de programación es “más rápido” que otro?

Significa que hay menos capas de abstracción entre el código y el metal desnudo.
(Lo siguiente no es exacto, pero está cerca).
Javascript


  1. let temp = 5; 




  2. temp = temp + 5; 



Chrome evalúa JavaScript, Chrome está escrito en C / C ++


  1. int processNextLine(array, lineNumber) 








  2. char *sNextLine = array[lineNumber]; 




  3. parsedJS jsCode = jsParse(sNextLine); 




  4. bool isOK = performJSCodeOnDOM(jsCode); 




  5. if (isOkay == false) 








  6. char *sErrorMsg = getLastJSError(); 




  7. DOM.consoleArray.push(sErrorMsg); 




  8. return ERRORCODE.JSEXECERROR; 








  9. return processNext(array, lineNumber+1); 







Editado: Error del compilador: Línea 5: variable indefinida “isOkay”. Jajaja


  1. bool isOK = performJSCodeOnDOM(jsCode); 




  2. if (isOkay == false) 



Que se compila (no es preciso):


  1. 0101010101010101010101010101010010101 




  2. 0001011101010101010101010101010101001 




  3. 0010100011001010101010100000110101010 




  4. 0110101010101010101010101010101010010 



Que luego está permitido por el sistema operativo si no está en modo kernel:


  1. int processNextOPCode(address, offset) 








  2. uint encodedOp = RAM[address+offset]; 




  3. uint opCode = 0xFF000000 & encodedOp; 




  4. uint regA = 0x00FF0000 & encodedOp; 




  5. uint regB = 0x0000FF00 & encodedOp; 




  6. uint value = 0x000000FF & encodedOp; 




  7. switch (opCode) 








  8. case IsInUserMode: 




  9. // run machine code as non-kernel 




  10. break; 




  11. case ASSEMBY.MOVE: 




  12. //do stuff... 




  13. break; 




  14. case ASSEMBY.ADD: 




  15. //do stuff... 




  16. break; 




  17. //etc.... 








  18. return updateAllAndNext(); 







Editado: la revisión del código de Cobi Carter afirma que los modos de usuario y kernel están separados.
Específicamente solo “lineNumber + 1”, en conjunto:


  1. mov eax, A 




  2. mov ebx, 1 




  3. add eax, ebx  



Que es entonces físicamente:
Como puede ver, la mayoría de los lenguajes de programación viven en alguna capa de lo anterior. Cuanto más lejos estén de la ciencia de los materiales y la oblea de silicio, más lento será. Cuanto más cerca, más rápido.
Porque simplemente hay menos cosas en el medio.

1 comentario en «¿Qué significa cuando un lenguaje de programación es “más rápido” que otro?»

Deja un comentario