Size: a a a

Сообщество Scheme

2021 February 13

AP

Artyom "avp&quo... in Сообщество Scheme
Aydar Zarifullin
О, привет, тут упоминали твою либу для обработки csv
Вижу.  Задавайте вопросы -- помогу, чем смогу.
источник

AP

Artyom "avp&quo... in Сообщество Scheme
Сразу скажу, на больших объмах данных (десятки мегабайт текста и больше) не тестировал.  Если ошибки вылезают -- буду признателен за информацию.
источник

a

anton in Сообщество Scheme
Artyom "avp" Poptsov
Сразу скажу, на больших объмах данных (десятки мегабайт текста и больше) не тестировал.  Если ошибки вылезают -- буду признателен за информацию.
@somevoid был несколько недоволен производительностью
источник

AP

Artyom "avp&quo... in Сообщество Scheme
А можно метод оценки производительности узнать?  Я бы проверил.
источник

a

anton in Сообщество Scheme
Удивительный факт в 2020 году схема в исполнении гуйла распаршивает 10-тимегабайтовый CSV документ аж за 7 (СЕМЬ КАРЛ) минут ;)
источник

AP

Artyom "avp&quo... in Сообщество Scheme
ОК
источник

AP

Artyom "avp&quo... in Сообщество Scheme
OK
источник

AZ

Aydar Zarifullin in Сообщество Scheme
Я пытался проверить в чем трабла, но не смог понять, guile похоже вообще медленно читает (Алекс хотел скорость сопоставимую с питоном)

P.S питоновый csv модуль это pure python а не сишный биндинг (так что должно быть возможно)
источник

AP

Artyom "avp&quo... in Сообщество Scheme
Aydar Zarifullin
Я пытался проверить в чем трабла, но не смог понять, guile похоже вообще медленно читает (Алекс хотел скорость сопоставимую с питоном)

P.S питоновый csv модуль это pure python а не сишный биндинг (так что должно быть возможно)
Там надо парсер Unix-формата переписать: он не очень хорошо сделан, давно его писал.

Сейчас потестировал на https://corgis-edu.github.io/corgis/csv/covid/

$ time dsv covid.csv 
...
real  3m2,481s
user  4m1,704s
sys  0m37,113s


И без вывода на экран:
$ time dsv -s covid.csv 
File:      covid.csv
Format:    unix
Delimiter: ',' (0x2c)
Records:   53591

column       width      
1            10          
2            12          
3            11          
4            12          
5            13          
6            44          
7            26          
8            17          
9            20          
10           14          

real  2m4,093s
user  3m22,650s
sys  0m6,795s
источник

AP

Artyom "avp&quo... in Сообщество Scheme
Для RFC4180:

$ time dsv -F rfc4180 -s covid.csv
File:      covid.csv
Format:    rfc4180
Delimiter: ',' (0x2c)
Records:   53591

column       width      
1            8          
2            10          
3            9          
4            10          
5            11          
6            42          
7            13          
8            15          
9            18          
10           12          

real  0m52,580s
user  1m14,754s
sys  0m0,637s
источник

AP

Artyom "avp&quo... in Сообщество Scheme
Парсер для RFC4180 переписывал относительно недавно, там нормальный ДКА получился.  А для Unix там грязный хак: хотя тоже и ДКА, но читаются строки, потом нарезаются на части по разделителю и склеиваются вместе, если разделитель экранирован.  Как-то так.  Можно сделать лучше.
источник

A ß in Сообщество Scheme
блин, как жаль что у меня нету нормального гуля
источник

AP

Artyom "avp&quo... in Сообщество Scheme
Кстати, тест выше делал на GNU Guile 2.2.7, на Ubuntu GNU/Linux.
источник

A ß in Сообщество Scheme
есть вариант 2.2.7, но я меньше чем на 3 не согласен
источник

AP

Artyom "avp&quo... in Сообщество Scheme
Сейчас тест на 3-й проведу.
источник

AP

Artyom "avp&quo... in Сообщество Scheme
Результат с Guile 3.0.1:

$ time dsv -F rfc4180 -s covid.csv
File:      covid.csv
Format:    rfc4180
Delimiter: ',' (0x2c)
Records:   53591

column       width      
1            8          
2            10          
3            9          
4            10          
5            11          
6            42          
7            13          
8            15          
9            18          
10           12          

real  0m53,210s
user  1m18,289s
sys  0m0,587s

$ time dsv -s covid.csv
File:      covid.csv
Format:    unix
Delimiter: ',' (0x2c)
Records:   53591

column       width      
1            10          
2            12          
3            11          
4            12          
5            13          
6            44          
7            26          
8            17          
9            20          
10           14          

real  1m48,940s
user  3m18,388s
sys  0m8,579s
источник

AP

Artyom "avp&quo... in Сообщество Scheme
Да, для Unix формата DSV примерно в 3 раза медленнее парсер работает.  Надо исправлять.
источник
2021 February 14

AP

Artyom "avp&quo... in Сообщество Scheme
В общем, я на ветке master переделал парсер для Unix в Guile-DSV — почти в три раза ускорил его работу, судя по тестам.

Было:
$ time dsv -s covid.csv

...  

real  1m48,940s
user  3m18,388s
sys  0m8,579s

Стало:
$ time dsv -s covid.csv

...  

real  1m14,067s
user  1m34,422s
sys  0m0,975s


@somevoid буду признателен за тестирование.
источник

AP

Artyom "avp&quo... in Сообщество Scheme
Вот не надо, это по моему приглашению человек.
источник

T

TGG in Сообщество Scheme
Artyom "avp" Poptsov
Вот не надо, это по моему приглашению человек.
источник