Marat
Test_old и test_old2 одинаково?
Я на последнем коммите тестил, там zipped_inlined вроде
Alexander
Последний коммит поломан как я писал. я могу сказать какой надо. По истории там reformat в коммите написано - вот его. rev: 76e346f
Loo
https://github.com/chronotope/chrono/issues/224
Loo
ну понятно короче
Alexander
И этот chrono тут причем? Вообще не связанные вещь.
Loo
да я с тем же сталкивался
Loo
сделали таймстэмпы в основном формате
Loo
числовые и только при крайней необходимости юзаем хроно
Aleksey
то есть лучше не использовать chrono?
Loo
@ialeksey использовать то можешь, но не в тех местах где у тебя нагрузка высокая будет. зависит конечно от твоего окружения и того что ты подразумеваешь под высокой нагрузкой
Alexander
Ну да, тоже к этому пришел. Хроно похоже не только в сер/де тормозной, но и сам по себе тормозной. Таймстемпы намного быстрее. Но это всё никак не связано с тем что я вчера писал.
Alexander
А поскольку Хроно даже как правило в логах, то и с ними надо аккуратно быть.
Alexander
А вот тут действительно есть разница. Очень странно
Это не единственная странность. Их ещё много.
Marat
Это не единственная странность. Их ещё много.
Так, добавил #[inline] к next и next_back и разница между if let и and_then пропала
Marat
Просто не инлайнилось получается
Alexander
Не, не, подожди, inline я добавил позже и уже по другой причине.
Alexander
inline сильно помог next_back
Alexander
А next сильно помог and_then
Marat
Нет, я вот сейчас добавил и разницы между if let и and_then нету
Marat
Видимо по какой-то причине не инлайнилось когда if let
Alexander
Ну значит или такой вариант.
Alexander
Те and_then инлайнится? Ну ок.
Alexander
А почему next_back не инлайнится даже с and_then а только если принудительно указать.
Alexander
Но вообще, опять же, оно на вид не отличается и должно инлайнится бы, но даже без инлайна в 3 раза просесть что-то перебор мне кажется, хотя тут хз.
Αλεχ
Если компилятор че-то не инлайнит, это косяк, но не ужас ужас
Αλεχ
бежать и переписывать все из-за этого явно не стоит
Alexander
Согласен. Ну это тут. В for_each просадка вроде как с инлайном не связана. Но тут что-то более плавающее похоже.
Aleksey
@LooMaclin я в Postgres храню как Timestamp а каким типом это лучше представить в модели, если не чем-то из chrono?
Marat
А тут никто в cbindgen не шарит? Хочу чтобы он дефайнил константу которая находится в зависимом крейте
Loo
@LooMaclin я в Postgres храню как Timestamp а каким типом это лучше представить в модели, если не чем-то из chrono?
ну это зависит от того что ты с этим таймстэмпом будешь делать: 1) если нужно чтобы можно было работать с этим как с датами и прямо в модели такой тип удобный лежал - можешь сделать NaiveDateTime из chrono: http://docs.diesel.rs/chrono/naive/struct.NaiveDateTime.html#method.from_timestamp 2) если нужно просто смаппить то возьми какойнить u32 к примеру и мапай в модель, а потом только при необходимости обрачивай в нужный тип (NaiveDateTime, или ещё какой) для удобства работай с ним 3) если юзаешь дизель то у них для Timestamp есть маппинг http://docs.diesel.rs/diesel/sql_types/struct.Timestamp.html
Aleksey
сейчас использую chrono::NaiveDatetime пока ничего не делаю, может и не буду, просто хранится и сериализуется в API да, использую diesel, посмотрю на Timestamp как-то путаюсь в этих форматах, не понимаю, зачем какой нужен
Loo
Naivedate такой же тормоз как и все другие у них. Разницы никакой.
это всё относительно. у него может быть это и не важно особо будет
Loo
нельзя без сравнения говорить о тормознутости
Loo
по сравнению с сериализацией/десериализацией примитивных типов - да конечно тормозной
Денис
по-моему ничего лучше i32/i64 для хранения таймстампов не придумали)
Loo
ибо если в строке хранить какойнить rfc3339 и постоянно его ебашить туда сюда - естественно будет не очень при большем объёме полей этого типа
Alexander
При сериализации они хз что делают. Могли бы и тайнстемп + оффсет делать или как-то так, это бы не отличалось по скорости. Ну это так - пальцем в небо, я хз что они там делают. Но даже просто строки и то лучше сериализуются чем их структуры.
պլհկ
Aleksey
у меня вроде не появятся :) просто колонка created_at по производительности пока никаких особых требований нет, просто хотелось бы понять, каким типом это лучше описывать
Loo
@inv2004 такое ощущение что тебе что то типо нужно https://docs.rs/chrono/0.4.0/chrono/naive/struct.TsSeconds.html
Loo
В смысле из дизеля? Или как число?
можешь как число сделать
Loo
не обязательно дизель тянуть для этого
Alexander
@inv2004 такое ощущение что тебе что то типо нужно https://docs.rs/chrono/0.4.0/chrono/naive/struct.TsSeconds.html
Да, мне это в issue и написали, но это отдельная ботвень не критичная для меня в сравнении с тем о чем я вчера писал.
պլհկ
И Т Е Р А Т О Р Ы Т Е Р А Т О Р Ы
Loo
Да, мне это в issue и написали, но это отдельная ботвень не критичная для меня в сравнении с тем о чем я вчера писал.
окей. давай perf stat какой нить посмотрим. для обоих бенчмарков твоих. может там чтонить интересное будет
Mark
И Т Е Р А Т О Р Ы Т Е Р А Т О Р Ы
И Т Е Р А Т О Р Ы Т Т Е E Р Р А А Т Т О О Р Р Ы Ы
Aleksey
Дизель у меня уже есть :)
Alexander
окей. давай perf stat какой нить посмотрим. для обоих бенчмарков твоих. может там чтонить интересное будет
Я вчера привел все в единообразный for и сейчас запустил, через час досчитается. perf не собираю, надо под это отдельно тогда писать тест. Если сейчас будет большое расхождение >10% то начну думать как собирать.
Alex
И Т Е Р А Т О Р Ы Т Т Е E Р Р А А Т Т О О Р Р Ы Ы
И Т Е Р А Т О Р Ы Т Т Е Р A T О Р Ы Е Е E Р A T О Р Ы Р Р Р Р A T О Р Ы А A A A А T О Р Ы Т T T T T Т О Р Ы О О О О О О О Р Ы Р Р Р Р Р Р Р Р Ы Ы Ы Ы Ы Ы Ы Ы Ы Ы
Sergey
бля
Sergey
давно уже хотел так сделать
Loo
ебать исскуство началось.
Loo
у человека проблемы А ВЫ СМЕЁТЕСЬ.
Sergey
И Т Е Р А Т О Р Ы Т Т Е Р A T О Р Ы Е Е E Р A T О Р Ы Р Р Р Р A T О Р Ы А A A A А T О Р Ы Т T T T T Т О Р Ы О О О О О О О Р Ы Р Р Р Р Р Р Р Р Ы Ы Ы Ы Ы Ы Ы Ы Ы Ы
vladislav
ору
Alexander
Они смеются потому что видимо без итераторов пишут. Ну т.е. ничего не пишут :)
vladislav
wut a faaaaak
Loo
Они смеются потому что видимо без итераторов пишут. Ну т.е. ничего не пишут :)
:) да не. некоторые пишут. просто расточат стирает границы между добром и злом
Антон
Alexander
Ну да, когда какой-нить Ява девелопер будет тыкать в растомана пальцем, потому что Ява оказалась в 2 раза быстрее новомодного языка на простом цикле, которые тот долго форсил в прод из-за перформанса, то можно просто пойти в расточат погыгыкать над гошкой и станет легче :)
Антон
define функциональный
Чуть ли не единственное, в чём разные определения ФЯП сходятся — в том, что в программе используются иммутабельные данные
Антон
в чем соль функциональных языков?
А вообще в том, что для их автоматического анализа и верификации значительно проще разрабатывать инструменты
Alex
по моему фяп это язык где решена https://en.wikipedia.org/wiki/Funarg_problem в обе стороны
Sergey
define функциональный
как и хаскель
Антон
все эти хероборы для монад
Монада — способ инкапсулировать последовательность действий, где каждая операция может выполняться по разному в зависимости от предыдущей. Конструкторов типов, над которыми можно этот класс типа определить, достаточно много. IO — лишь частный случай
Alexander
Я всегда думал что функциональный - значит в коде преобладает композиция функций, но не уверен что это прямо верное определение.
Anonymous
а монадой IO сделали просто чтобы такие вычисления удобнее было композировать
а do-нотацию сделали просто чтобы такие вычисления удобнее было композировать
Aleksey
Ребят, если кто будет в Минске в конце марта, заходите. https://www.meetup.com/ru-RU/Rust-в-Минске/events/248922692/