¿C++/CLI es más rápido que C#? ¿En qué tipo de operaciones es más rápido?¿C++/CLI es más rápido que C#
Respuesta
No necesariamente. Sin embargo, C++/CLI quita gran parte del azúcar sintáctico en torno a las formas no efectivas de hacer las cosas que están presentes en C# (por ejemplo, el boxeo).
Además, C++/CLI le permite una interoperabilidad mucho más limpia con código no administrado, realmente le permite mezclar código administrado/no administrado, que es un entorno de rendimiento crucial que puede ser beneficioso.
EDIT:
Ver este post para algunas de las diferencias: http://msdn.microsoft.com/en-us/library/ms379617(VS.80).aspx
Dado que ambos se ejecutan en el .NET framework, diría que cualquier diferencia de rendimiento sería insignificante. Cualquier diferencia se reducirá a cuán bien funcionan los compiladores que está utilizando.
Dado que ambos lenguajes .NET se compilan en el mismo código de bytes que a su vez se ejecuta en la misma máquina virtual, diría en general que no.
C++/CLI solo tiene la intención de proporcionar interoperabilidad de lenguaje entre .NET y C++.
C++/CLI es una lengua de pleno derecho en su propio derecho. Tiene algunas ventajas sobre C#, incluso en un entorno de compilación puro/clr: –
Creo que se dedicó mucho esfuerzo en este producto. Es difícil pensar que solo fue pensado para operaciones de interoperabilidad. –
Cualquier código administrado escrito en C++/CLI será esencialmente el mismo que el equivalente C#, suponiendo precisión del compilador, ya que ambos terminarán como instrucciones de lenguaje intermedio. Sin embargo, C++/CLI hace que sea fácil mezclar código no administrado con la porción administrada, lo que puede proporcionar considerables beneficios de velocidad si está bien optimizado.
Bien, la respuesta corta es no. ¿Por qué? Los tipos de referencia en C++/CLI se compilan en MSIL, lo mismo que en C#.
Lo bueno de C++/CLI (y la respuesta larga), sin embargo, es que puede llamar fácilmente al código nativo, que (en muchos casos) es más rápido. Dicho esto, si escribe una clase C++ nativa y espera que se ejecute de forma nativa cuando alguien la llama en una clase administrada, esa clase nativa de C++ debe compilarse sin soporte de CLR (this question va a cómo hacerlo).
- 1. ¿C es más rápido que VB.NET?
- 2. ¿Es + = más rápido que - =?
- 3. cuando es Java más rápido que C++ (o cuando JIT es más rápido que precompilado)?
- 4. ¿Es `extender` más rápido que` + = `?
- 5. C# TPL más rápido que C++ PPL?
- 6. ¿Es MATLAB más rápido que Python?
- 7. ¿doble o flotante, que es más rápido?
- 8. ¿Python es más rápido y ligero que C++?
- 9. MongoDB no es más rápido que MySQL?
- 10. Es DateTime.ParseExact() más rápido que DateTime.Parse()
- 11. Contiene es más rápido que StartsWith?
- 12. que es más rápido, equalsIgnoreCase o compareToIgnoreCase
- 13. es 'absoluto' más rápido que Move()?
- 14. ¿SQLite es realmente más rápido que MySQL?
- 15. que es más rápido? Declaración o PreparedStatement
- 16. Más rápido que String.Replace()
- 17. es CLucene es más rápido que java lucene?
- 18. ¿Por qué compila C# mucho más rápido que C++?
- 19. Algo más rápido que HttpHandlers?
- 20. ¿El código es más rápido que el código en línea?
- 21. Algo más rápido que get_headers()
- 22. ¿Por qué String.IsNullOrEmpty es más rápido que String.Length?
- 23. ¿El desarrollo de Android en C/C++ es más rápido que Java?
- 24. Preincremento más rápido que poscreción en C++ - ¿cierto? Si es así, ¿por qué es?
- 25. En MySQL, ¿es más rápido eliminar e insertar o es más rápido actualizar las filas existentes?
- 26. CLR de F # y C# es lo mismo que por qué F # es más rápido que C#
- 27. C++ Exp vs. Log: ¿Cuál es más rápido?
- 28. ¿Por qué es === más rápido que == en PHP?
- 29. ¿Es más rápido que% cuando se buscan números impares?
- 30. ¿El método estático es más rápido que el no estático?
Muy buen punto sobre la falta del azúcar sintáctico de C#. –
Gracias, una forma diferente de ver las cosas, pero supongo que es un beneficio de rendimiento, ya que te ayuda a escribir el código de rendimiento – LorenVS
Por otra parte, C++/CLI introduce azúcar sintáctica propia para cosas como imitar asignación de pila y RAII a través de ' Eliminar llamadas'. –