@proRuby

Страница 420 из 1594
Evgeny
03.02.2017
08:28:01
Я юзал гем parallel, тоже вроде не сложно, если не thread safe задачи

Ilya
03.02.2017
08:28:22
Причем злесь потоки и фоновые задачи?
потому что фоновые задачи выполняются в много потоков, нет?)

Evgeny
03.02.2017
08:29:01
я лучше crystal выберу ?
А как он решит задачи распараллеливания? Или я что-то не то думаю) А так кристал быстро решит задачи наверное, смотря какие)

Konstantin
03.02.2017
08:29:21
потому что фоновые задачи выполняются в много потоков, нет?)
Ты не о том говоришь. Я не говорю о фоновых задачах. Я говорю о распараллеливании обработки запросов на вэб

Google
Alexander
03.02.2017
08:30:31
А как он решит задачи распараллеливания? Или я что-то не то думаю) А так кристал быстро решит задачи наверное, смотря какие)
Он даже в синхроне будет быстр, плюс скоро должны сделать асинхрон, плюс я готов руками его параллелить (воркерами)

Evgeny
03.02.2017
08:31:28
Как то json генератор делал на кристале, впечатлило время выполнения)

И разбор быстрее

файл тестил по 100мб

Konstantin
03.02.2017
08:33:47
обработки запроса или запросов?
Ммм... Ну в принципе того и того. Но я с jruby не работал, не могу в деталях подсказать

Evgeny
03.02.2017
08:34:17
honeybadger-exceptions.pdf, седня в рассылки руби викли была книга, вроде ничего такая. Примеры кастомных эксепшенов прикольные, вложенные: # RuntimeError caused by EatingError while eating soup # eating.rb:9:in `fail_and_reraise' ПРикольно)

Konstantin
03.02.2017
08:34:27
а как мучались? race conditions происходило
И это тоже вроде, но это надо не у меня спрашивать ) Можно позавать в чат того, кто с этим работал

Dima
03.02.2017
08:34:30
он уже стыдливо удалил
детский сад. статьи урезать. windows не использтвать :)

Tim
03.02.2017
08:36:33
честь не позволила смолчать на обидную фразу

Dima
03.02.2017
08:36:38
Ммм... Ну в принципе того и того. Но я с jruby не работал, не могу в деталях подсказать
вот интересно jruyb это же просто очередная имплементация руби. Что в не такого осбенного? Какие особые скилы, навыки, вопросы возратсают по запуске jruby

Google
Evgeny
03.02.2017
08:37:28
Наверное немного java надо знать, к ней могут быть затыки мелкие + Jvm особенности

Tim
03.02.2017
08:37:52
зачем java надо знать то?

это язык, а jvm это платформа так сказать

Ilya
03.02.2017
08:38:27
Ммм... Ну в принципе того и того. Но я с jruby не работал, не могу в деталях подсказать
я не сталкивался с настолько тяжелыми запросами, не могу сказать. Но вообще, если респонс тайм большой, то скорее всего где-то есть очень узкое место (ошибка в проекторовании, ошибка в разработке). Правильный способ - это устранить это место, а распараллеливать обработку такое себе. Плюс, к примеру если на сервере 8 ядер и веб-сервер работает в 8 потоков, это может привести к еще большему увеличению времени отклика сервера.

Dima
03.02.2017
08:39:00
Наверное немного java надо знать, к ней могут быть затыки мелкие + Jvm особенности
на сколько я знаю java - прекомпилируемый язык. он формирует байткод который запускается на вирутальной машине. Какого плана могут быть затыки с jvm?

разве jruby не формирует байт код,

Ilya
03.02.2017
08:39:24
Еще раз повторюсь, никогда не видел, чтобы реквест обрабатывали в несколько потоков

Konstantin
03.02.2017
08:39:28
я не сталкивался с настолько тяжелыми запросами, не могу сказать. Но вообще, если респонс тайм большой, то скорее всего где-то есть очень узкое место (ошибка в проекторовании, ошибка в разработке). Правильный способ - это устранить это место, а распараллеливать обработку такое себе. Плюс, к примеру если на сервере 8 ядер и веб-сервер работает в 8 потоков, это может привести к еще большему увеличению времени отклика сервера.
Так то вообще там все просто получается. Вместо того, чтобы как у юникорнов параллелить по процессам все, параллелишь на какой-нибудь пуме по потокам. Переключение потоков быстрее, чем переключение процессов + jvm дает профит по мультипроцессорности. Отсюда и прирост в производительности. Ну и сам запрос если тяжелый, например работа с массивами, то это тоже легко параллелится и выполняется быстрее

Evgeny
03.02.2017
08:39:30
зачем java надо знать то?
А разве там нет require java файлов, кажется гже то видел, возможно ошибаюсь

Dima
03.02.2017
08:39:34
котой потом просто выполянется на интерпретаторе оного.

Konstantin
03.02.2017
08:39:50
Т.е. прироста в скорости обычных операций не будет. Но код можно параллелить.

Tim
03.02.2017
08:39:54
ну а MRI на сях завязан, и что

Dima
03.02.2017
08:39:57
А разве там нет require java файлов, кажется гже то видел, возможно ошибаюсь
оно есть как плюха. чтоб подтянуть модули. Но если этого не исползьовать в чем затыки?

я уже который раз слышку о jruby как чуть ли не о отдельном языке программирвоания.

что удивляет.

Evgeny
03.02.2017
08:41:26
Есть еще трюфель

ПРо него много в последнеее время гвоорят

Dima
03.02.2017
08:41:42
Есть еще трюфель
что это такое?

