
Mikhail
26.06.2017
18:23:45
я подозреваю, что там на каком-то этапе дед код, который для доказательств используется не вырезается как минимум - оттуда лишние вызовы, которых там намного больше чем непосредственно самих мат-операций
скинь пример глянуть
https://github.com/Rudogma/scala-superquants/blob/master/shared/src/test/scala/superquantstests/BenchDoublePrecision.scala
собственно это просто взял и собрал. но шейплесс я ручками с гитхаба запаблишил в локал под натив. у них сбт готов, но у меня оно ниоткуда не выкачалось само

Alexandr
26.06.2017
18:28:36

Aleksei
26.06.2017
18:30:46
вот кстати в тг уже добавили возможность ввести впн =)

Google

Nick
26.06.2017
18:42:37
@rudogma гляну
@rudogma скинь лучше в лс

Arthur
26.06.2017
18:57:42
вопрос не совсем по скале, если мое приложение которое работает с реббитом упадет (и я не закрою коннекшн), коннекшн в реббите продолжит жить и повиснет пока я его не рестартану?

KrivdaTheTriewe
26.06.2017
19:00:33

Roman
26.06.2017
19:01:36

Mikhail
26.06.2017
19:02:06
@rudogma скинь лучше в лс
https://gist.github.com/Rudogma/d9d7e71d81d8a80a0f5b678e92ec3ade инструкшн. с релиз билдом и без гц все таки чуть лучше стало ( я их случайно не там прописал), но все равно 29 секунд против 1 секунды на жвм

Vladimir
26.06.2017
19:04:10
30 сек, таймаут сокета на линухе

Mikhail
26.06.2017
19:07:30

Arthur
26.06.2017
19:11:33
ну это понятно
вопрос в том как сделан реббит

Vladimir
26.06.2017
19:13:41

Mikhail
26.06.2017
19:13:52
вопрос в том как сделан реббит
запускаешь в докере. коннектишься. отрубаешь сторону с которой коннектился - не просто процесс убиываешь, лучше именно сеть отключить (поэтому можешь со второго докера посмотреть) и потом смотреть открыт ли там еще порт)

Google

Mikhail
26.06.2017
19:17:54

Aleksey
26.06.2017
19:21:17
Так, если телеграм заблокируют то встречаемся здесь https://gitter.im/scala-russian/Lobby (ну или не встречаемся, как хотите).

Ivan
26.06.2017
19:22:00
а как же vpn?

Aliaksandr
26.06.2017
19:22:12

Mikhail
26.06.2017
19:22:37

Wystan
26.06.2017
19:22:43
до встречи в фидо. ирл - это просто повод познакомиться с админами

Bernal
26.06.2017
19:22:56
А вы говорили: никакой политики.

Wystan
26.06.2017
19:23:13
Причем здесь политика?

Aleksey
26.06.2017
19:23:32

Mikhail
26.06.2017
19:23:32

Daniel
26.06.2017
19:24:15

Aleksey
26.06.2017
19:25:31

Daniel
26.06.2017
19:26:02
английский не видел)
а так проблем с пониманием вроде нет

Sergey
26.06.2017
19:28:10
сижу тут до последнего и не рыпаюсь, зобанят, там уже и найдемся где-нибудь
а пока и тут хорошо

Nick
26.06.2017
19:31:28
@rudogma Thread.sleep(sleep)
красава

Mikhail
26.06.2017
19:32:03

Alex
26.06.2017
19:33:45

Google

Nick
26.06.2017
19:37:23
@rudogma убери все лишнее

Mikhail
26.06.2017
19:37:57

Nick
26.06.2017
19:38:03
Thread.sleep лишний
на самом деле эт плохой бенчмарк) но у тебя порядки прям адские какие-то

Mikhail
26.06.2017
19:38:30

Nick
26.06.2017
19:41:19
println(s"[run#${i}] ended in ${duration}ms")
у тебя типа это выводит разницу 40 секунд?

Mikhail
26.06.2017
19:42:07
на самом деле эт плохой бенчмарк) но у тебя порядки прям адские какие-то
это достаточно тривиальная хрень, которая показывает гигантский разрыв вполне по честному - так зачем мне еще какие-то бенчмарки? если бы оно шибко быстро выполнялось - там бы еще бабка на двое сказала отчего оно так быстро. но ежели простая математика - просто затегированная выполняется в 30 раз медленее - что там еще бенчить? там ниже цикл на примитивах дабл - он на нативе за 900мс у меня отрабатывает. поэтому там нет ничего лишнего и все показательно.

Nick
26.06.2017
19:44:53
да даже 900мс эт много
над будет покопать

