metaclass: (Default)
[personal profile] metaclass
Вот я хаскель использовал только пару раз и практически его не знаю, но в чем проблема с неэнергичным foldl - помню. Про то, что нужны банг-паттерны внутри тупла - краем уха слышал, но не вникал.
Стеб же на эту тему людей, которые слышали звон, да не знают, где он, меня очень сильно огорчает.
Ладно, айсед критикует - он хотя бы писал на этом и понимает, о чем речь идет. А так - это выглядит как "разработчики на клиппере критикуют SQL за то, что теория множеств".

Date: 2015-07-13 07:51 pm (UTC)
From: [identity profile] thesz.livejournal.com
Вот вы это кому другому рассказывайте, пардоньте.

В отчёте профиля ghc RTS я нахожу проблемное место прямым глазением в подобие дерева в текстовом виде. Часто даже этого не надо, пяток самых тяжёлых функций наверху мне услужливо привели. В отчёте VS 2012 я, если специально не указал нужный модуль в качестве единственного, вообще ничего найти не могу. А если указал, то мне надо сделать десять раскрытий дерева и всё равно можно промахнуться. Например, две функции занимают, примерно, по 20%, но в одной десять вызово по 2%, а в другой, чуть ниже, есть горячий вызов в 18%. И вот ты сидишь, и пялишься на этот тупой список в 10 вызовов.

(не говоря уж о том, что оптимизиррованный код оставляет new промежуточных данных!!!)

В VS я вообще почти на ощупь работаю. Удивительно ущербная система, от тестирования (smallcheck? хаха!) до отладки (eventlog? хаха!).

Date: 2015-07-13 08:46 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Какой еще eventlog, log4net или NLog наверно надо :)

Date: 2015-07-14 12:30 am (UTC)
From: [identity profile] antilamer.livejournal.com
Профайлер производительности у хаскеля действительно хороший. Я говорю про профайлинг памяти (а именно - поиск места, где я забыл добавить строгости).

Я помню, что https://github.com/jkff/timeplot/commit/5eba586188e0767c1cf59bc43c45d71ea7e73752 или какой-то похожий коммит у меня занял несколько дней, т.к. профайлер показывал мне какую-то бесполезную бурду (я уже не помню - может, стеки cost centres тогда не умел показывать?), и мне пришлось написать https://hackage.haskell.org/package/htrace, чтобы найти утечку. Возможно, с тех пор ситуация улучшилась - надо будет попробовать откатиться до того коммита и посмотреть, что мне покажет сегодняшний профайлер памяти.

В идеале, я бы хотел видеть профайл количества живых санков и занимаемых ими байтов, разбитый по стекам cost centres, так же как для профайлинга производительности. Такое уже есть?

(Профайлером VS я не пользовался, но в YourKit у меня, кажется, описываемых проблем не было.)

Date: 2015-07-16 12:39 pm (UTC)
From: [identity profile] thesz.livejournal.com
У меня не настолько длинные строки, тем не менее, код структурирован примерно так же.

Я тут недавно баловался профилированием, проблем с поиском проблемных мест не было. Были трудности, как исправить.

Мой анекдот против вашего анекдота.

Насчёт "такое уже есть" это вам лучше самому проверить. Мне хватает отчёта +RTS -p. Дерево вызовов там точно есть, с суммарной и отдельными стоимостями.

Date: 2015-07-16 12:40 pm (UTC)
From: [identity profile] thesz.livejournal.com
На всякий случай - функционал +RTS -p не менялся вот уже лет восемь, думаю.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 8th, 2025 01:14 am
Powered by Dreamwidth Studios