
Kirill
23.07.2018
15:39:57

Pawel
23.07.2018
15:41:46

Kirill
23.07.2018
15:42:38
хочешь нормальные примеры - иди на concurrencykit.org

Google

Pawel
23.07.2018
15:52:58
Умные мне сказали что в кложуре хорошие DS
Многопоточные в смысле

Daniel
23.07.2018
15:56:13

Олег
23.07.2018
16:01:48
вечер добрый, господа
есть ли способ обойти вот эту херню, кроме добавления var err error перед вызовом foo()?
https://play.golang.org/p/Ur0rU5Bi8ZP

Daniel
23.07.2018
16:03:14
ничего не понял

Олег
23.07.2018
16:03:35
компилятор плюётся: prog.go:14:2: text declared and not used

Kirill
23.07.2018
16:03:37
text, _ := foo()

Олег
23.07.2018
16:03:47
err мне нужен

Daniel
23.07.2018
16:04:04
нуже - запилите

Олег
23.07.2018
16:04:05
точнее, newVar в данном случае

Daniel
23.07.2018
16:04:08
в чем вопрос?

Kirill
23.07.2018
16:04:25
return "asd", errors.New("error message")

Google

Олег
23.07.2018
16:04:48
так, ещё раз

Kirill
23.07.2018
16:05:45

Олег
23.07.2018
16:07:04
в init у меня случается переопределение text, хотя она уже определена глобально. если сделать text, _ =, то всё хорошо. но мне нужны оба возвращаемых значения, и второе - новое. можно это сделать, не прибегая к объявлению newVar перед вызовом foo()?

Kirill
23.07.2018
16:07:30
самый простой вариант решения в гошке чаще всего самый адекватный
чаще всего, если ты задумываешься над тем, как убрать аналог var err error, то это звоночек, что пора бы сделать небольшой перерыв и пойти доделывать таск, а не заниматься херней

Roman
23.07.2018
16:17:52
https://paste.ubuntu.com/p/KQ6CtGypFZ/
кто там хотел сравнений? )
неожиданно, адресная арифметика в 2 раза медленее

Kirill
23.07.2018
16:26:12
по большому счёту, как раз ожидаемо. повезло бы очень, если бы было один к одному
ты очень много телодвижений делаешь, при этом бенчишь ещё и unsafe.Sizeof() с аллокацией
плюс такие вещи, как uintptr(ArrPtr) ты бы каждый раз не пересчитывал, массив-то не сдвигается
осталось бы только научиться удешевлять ItemSize*idx. не помню, как я это делал, но прирост был ощутимый
сейчас пилю KYC, так что законтрибьютить в бенч не могу всё равно

Daniel
23.07.2018
16:33:35
я ничего не понял

Vadim
23.07.2018
16:35:32
Понял
Что-то я перегорел

Daniel
23.07.2018
16:35:41
:)

Google

Vadim
23.07.2018
16:35:48
Извини

Roman
23.07.2018
16:38:11
вот причесанный вариант: https://paste.ubuntu.com/p/ddqZPGPkYt/

Вячеслав
23.07.2018
18:21:45
Подскажите бесплатный (для 2х человек) таск трекер+agile доска со спринтами. Онлайн.

Roman
23.07.2018
18:22:18

Вячеслав
23.07.2018
18:22:38
М..а там есть сабтаски? Тоже очень нужно
Сейчас на битбакете с доской. Но ее мало уже. Нужны спринты и сабтаски

Roman
23.07.2018
18:23:17
помимо есть ещё board, который kanban поверх issue делает
не совсем трекер и не совсем сабтаски, но можно вполне успешно абъюзать, если речь идёт о кондинге

Cobaku
23.07.2018
18:50:26

Вячеслав
23.07.2018
18:54:56

Danil
23.07.2018
18:56:31
Посоветуете библиотеки для работы с api vk?

Dmitri
23.07.2018
19:08:19

m
23.07.2018
19:30:52

Roman
23.07.2018
19:33:35

m
23.07.2018
19:34:40
надо ассемблерный код глянуть. наверняка там что-то лишнее делается.
С адресной арифметикой в 1.5 раза медленнее.
если ты хочешь ускориться, тебе точно надо идти на уровень ассемблерного кода. Самый простой вариант: посмотреть, во что превращается твой медленный код, скопировать и потом постепенно переписывать его ручками. Я так вдвое ускорился, просто убрав лишние операции и убрав некоторые обращения к памяти.

Google

Daniel
23.07.2018
19:37:56
ну елы-палы
родина дала вам горутины. каналы дала...

m
23.07.2018
19:40:21
ага. адресная арифметика
не, там пройрыш из-за того, что адрес считается каждый раз, а его надо на шаг инкрементировать. Это вроде бы одно и то же, но в инструкциях будет разница.

Daniel
23.07.2018
19:41:47
да. но то, что плохо получается в одно ядро - будет хорошо получаться в два. и отлично получаться в 4

Roman
23.07.2018
19:44:08

Daniel
23.07.2018
19:44:28
а давай проверим

m
23.07.2018
19:44:32
С адресной арифметикой в 1.5 раза медленнее.
попробуй вот такой код:
func BenchmarkPtrArithmetic2(b *testing.B) {
var Temp uint64
BasePtr := uintptr(ArrPtr)
for i := 0; i < b.N; i++ {
for idx := 0; idx < Size; idx++ {
node := (*Entry)(unsafe.Pointer(BasePtr))
Temp += uint64(node.Key)
BasePtr += ItemSize
}
}
}

Daniel
23.07.2018
19:44:45
я могу даже nda подписать, если надо

Roman
23.07.2018
19:45:19
Надо только linux и модуль ядра

Daniel
23.07.2018
19:45:37
тогда покажи польцем, где там у тебя не хватает проца

Roman
23.07.2018
19:47:12

Daniel
23.07.2018
19:47:29
я и сам сейчас не в форме...

Olena
23.07.2018
20:37:56
Посоветуйте, пожалуйста, книжку по гоу, где разжевано, почему все так работает. Как "Выразительный джаваскрипт" про джаваскрипт

Denis
23.07.2018
20:39:00
https://overload.yandex.net/112592#tab=test_data&tags=&plot_groups=main&machines=&metrics=&slider_start=1532378190&slider_end=1532378264

Google

Denis
23.07.2018
20:39:04
открывается ссылка?
это результаты теста go делителя

X
23.07.2018
20:40:53

Denis
23.07.2018
20:41:01
есть знатоки? что-то на мой взгляд очень мало из коробки выходит

X
23.07.2018
20:41:23

m
23.07.2018
21:07:37

Roman
23.07.2018
21:40:49

Vadim
23.07.2018
22:29:12
не знаете как такое реализовать на го:
https://redis.io/commands/keys
регекспами?

Vasily Romanov
23.07.2018
22:33:09