He estado investigando sobre Golang y veo que está teniendo un compilador. ¿Pero está compilando en código de nivel de conjunto o simplemente convirtiéndolo en BYTECODES y luego llamando a esa compilación? Quiero decir que incluso en PHP podemos convertirlo en BYTECODES y tener un rendimiento más rápido. ¿Es Golang un REEMPLAZO para la programación y la compilación a nivel del sistema?¿Googles GOLANG es un intérprete o compilador?
Respuesta
Esto es realmente un compilador (de hecho, incluye 2 compiladores) y hace ejecutables totalmente autosuficientes. No necesita ninguna biblioteca adicional ni ningún tipo de tiempo de ejecución para ejecutarlo en su servidor. Solo tiene que compilarlo para la arquitectura de su computadora de destino.
Hay dos cadenas de herramientas Go compilador oficial. Este documento se centra en en el compilador y las herramientas gc Go (6g, 8g, etc.). Para obtener información sobre cómo para trabajar en gccgo, un compilador más tradicional que utiliza el back-end de GCC, , consulte Configuración y uso de gccgo.
Los compiladores Go admiten tres conjuntos de instrucciones. Existen importantes diferencias en la calidad de los compiladores para las diferentes arquitecturas .
amd64 (a.k.a. x86-64); 6g, 6l, 6c, 6a Una implementación madura. El compilador tiene un optimizador efectivo (registrador) y genera un buen código (aunque gccgo puede hacerlo notablemente mejor a veces).
386 (a.k.a. x86 o x86-32); 8g, 8l, 8c, 8a Comparable con el puerto amd64.
brazo (a.k.a. ARM); 5g, 5l, 5c, 5a Admite solo los binarios de Linux. Menos utilizado que los otros puertos y, por lo tanto, no tan minuciosamente probado.
excepción de cosas como código de interfaz del sistema operativo de bajo nivel, el tiempo de ejecución apoyo es la misma en todos los puertos e incluye una marca y barrer la basura colector, gama eficaz y rebanar cuerda, y el apoyo a goroutines eficientes, como pilas que crecen y se contraen según demanda.
Los compiladores pueden apuntar a los sistemas operativos FreeBSD, Linux, NetBSD, OpenBSD, OS X (Darwin) y Windows. El conjunto completo de combinaciones soportadas se enumera en la discusión de las variables de entorno a continuación.
En un servidor, por lo general, se dirigirá a la plataforma amd64
.
Tenga en cuenta que Go es bien conocido por la velocidad de compilación. Al implementar mis programas de servidor, no construyo para las diferentes plataformas en la computadora de desarrollo: despliego las fuentes y compilo directamente en los servidores de producción. Desde Go1 nunca tuve un código compilado en una plataforma y no compilando en los otros.
En Windows no tuve ningún problema en hacer un exe
en mi computadora de desarrollo y simplemente envié este exe
a personas que nunca habían instalado nada relacionado.
- 1. ¿Es la JVM un compilador o un intérprete?
- 2. Construyendo un compilador o intérprete usando Python
- 3. Compilador/intérprete de Java
- 4. compilador C++ intérprete/consola/snippet
- 5. Intérprete/compilador Prolog integrado para Java
- 6. ¿El INTÉRPRETE es un antipatrón?
- 7. Creando su propio intérprete que puede funcionar como un compilador
- 8. ¿Es esto un error del compilador o es mi código?
- 9. Compilador Fast Standard ML o intérprete de bytecode, con loop read-eval-print, para Linux?
- 10. ¿Cuál es la definición exacta de un intérprete metacircular?
- 11. ¿Los googles guava tienen un método entero tryparse de Java o algo similar?
- 12. Casos de prueba del compilador o cómo probar un compilador
- 13. CPython es un intérprete de bytecode?
- 14. ¿Diferencia exacta entre el compilador y el intérprete?
- 15. ¿Hay algún compilador/intérprete para ejecutar código para php 5.3?
- 16. ¿Golang TLS es compatible con IE8?
- 17. Construyendo un intérprete simple
- 18. intérprete AST?
- 19. ¿Cuáles son las diferencias entre un Compilador Just-in-Time y un Intérprete?
- 20. Homebrew - intérprete incorrecto: Ningún archivo o directorio
- 21. ¿Cuál es la diferencia entre un REPL y un intérprete?
- 22. Crear un mapa Golang de Listas
- 23. ¿Cómo escribir un intérprete?
- 24. golang: instalar paquetes en un directorio local
- 25. ¿El Python GIL es realmente por intérprete?
- 26. compilación condicional de Golang
- 27. ¿Compilador infectado o mal funcionamiento?
- 28. golang plantillas de salida
- 29. GAE Golang - log.Print()?
- 30. Re-cortar en Golang
Así que no es convertirlo en códigos de bytes y compilar realmente. –
Sí. está compilando exactamente en el mismo sentido en que se compila cualquier programa C. Todo está estáticamente vinculado. –
¿Puede generar código .S para lo que genera? – Skaperen