Эталонные тесты
Показанные выше результаты тестов были получены при выполнении комплекса эталонных тестов SciMark 2.0 на процессоре Pentium 4 с тактовой частотой 2.4 ГГц и 256 МБ оперативной памяти. Для сравнения были взяты результаты от C версии SciMark 2.0, которые представлены на рис. 5. Рис. 5. Сравнение производительности C# и C
Следует отметить, что текущая C# версия SciMark использует двухмерные неровные массивы в большинстве своих ядер, таких как SOR, перемножение разреженных матриц (Sparse matmul) и LU. Очевидно, именно в этом причина того, что C# уступает C в этих трех ядрах и работает почти так же, как C в FFT. Возможно, переход на прямоугольные массивы дал бы значительно лучшие результаты.
Не стоит воспринимать эти результаты как окончательный вердикт по производительности двух языков. Поскольку тесты SciMark напрямую перенесены в C# из Java, эта реализация использует не самые оптимальные средства C#; поэтому результаты могут быть улучшены за счет таких альтернатив, как структуры, прямоугольные массивы и даже блоки небезопасного кода. На рис. 6 показаны результаты по отдельным тестам.
Рис. 6. Результаты SciMark
Заключение Пока разработчики используют C# для создания интернет компонентов и распределенных приложений, и мало кто интересуется применением C# в качестве научного языка. В этой статье я представил множество мощных средств C#, превращающих этот язык в идеальную платформу для создания кода научных приложений. Хотя C# уже сейчас работает достаточно хорошо, чтобы быть признанным в качестве полноценного научного языка, будем надеяться, что со следующей версией JIT компилятора его быстродействие возрастет еще больше.
Смотрите также…
|