Size: a a a

Эликсир и Вунш

2019 August 28

SS

Sergey Samokhvalov in Эликсир и Вунш
пока что как-то так)
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
в базу еще не упаковал, но по крайней мере парсинг в 0.2 сек — возможно, будет интересно)
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
всмысле, на файл. всего ожидается около 130*0.2 , ну то есть около минуты. причем ускорить можно запросто
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
тупо сразу складывая в базу, а не аллоцируя тюплы и не перегоняя их туда-сюда
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
Sergey Samokhvalov
всмысле, на файл. всего ожидается около 130*0.2 , ну то есть около минуты. причем ускорить можно запросто
130*0.2 = 26 сек ? "около минуты" — бог арифметики
источник

AB

Alexey Bolshakov in Эликсир и Вунш
по скорости норм. посмотри, что с потреблением памяти
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
ну пока 100 метров, если все в один список тупо складывать. но тут же бинари копируются, ничего удивительного
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
при норм упаковке в базу это все должно убраться
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
в нифках кстати, есть замечательная штука enif_make_subbinary — можно из любого бинаря сделать слайс
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
жаль, эта фича в обычном эрланге хреново работает. в binary_split по-моему только. ну может еще в binary:part, но там смотреть надо
источник

AB

Alexey Bolshakov in Эликсир и Вунш
надо попробовать. я обычно новый бинарь делал в своем ниф. и оказалось медленнее, чем binary.part. наверное поэтому как раз
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
ну у меня парсятся строки в один так сказать, бинарь)
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
на си
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
т.е. у Account поле string_data — там все данные
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
а чтобы обратиться конкретно, скажем, к email или fname/sname, сделаны небольшие обертки в виде StringRef{ u32 offset, u32 size }
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
почему не std::string_view спросят знающие люди — отвечу, потому что sizeof(std::string_view) = 2 * 8 = 16 байт, и там работа с указателями. мне удобнее хранить индексы по смещению внутри. у меня же u32 + u32 = 8 байт, хотя хватило бы и u16 на самом деле
источник

AB

Alexey Bolshakov in Эликсир и Вунш
идею понял. я вот еще от utf отказался и перекодировал все в win1251 ))) чтобы каждая буква в байт помещалась )
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
не-не, это ты зря
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
потом при выводе обратно придется
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
вот от эскейпинга — да, стоит отказаться
источник