Функпрог

Feb 02, 2010 02:13

Попробовал на днях F#. 
Для начала, о том, что меня поразило больше всего, так это смысловая красота языка) Прикольно до ужаса. Но за все надо платить.
Мне кто-то говорил, что MSIL генерируется F# лучше, чем С#. Но компиллятор, представляющий из себя тупую относительно человека программу, которая, к тому же, занимается дополнительным вычислением ( Read more... )

.net, c#, f#, программирование

Leave a comment

Comments 12

rifleexpert February 2 2010, 14:08:39 UTC
С методами проведения тестирования согласен полностью, но как бы там ни было, меня интересовало ВРЕМЯ ОТ НАЧАЛА ВЫПОЛНЕНИЯ ДАННОЙ, КОНКРЕТНОЙ ЗАДАЧИ ДО ВРЕМЕНИ ПОЛУЧЕНИЯ РЕЗУЛЬТАТА. А оно у F# хуевое, как ни крути. В деталях тоже следовало бы разобраться, но мне лень) Я лучше ASP.NET поучу или F# далее. Благо приколен, хотя и сыроват.
Причем наблюдается следующее для F# - сначала выводится время и "results: " (заголовок вывода), потом он думает, (дохуя) и выдает результат. В C# же результат выдается сразу же.
Компилер, кстати, должен понимать, где этот кортеж нужен, а где нет. Ну это в перспективе. А его можно как нибудь исключить, а то не доставляет столько производительности тратить на то что не нужно? Я всего то массив чисел хотел :-[
Комп гавно, да. Держит файрфокс, две VS2010, и IIS+MSSQL+ASP. Больше пока не надо. Мне не в игрушки резаться, а работать. Один икс, все что я пишу, обычно передается в другой отдел/другим людям, у кого 4 ядра, 4 гига, и три яйца =)

Reply

(The comment has been removed)

rifleexpert February 2 2010, 17:57:22 UTC
Чтобы нормально протестировать, его придется поглубже выучить (чем я собсно, и займусь на выходных) Да и по параллельности, мне кажется, C# однойухственно сделает в производительности.

Я думал в F# лист используется в коде выше :-[ Или некая подобная конструкция.

Компиллятор должен был предусмотреть, что мне это может не понадобиться, и не навешивать мне разной херни впридачу) Хотя может, я не по адресу пришел с такой задачей.

А там, что, в C# коде, не цикл?) Или ты имел в виду F#?

Reply

(The comment has been removed)


(The comment has been removed)

rifleexpert February 4 2010, 22:27:36 UTC
Да вряд-ли когда нибудь. Он не шибко соответствует моей специализации, это раз, а два - обеспечит другим программистам (в тч на кафедре) полный разрыв шаблона. С C#.NET вместо Pure C они кое-как смирились (вернее, их повыкидывали, кто сам не ушел), а вот переучивать их на F# смысла нет никакого. Мне за это не заплатят ( ... )

Reply


cuprum_ru February 5 2010, 12:53:24 UTC
Итак, начнем.
1. Использовать Datetime для измерения «производительности» как минимум странно, лучше воспользоваться System.Diagnostics.Stopwatch.
2. Генерация массива вместо списка даст прирост раза в два. Впрочем, раз в обоих программах список, то оставим списки.
3. Узкое место в программе - это генерация списка. Работает он, пока, медленно. Используя все тот же цикл и List.append, программа будет выполняться в 5-6 раз быстрее.
4. Раз уж F# язык функциональный, наверно, стоит использовать его функциональные возможности.
5. Задача, как минимум, нетривиальна для реального мира. Стоит пощупать другие возможности этого языка.

Reply

rifleexpert February 5 2010, 20:34:27 UTC
Вау)) Рад видеть)
Пощупать, определенно, стоит))) Чем я и займусь в выходные...)
А что такого нетривиального в этой задаче? По моему, она очень простая)

Reply


Leave a comment

Up