@proGO

Страница 336 из 1674
Kirill
16.12.2016
11:01:31
Dmitri
16.12.2016
11:01:35
вот ты давно кодить начал?

у меня вопрос. у idea есть плагин для go. что в goglang нового то ?
у них же на сайте написано: автозачистка неиспользуемых переменных/импортов и т.д. и т.п.

Kirill
16.12.2016
11:02:51
А вы слышали о новой IDE от jetbrains?

Google
Denis
16.12.2016
11:02:54
Мне кажется, что я почувствовал бы, что более менее выучил, когда получится что-то на языке сделать, относительно сложное :) не из книжных примеров. Что может замутить юный падаван, прочитавший ритчи от сих и до сих?:)

Vladislav
16.12.2016
11:03:33
Никакой разницы 2m30 -> 2m28
package main import ( "fmt" "math/rand" ) var set = make(map[int64]bool) func main() { for i := 0; i <= 1000000000; i++ { set [rand.Int63() % 30] = true; } fmt.Printf("%v\n",set) } процентов на 30 шустрее стало

Dmitri
16.12.2016
11:04:28
ну вот, я же говорил, у тебя в Go 1) какой-то медленный рандом 2) нет числа 42

Denis
16.12.2016
11:12:22
Ну вот( Думал приду в чат про Го, тут мне расскажут какой охренетительный язык, учи конечно же, а хрен там:))

Dmitri
16.12.2016
11:12:57
в чатах выживают либо тролли, либо реалисты.

Учить-то чо его не учить. Он за пару дней учится, по хорошему

Vladislav
16.12.2016
11:13:41
он простой как кирпич

Dmitri
16.12.2016
11:13:42
практика применения - это уже совсем другая тема

Roman
16.12.2016
11:13:55
package main import ( "fmt" "math/rand" ) var set = make(map[int64]bool) func main() { for i := 0; i <= 1000000000; i++ { set [rand.Int63() % 30] = true; } fmt.Printf("%v\n",set) } процентов на 30 шустрее стало
Ну ты просто ускорил немного random. А нужно статическую последовательность организовать. Есть ли такое в библиотеке?

Dmitri
16.12.2016
11:14:15
собственно, кирпичи бывают разные... Го проще, короче. Он всегда одинаковый

Google
Roman
16.12.2016
11:15:28
Ну вот( Думал приду в чат про Го, тут мне расскажут какой охренетительный язык, учи конечно же, а хрен там:))
В последнем опросе Golang на вопрос про цели развития комьюнити я ответил Keep compact :)

Dmitri
16.12.2016
11:16:03
Собственно, это его главная фича.

Го не без граблей, но, ввиду его компактности, при активном использовании ты на все за месяцок наступить успеешь

Daniel
16.12.2016
11:20:43
> В Go один метод генерации - он случайный. В Java куча методов, но во всех туториалах - псевдослучайный это что за херню я только что прочел?

Vladislav
16.12.2016
11:20:47
а потом на этих рандомайзерах делают шифрование??

Мерлин
16.12.2016
11:21:28
чо

Roman
16.12.2016
11:27:27
> В Go один метод генерации - он случайный. В Java куча методов, но во всех туториалах - псевдослучайный это что за херню я только что прочел?
Поясню. Вот этот код Java из туториала выдает всегда одну и ту же последовательность: Random rand = new Random(47); System.out.println(rand.nextInt(30));

Есть аналогичная стандартная функция на Go?

Кстати, это надо проверить.

Roman
16.12.2016
11:30:10
Блин, Go тоже дает пвсевдорандом?

Kirill
16.12.2016
11:30:26
открыть секрет?

Мерлин
16.12.2016
11:31:32
станартный генератор ПСЧ в go - потокбезопасный Даже если его дёргать из одной рутины, то он будет колошматить мьютекс почём зря

Roman
16.12.2016
11:31:40
Тогда вывод неутешительный, стандратный Random Go в 5 раз медленнее Java.

corpix
16.12.2016
11:34:15
Про какие PRNG вы говорите? Для криптографии или нет?

Мерлин
16.12.2016
11:37:01
хотя я вот сейчас через pprof посмотрел
если сделать новый генератор, то он без мьютекса

Roman
16.12.2016
11:37:07
Тогда вот такой еще тест - вместо set [rand.Intn(30)] = true; поставил set [1] = true;

Google
Vladislav
16.12.2016
11:37:45
если сделать новый генератор, то он без мьютекса
var globalRand = New(&lockedSource{src: NewSource(1)}) можно новый и с мьютексом создать

Мерлин
16.12.2016
11:37:59
это да

Roman
16.12.2016
11:37:59
45 секунд на Go и 0.17 секунд на Java ???

Мерлин
16.12.2016
11:38:28
45 секунд на Go и 0.17 секунд на Java ???
Да, за универсальность map в го надо платить

Roman
16.12.2016
11:38:32
Java компайлер тупо цикл развернул при компиляции :)

Мерлин
16.12.2016
11:38:52
corpix
16.12.2016
11:39:51
Про какие PRNG вы говорите? Для криптографии или нет?
Я вобщем то спрашивал лишь для того чтобы сказать что в некоторых случаях ещё используют CSPRNG на основе, например AES врежиме CTR. Учитывая поддержку AES на аппаратном уровне должно быть довольно быстро. Но потокобезопасность остаётся на плечах разработчика

