Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

559
Views
¿Puedo usar IL2CPP (Lenguaje intermedio a C++) para aplicaciones que no sean de Unity?

IL2CPP.exe es una utilidad de Unity para convertir código C# IL a C++. Mi pregunta es: ¿se puede usar este ejecutable fuera del entorno de desarrollo de juegos de Unity como una herramienta de propósito general para convertir cualquier aplicación .NET (no solo juegos) en un ejecutable nativo de alto rendimiento?

Aunque sé algo de C++, sin duda sería bueno poder escribir todo tipo de programas en un lenguaje con el que me sienta cómodo y con fluidez (C#)... ya sean DAW de producción de audio/video/música o Herramientas forenses/de seguridad a nivel de sistema operativo o plataformas de aprendizaje automático o cualquier otra cosa que requiera muchos recursos... y sepa que se ejecutarán tan eficientemente como una aplicación escrita en C++ puro.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Respuesta corta: NO

IL2CPP está estrechamente conectado con el entorno de Unity y no es posible usarlo fuera de Unity. Necesitaría escribir su propio convertidor (?) Para hacer tal cosa.

Respuesta más larga

IL2CPP no hace magia en términos de mejora del rendimiento. La comparación de C++ con C# con el código IL2CPP debería proporcionar (casi, más a continuación) ningún beneficio de rendimiento.

IL2CPP es eficaz en comparación con el código C# escrito para Unity específicamente por algunas razones que no tienen nada que ver con C++.

Por qué Unity es único y necesita IL2CPP:

  • La API de Unity depende en gran medida del rendimiento del subproceso principal, ya que toda la API de Unity se escribió hace casi 10 años, donde las CPU de 2 núcleos eran de primera categoría y todos creían que ahora tendríamos CPU de un solo núcleo de 20-50 GHz.
  • Unity hace muchas suposiciones de que usará su API para todo, desde IO hasta Threading y acceso a GPU, que está fuertemente ligado al núcleo de C++.
  • Unity debe estar envuelto con objetos de Unity (MonoBehaviours y GameObjects) para usarse para casi cualquier cosa, no puede escribir su propio nada nativo. (Esto es una simplificación)
  • Unity está escrito en C++, por lo que necesita hacer algo muy similar a Marshalling y no es muy eficiente.

Entonces, ¿por qué IL2CPP?

  • Unity no puede convertir su backend ya muy heredado (Mono) y su API heredada para que sea multiproceso, ya que Mono tiene muchas suposiciones sobre su código que no se pueden convertir fácilmente en API de Unity "simple".
  • El núcleo de Unity está escrito en C ++, por lo que están eliminando cualquier forma de Marshalling al omitir el "traductor" de Mono.
  • IL2CPP convierte código C# de subproceso único altamente ineficiente en C++ de subprocesos múltiples, cuando es posible, y lo hace mediante el análisis del código IL.

¿Vale la pena convertir otro C# a C++?

¡No! Compare cualquier código C# arbitrario y optimizado que haya sido precompilado por AOT con el C++ (moderno). ¡Deberías obtener el mismo rendimiento! Idéntico diría yo.

C# está compilado en IL (Lenguaje Intermedio) que, como sugiere el nombre, es Intermedio. Se convierte en tiempo de ejecución a código binario nativo (solo cuando es necesario), en eso se compila C++. Puede forzar esta conversión omitiendo la generación de IL ejecutando la compilación Ahead of Time (AOT).

Lo ÚNICO que su código C# tendrá menos rendimiento es cuando abusa de la capacidad de GC para limpiar después de usted.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!