KrivdaTheTriewe
26.06.2017
19:52:14
Ника озадачили , это редкое явление

Mikhail
26.06.2017
19:57:12
да даже 900мс эт много
вот специально даже. сделал абсолютно чистый проект. без зависимостей - только два цикла (5 раз по 30кк) и исполнение формулы на лонгах - те же 800 мс на каждые 30кк формулы в релизе без гц

Nick
26.06.2017
19:59:34
добавь в триаду avx2
потому что эт точно векторизация

Mikhail
26.06.2017
20:02:00
я когда первый раз про скаланатив услышал - думал, что решили скала синтаксис + систему типов в натив делать. думал так приятно будет теперь плюсовый код на скале писать. а потом оказалось, что там управления памятью нет, гц есть и с эфемерал типами не дружит, доказательства не вырезает. грустно вобщем) надо свой транслятор в плюсы написать ?

Nick
26.06.2017
20:02:20
как это нет?
делаешь gc none
и юзаешь clib
формально у неитива уже есть вообще все, только обертки напиши)

Mikhail
26.06.2017
20:03:20

Google

Nick
26.06.2017
20:03:58
free
у тебя же есть malloc и free

Mikhail
26.06.2017
20:05:30

Nick
26.06.2017
20:09:52
apply там явно вызовет new
если знаешь, layout листа, то можешь создать его через malloc и потом закастить xD

Mikhail
26.06.2017
20:11:20

Daniel
26.06.2017
20:11:37
https://blog.buildo.io/exploring-scala-ast-in-your-browser-dc0b1fb743e0
красивульки

Mikhail
26.06.2017
20:11:37
или на жвм. в любом случае быстрее будет)

Admin
ERROR: S client not available

Mikhail
26.06.2017
20:14:44

Daniel
26.06.2017
20:14:56
угу

Nick
26.06.2017
20:15:53
@rudogma кстати можешь попробовать создать лист и потом скастить и вызвать фри,вроде

Mikhail
26.06.2017
20:19:16

Roman
26.06.2017
20:22:15
А почему бы не завернуть бенчмарк в jmh с perfasm и таки не узнать в чем причина тормозов? А то гадать на кофейной гуще можно весьма долго.

Nick
26.06.2017
20:32:17
Roman native не работает с jmh

Roman
26.06.2017
20:32:46
Ах, вы про нейтив. Я упустил этот момент

Nick
26.06.2017
20:33:49
@rudogma а если не сложно, добавь ll code в gist

Mikhail
26.06.2017
20:34:36

Nick
26.06.2017
20:35:37
ll файл скинуть

D
26.06.2017
21:03:05
http://classicprogrammerpaintings.com/post/142321815809/hieronymus-bosch-a-visual-guide-to-the-scala

Google

Oleg
27.06.2017
02:19:50
Саратов
Я так понял, что Саратов, как и родной мой Волгоград в пролёте. Некого там набирать

A
27.06.2017
03:31:24
гыыыыы
у нас тут университетов как универмагов, а набирать некого

Yan?
27.06.2017
03:52:30
Я как-то не догоняю, что я сделал не так. Делал по этому примеру http://blog.originate.com/blog/2013/10/21/reader-monad-for-dependency-injection/
Но выходит довольно странно. То есть, идея не видит реализацию + вместо DiskReaders я должен вставить DiskReader

Aleksei
27.06.2017
04:36:55
Это play? Там же вроде DI ИСКОРОБКИ?

Yan?
27.06.2017
04:40:12

Юрий
27.06.2017
04:40:38
воу воу, там в доке всё описано, как делать compile time dependency injection
и даже пример есть

Aleksei
27.06.2017
04:41:17
зачем прямо так сразу то? кто сказал?

Yan?
27.06.2017
04:42:02

Aleksei
27.06.2017
04:42:48
https://www.playframework.com/documentation/2.6.x/ScalaCompileTimeDependencyInjection

Yan?
27.06.2017
04:46:40

Aleksei
27.06.2017
04:47:11
А, ну если так и времени у вас много, то почему бы и нет =)
Я тут прочитал что блокировку тг лоббируют владельцы mail.ru чтобы всех пересадить на аську, лол.

Александр
27.06.2017
05:04:22
Ну так-то у них кроме аськи тамтам строится или как там его

Aleksei
27.06.2017
05:05:55
да, им не привыкать грязно играть.

Юрий
27.06.2017
05:11:58
Тимлид :)
тимлид сказхал не смотреть в доку и делать велосипед?

Oleg
27.06.2017
05:12:10
видно всё старый кейк