Size: a a a

2020 February 19

AT

Artem Tepponen in Modern::Perl
Да ладно, CRM - юзаем что удобно, какие-нибудь долбанутые отчеты - генерим чистый SQL. Проблему нашли
источник

AP

Anton Petrusevich in Modern::Perl
Oleg Pronin
Ускорение чего-либо имхо должно быть сделано не в ущерб удобству и другим радостям. Я знаю, ORM vs plain sql это тема для холивара, но DBIC это все таки high level обьектное API, а DBI это low level sql, требующее написания ряда прослоек сверху чтобы стать удобнее. Поэтому отказаться от dbic когда он уже давно годами юзается и пророс корнями во многие проекты,  в пользу dbi, в некотором роде похоже на отказ от catalyst/mojolicious в пользу use CGI;
Кому то это ок, кому то это нет. ))
для установления базовой линии: https://gist.github.com/jef-sure/adcc2fbe9f498477d18d545eb8ffab7f
источник

AP

Anton Petrusevich in Modern::Perl
когда я говорю "в пять раз" — по этому бенчмарку, это действительно так.
источник

AP

Anton Petrusevich in Modern::Perl
в общем, решайте сами, что делать с этой информацией
источник

OP

Oleg Pronin in Modern::Perl
Anton Petrusevich
когда я говорю "в пять раз" — по этому бенчмарку, это действительно так.
Да это давно всем известный факт что dbic дико тормозной для cpu тачки с перлом. Там тонна бездарного кода копирующено постоянно все направо и налево, активное использование тормозной реализации next::method из перла и много чего еще. Имплементация подкачала.
Но абстрагируясь от скорости, вещь вполне юзабельная
источник

AP

Anton Petrusevich in Modern::Perl
Абстрагироваться от скорости - не принимать её как параметр. Это не всегда допустимо...
источник

W

Warstone in Modern::Perl
ммм... Сферический код в вакууме... А pg_getcopydata и split раза 2, насколько я помню, быстрее чем dbi, и?
источник

W

Warstone in Modern::Perl
А С++ код работы с libpq - еще быстрее... К чему код выше-то?
источник

AK

Andrey Konovalov in Modern::Perl
Oleg Pronin
Да это давно всем известный факт что dbic дико тормозной для cpu тачки с перлом. Там тонна бездарного кода копирующено постоянно все направо и налево, активное использование тормозной реализации next::method из перла и много чего еще. Имплементация подкачала.
Но абстрагируясь от скорости, вещь вполне юзабельная
next::method - это же мысленная корова methods resolving order'а c3, нельзя такое обижать. Как и нельзя не делать множественное наследование, хотя большинство яп оно не поддерживается, и люди как-то там выживают из последних сил
источник

OP

Oleg Pronin in Modern::Perl
Andrey Konovalov
next::method - это же мысленная корова methods resolving order'а c3, нельзя такое обижать. Как и нельзя не делать множественное наследование, хотя большинство яп оно не поддерживается, и люди как-то там выживают из последних сил
Если это не сарказм, то поддержу. С3 rules. И я его не обижал, я сказал что нативная реализация из коробки тормозная. Она в 10 раз медленнее чем базовый SUPER.
Пользуясь случаем, пропиарю модуль next::XS. Он в 10 раз быстрее чем нативная реализация, соответственно равен по скорости SUPER.
Код менять не надо, он заменяет все нативные next::method, next::can, и maybe::next::method.
источник

AP

Anton Petrusevich in Modern::Perl
dbi у нас есть как некоторая базовая линия. можно сделать хуже, можно сделать лучше. Все перловые решения, что я видел, хуже в плане скорости. Даже моё, поскольку чистый перл. DBI всё-же на иксес оптимизирован
источник

OP

Oleg Pronin in Modern::Perl
так они все используют dbi. Понятное дело dbi + чтото = медленнее
источник

AP

Anton Petrusevich in Modern::Perl
Oleg Pronin
так они все используют dbi. Понятное дело dbi + чтото = медленнее
я, в общем, конкретно про https://metacpan.org/source/TIMB/DBI-1.643/Driver_xst.h#L90
источник

AP

Anton Petrusevich in Modern::Perl
имплементация fetchall есть перловая, там, собсна, всё просто — доставать построчно и складывать в массив. тем не менее, есть оптимизация на XS, которая, кстати, ломает RootClass параметр...
источник

AP

Anton Petrusevich in Modern::Perl
источник

AP

Anton Petrusevich in Modern::Perl
т.е. DBI внутри это не только минимальный набор на XS, а остальное поверх на перле, но и некоторые оптимизированные функции, которые приходится порой повторять изза сломанного RootClass...
источник
2020 February 20

GF

George First in Modern::Perl
#JobPost в компании Upwork открыто порядка 20 вакансий на позиции frontend и backend разработчиков. Мы ищем звезд и суперзвезд которые усилят наш департамент. Full-time remote контракты. Скидывайте мне в личку ссылки на профили, я передам их в HR департамент. Для понимания о чем речь, одна из джоб https://www.upwork.com/jobs/_~015924e27629726371/
Мы также ищем перловиков. Замените Java на Perl в описании выше и получится вакансия для перловика
источник

AP

Anton Petrusevich in Modern::Perl
George First
#JobPost в компании Upwork открыто порядка 20 вакансий на позиции frontend и backend разработчиков. Мы ищем звезд и суперзвезд которые усилят наш департамент. Full-time remote контракты. Скидывайте мне в личку ссылки на профили, я передам их в HR департамент. Для понимания о чем речь, одна из джоб https://www.upwork.com/jobs/_~015924e27629726371/
Мы также ищем перловиков. Замените Java на Perl в описании выше и получится вакансия для перловика
> Замените Java на Perl в описании выше и получится вакансия для перловика

это упражнение на оператор s? тест на профпригодность? или просто стыдно было написать perl в вакансии, типа "пацаны не поймут"?
источник

GF

George First in Modern::Perl
Это пример вакансии для бекенда. У меня нет под рукой ссылок на все вакансии. Но описания примерно одинаковые. Никто не стесняется перла и не ущемляет меньшинства.
источник

AP

Anton Petrusevich in Modern::Perl
о каких деньгах хотя бы речь? раз уж речь про звёзд и мега-звёзд?
источник