Lamentablemente, no hay mucho que pueda hacer: el compilador F # es más lento que el compilador C#. Pero permítanme explicar por qué:
Por qué el F # compilador es más lento que el compilador de C#
En primer lugar, el F # compilador está escrito en .NET, el compilador de C# está escrito en C++. Si bien esto solo no es una sentencia de muerte para perf, sí hace la diferencia. En segundo lugar, el compilador de C# tiene más de 10 años. Ha habido un lote de tiempo para ajustarlo y optimizarlo, tanto el compilador como el tiempo de ejecución .NET. El motor .NET JIT se ha ajustado para C#/VB.NET y no para F #. La programación funcional requiere una gran cantidad de objetos efímeros, lo que se traduce en un tipo diferente de comportamiento del GC.
Pero la verdadera razón por la cual el compilador F # es notablemente más lento que el compilador C# es porque está haciendo más trabajo que el compilador C#. En C#, proporciona toda la información del tipo, que de alguna manera está haciendo el trabajo para el compilador. Por otro lado, F # teclea la inferencia, lo que, si bien te ahorra la carga de la anotación, requiere un tiempo de CPU adicional.
Lo que puede hacer
recomiendo descargar el Visual Studio 2008 Shell y utilizar F focalización .NET Framework 2.0 #. A menos que necesite algo que esté en Visual Studio 2010 o CLR 4.0 solamente, estará bien en Visual Studio 2008. El lenguaje F # funciona exactamente igual. La única diferencia, IIRC, es en qué tipos compilar ciertas cosas. Por ejemplo, hay un tipo Tuple < _> integrado en CLR 4.0, pero cuando se dirige a CLR 2.0 se utiliza el tipo de tupla definido en FSharp.Core.dll.
Visual Studio 2010 ofrece una gran cantidad de campanas y silbidos, como un editor de código basado en WPF. Sin embargo, esas sutilezas consumen mucha RAM y, en su caso, parece que puede vivir sin ellas.
Nunca he notado algo así. Una prueba rápida y compilo y corro en menos de 2 segundos. Aunque estoy ejecutando un sistema de gama alta. – gradbot
Estoy ejecutando un AMD Athlon 2008, nada demasiado elegante, y se compila en 3 segundos. –
Ja, tuve este problema. Pasó de 10 segundos para compilarse a menos de medio segundo. Loco por la diferencia que hace ngen. –