Ilya
03.02.2017
08:41:54
я уже который раз слышку о jruby как чуть ли не о отдельном языке программирвоания.
это скорее другой стек, а не другой мир. Не все гемы саппортят jruby.

Evgeny
03.02.2017
08:42:04
https://github.com/graalvm/truffleruby

Google
Alexander
03.02.2017
08:43:34
https://github.com/graalvm/truffleruby
Oracle смущает. доверяют?

Ilya
03.02.2017
08:43:42
ну его еще меньше гемов саппортит)

я про трюфель)

Alexander
03.02.2017
08:43:55
не продакшен-рэди(

Evgeny
03.02.2017
08:43:55
Если Oracle и IBM пытаются руби поднять на новый уровень, значит язык наверняка им нравится и не хотят с ним прощатся

Dima
03.02.2017
08:44:04
Oracle смущает. доверяют?
а вчем смущение, столкьо крупных продуктов.

Alexander
03.02.2017
08:44:26
а вчем смущение, столкьо крупных продуктов.
ну как-то у них подпортилась репутация с java, насколько я помню

и многие теперь боятся, что они могут в любой момент openjvm закрыть (забросить), например

Dima
03.02.2017
08:45:00
ясно

Evgeny
03.02.2017
08:47:09
Единственное, что не очень хорошо, все свои имплементации делают, а что то одно дополить никак. В итоге зоопарк большой, а толку не много, кто то у себя чисто вкорпоративных нуждах юзают и все. Руби 3х3 в 2020г это оооочень долго. Уже говорили например совместить бы MRI и например Rubinuis, было бы уже хорошо, но каждый свое пытается пропихнуть

@lbvf50, ты где тов конторе работаешь или сам для себя что-то пилишь?

Evgeny
03.02.2017
08:52:16
Ясно)

Dima
03.02.2017
08:53:12
Evgeny
03.02.2017
08:53:41
) А ты с какого города?

Dima
03.02.2017
08:53:47
Лед тронулся, госопода присяжные заседатели. Командовать парадом буду я.

Tim
03.02.2017
08:54:43
)

Google
Ilya
03.02.2017
08:55:25
ты там точно сам не тронулся? :DDDDD

Alexander
03.02.2017
09:11:04
$ gem i nokogiri Building native extensions. This could take a while... ERROR: While executing gem ... (TypeError) no implicit conversion of nil into String крайне информативно, люблю такое

люблю, блядь, rbenv

Alan
03.02.2017
09:13:07
Jruby хорош в мультипроцессорности, mri не умеет этого. Но господа mri с его gil даёт thread safe, jruby нет, так что если вы уверены в своих силах в плане потоков и распараллеливания процессов ручками, то без проблем- берите и пилите:)

В остальном я особо пока не касался jruby

Alan
03.02.2017
09:16:12
хорошо описал (только "берите", плиз)
Спасибо, описАлся: с телефона:)

Alan
03.02.2017
09:16:54
а что значит давет thread safe. Как это на практике проявляется?
К примеру ты во всех потоках инкрементируешь значение одной переменной

Admin
ERROR: S client not available

Evgeny
03.02.2017
09:16:59
Это когда например запись в массив блокирует один поток, чтобы его второй не перезаписал

Alan
03.02.2017
09:17:28
Если потоков 1000, а изначально переменная равна нулю

То после завершения программы получишь в mri переменную равную 1000

А в jruby не гарантирована 1000 нк выходе, будет 800-900

Dima
03.02.2017
09:18:52
спасибо

Alan
03.02.2017
09:19:07
Потому что не знают потоки о том что другие сейчас туда пишут

В mri gil следит за этим и блокирует запись другим потокам пока пишет один

Dima
03.02.2017
09:19:52
наверно в thread safe есть какие-то очереди к доступу на объект, чтоб ве операции произвести

Google
Алексей
03.02.2017
09:20:34
Тоесть если умеешь руками делать то мри надежнее?

Evgeny
03.02.2017
09:20:43
Мьютексы вроде там

Alan
03.02.2017
09:20:48
В нутрях на самом деле запись идёт всегда в одном потоке

Aldar
03.02.2017
09:23:27
https://en.wikipedia.org/wiki/Compare-and-swap

в итоге все в эту инструкцию упирается

https://mortoray.com/2011/12/16/how-does-a-mutex-work-what-does-it-cost/

mutex использует cas, если вход в критическую область закрыт то усыпляет поток

Alexander
03.02.2017
09:28:40
$ gem i nokogiri Building native extensions. This could take a while... ERROR: While executing gem ... (TypeError) no implicit conversion of nil into String крайне информативно, люблю такое
вроде решил с помощью: 1. удаления переменной $GEM_HOME 2. установкой плагина rbenv-user-gems

я сдался, нахуй rbenv не осилил на арче

Alexander
03.02.2017
10:46:09
ну вот так. у тебя норм переключаются версии, подхватываются гемы, исполняемые файлы? я так и не смог добиться стабильности в этом

ручной работы много получается

а может косяк был из-за system версии ?

но уже стрёмно rvm удалять, всё засрал наверняка

но я попробую отважно

с ним шелл долго грузится(

Dima
03.02.2017
12:29:41
хз че ты там не осилил.

всё нормально переключалось.

на крайняк rbenv rehash

Alexander
03.02.2017
12:43:12
хз че ты там не осилил.
какой дистр? я вот уже догадываюсь, что проблема из-за system-версии, может ещё каких конфигов

типа $GEM_HOME, ~/.gemrc и прочее

Страница 420 из 1594