Evgenij
16.12.2016
11:41:48
45 секунд на Go и 0.17 секунд на Java ???
Код поклади куда нибудб на го и джава посмотреть - а то одни эмоции

Roman
16.12.2016
11:48:04
Код на Java: https://gist.github.com/begetan/45118ec0cf6b8907b8b9855af5cad6b0

Evgenij
16.12.2016
11:51:13
А гошный?

Daniel
16.12.2016
11:51:40
чтобы они друг другу 100% соответствовали

Roman
16.12.2016
11:52:56
На мапах Джаву?

Evgenij
16.12.2016
11:54:09
Согласен мэп и хэш - скорость доступа разная

На мапах Джаву?
Приведи к одной хоть структуре -а потом сравнивай(для начала)

Roman
16.12.2016
11:59:13
https://gist.github.com/begetan/1a6dab06082e41da4fe493fb43aaba5e

TheRainwildsKeeper
16.12.2016
11:59:45
[sarcasm] :P
Да ну?)

Roman
16.12.2016
12:00:36
Приведи к одной хоть структуре -а потом сравнивай(для начала)
Ну я же не виноват что в Go нет Set. Вот первый попавшийся пример взял. Но структура не важна - основное расхождение в Random.

Daniel
16.12.2016
12:02:11
ну вот пока ты это не предъявишь - тебе будут тыкать это под нос

Evgenij
16.12.2016
12:02:20
Ну посмотри скорость доступа к структуре на основе хэш и например на основе линейного

Google
Evgenij
16.12.2016
12:03:49
если не ошибаюсь 1-лог н 2-н ,и чем больше элементов разница очень бросается в глаза

Мерлин
16.12.2016
12:04:42
(pprof) top10 90.30s of 91.55s total (98.63%) Dropped 4 nodes (cum <= 0.46s) Showing top 10 nodes out of 13 (cum >= 3.76s) flat flat% sum% cum cum% 27.70s 30.26% 30.26% 44.10s 48.17% runtime.mapassign1 23.03s 25.16% 55.41% 39.94s 43.63% math/rand.(*Rand).Int31n 10.75s 11.74% 67.15% 10.75s 11.74% math/rand.(*rngSource).Int63 8.78s 9.59% 76.74% 8.78s 9.59% runtime.aeshash64 3.86s 4.22% 80.96% 3.86s 4.22% runtime.memequal64 3.77s 4.12% 85.08% 91.50s 99.95% main.main 3.69s 4.03% 89.11% 43.63s 47.66% math/rand.(*Rand).Intn 3.16s 3.45% 92.56% 13.91s 15.19% math/rand.(*Rand).Int63 3s 3.28% 95.84% 16.91s 18.47% math/rand.(*Rand).Int31 2.56s 2.80% 98.63% 3.76s 4.11% runtime.typedmemmove

Roman
16.12.2016
12:10:18
import java.util.*; public class Test { public static void main(String[] args) { Random rand = new Random(47); Map<Integer,Boolean> m = new HashMap<Integer,Boolean>(); for(int i = 0; i < 1000000000; i++) { m.put(rand.nextInt(30),Boolean.TRUE); } System.out.println(m); } }

Daniel
16.12.2016
12:10:28
да

Roman
16.12.2016
12:10:30
Так пойдет? Полный аналог

Admin
ERROR: S client not available

Daniel
16.12.2016
12:10:35
полный эквивалент

и че по скорости?

Roman
16.12.2016
12:10:46
Положу на гист

23 вместо 25 сек, еще быстрее :)

Без разницы вобщем

Evgenij
16.12.2016
12:12:53
Может лучше сравнить aray с array - тупо линейные)))

Daniel
16.12.2016
12:13:29
зачем?

нам не надо линейные

но явный будет быстрее, инфа 100%

Evgenij
16.12.2016
12:14:13
В го я так знаю мапа не гарантирует порядок- про джава не помню)))

Daniel
16.12.2016
12:14:23
какой порядок

коллеги

ну что вот я читаю тут

че за херня

Google
Roman
16.12.2016
12:14:44
В мапе ключ, там нет порядка

Evgenij
16.12.2016
12:15:02
Ах да я ошибся - извеняюсь))

Roman
16.12.2016
12:16:32
Daniel что написать в цикл, чтобы Java его не разворачивала?

Хотя Go без Random в цикле прбегает за 30 секунд, а Java c Random за 23

Вот этот код set [rand.Int31() % 30] = true; вместо set [rand.Intn(30)] = true; ускорил с 2m30 до 2m16

Vladislav
16.12.2016
12:25:56
Вот этот код set [rand.Int31() % 30] = true; вместо set [rand.Intn(30)] = true; ускорил с 2m30 до 2m16
поменяй на Int63() и замерь там еще часть проверок отвалится

Daniel
16.12.2016
12:28:18
еще раз

если вам надо быстро - берите jvm

только вам не надо быстро

обычно не надо быстро

Vladislav
16.12.2016
12:31:48
2m10 вместо 2m16
а если создать без мьютекса (r := rand.New(rand.NewSource(42))) и заюзать? (set [r.Int63() % 30] = true;)

Roman
16.12.2016
12:41:56
Morran
16.12.2016
12:42:49
а кто-нибудь знает нормальную либу для xmpp?

Roman
16.12.2016
12:45:37
Было познавательно. Обязательно теперь нужно питонистов дернуть!

Страница 336 из 1674