Пределы роста
Исходник на хаскеле, 2.8 мега, 6000 строк, экспорт из базы данных. GHC при компиляции падает с переполнением стека.
PS: Собралось:
D:\Programm\Haskell\ghc-6.10.2\bin\ghc.exe --make -o test2.exe "test2.hs" +RTS -K100000000
В процессе сожрало 1.5 гигабайта памяти :)
Екзешник получился 43 мегабайта. Отрабатывает сортировку списка и вывод проекции из него достаточно быстро.
Теперь мне пришло в голову, что можно сделать экспорт в более гуманный формат (CSV или вообще бинарный), а из метаданных, которые живут в базе, сгенерить его читалку, тогда компилироваться будет быстро, и можно будет проверить на больших объемах данных.
PS: Собралось:
D:\Programm\Haskell\ghc-6.10.2\bin\ghc.exe --make -o test2.exe "test2.hs" +RTS -K100000000
В процессе сожрало 1.5 гигабайта памяти :)
Екзешник получился 43 мегабайта. Отрабатывает сортировку списка и вывод проекции из него достаточно быстро.
Теперь мне пришло в голову, что можно сделать экспорт в более гуманный формат (CSV или вообще бинарный), а из метаданных, которые живут в базе, сгенерить его читалку, тогда компилироваться будет быстро, и можно будет проверить на больших объемах данных.
no subject
А вот это уже характерно. Когда лучшая программа на Хаскелле (которую всегда называют при просьбе показать большой проект) ест столько памяти на небольшом и довольно безобидном инпуте. Real World Haskell как он есть.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Я вообще проверяю идею "можно ли обрабатывать большие объемы данных хаскелем". Вообще судя по результатам - можно, вот только прикручу еще загрузку данных из внешнего файла, и запилю туда гига два экспорта из базы :)
no subject
no subject
no subject
Можно и строчку придумать, которая будет там выдавать какой-нибудь тапл в миллион полей и ghc на такой строчке тоже сломается.
no subject
no subject
no subject
no subject