К сожалению, вы ничего не можете сделать - компилятор F # просто медленнее компилятора C #.Но позвольте мне объяснить, почему:
Почему компилятор F # работает медленнее, чем компилятор C #
Во-первых, компилятор F # написан на .NET, компилятор C # написанв C ++.Хотя это само по себе не является смертным приговором для исполнения, оно действительно имеет значение.Во-вторых, компилятору C # более 10 лет.Было много времени, чтобы настроить и оптимизировать его - и сам компилятор, и среду выполнения .NET.Движок .NET JIT был точно настроен для C # / VB.NET, а не для F #.Функциональное программирование требует много недолговечных объектов, что приводит к различному типу поведения GC.
Но настоящая причина, по которой компилятор F # заметно медленнее, чем компилятор C #, заключается в том, что он выполняет большеработать , чем компилятор C #.В C # вы предоставляете всю информацию о типах, которая в некотором смысле выполняет работу для компилятора.F #, с другой стороны, делает вывод типов для вас, что, избавляя вас от бремени аннотаций, требует дополнительного времени процессора.
Что вы можете сделать
Я рекомендуювы загружаете оболочку Visual Studio 2008 и используете F # для .NET Framework 2.0.Если вам не нужно что-то, что есть только в Visual Studio 2010 или CLR 4.0, у вас все будет хорошо в Visual Studio 2008. Язык F # функционирует точно так же.Единственное отличие, IIRC, заключается в том, к каким типам относятся определенные вещи.Например, в CLR 4.0 встроен тип Tuple <_>, но при нацеливании на CLR 2.0 используется тип кортежа, определенный в FSharp.Core.dll.
Visual Studio 2010 предлагает множество удобных звонков исвистки, такие как редактор кода на основе WPF.Однако эти тонкости потребляют много оперативной памяти, и в вашем случае кажется, что вы можете жить без них.