В настоящее время я решаю на платформу для создания научного вычислительного продукта, и я решаю на С#, Java или просто C с компилятором Intel на процессорах Core2 Quad. Это в основном целочисленная арифметика.
Мои тесты пока показывают, что Java и C находятся на одном уровне друг с другом, а трассы .NET/С# - примерно на 5%, однако некоторые мои коллеги утверждают, что .NET с правильной оптимизацией будет бить оба этих при условии, что JIT выполнит свою работу.
Я всегда предполагаю, что JIT выполнил бы эту работу в течение нескольких минут после запуска приложения (возможно, несколько секунд в моем случае, поскольку это в основном плотные петли), поэтому я не уверен, верить им
Может ли кто-нибудь пролить свет на ситуацию? Будет ли .NET бить Java? (Или мне лучше всего придерживаться C в этот момент?).
Код очень многопоточен, а наборы данных имеют размер в несколько терабайт.
Haskell/Erlang и т.д. не являются параметрами в этом случае, так как существует значительное количество существующего унаследованного кода C, который будет перенесен в новую систему, а перенос C на Java/С# намного проще, чем на Haskell или Erlang. (Если, конечно, это не дает значительного ускорения).
Edit: Мы рассматриваем переход на С# или Java, потому что они могут, теоретически, быть быстрее. Каждый процент, который мы можем свести с нашего времени обработки, сэкономит нам десятки тысяч долларов в год. На этом этапе мы просто пытаемся оценить, будет ли C, Java или С# быстрее.