
Daniel
22.02.2017
19:21:44
я проводил микробенчмарки
там выигрыш не так уж и велик

N
22.02.2017
19:27:01
а я проводил реальные замеры JSON vs msgpack - в msgpack на ядро не самого быстрого ксеона ложилось порядка 2,5 гигабит, json рядом не стоял от слова совсем

Daniel
22.02.2017
19:28:39
сильно зависит от данных, я подозреваю

Google

Daniel
22.02.2017
19:28:53
числовые должны быстрее текстовых быть

N
22.02.2017
19:30:06
числовые быстрые + представление чисел с фиксированной точкой пришлось писать самому для msgpack, через строки гнать не эффективно было
но там и строки и числа и даты и булево - все вперемешку скажем так, наборы данных очень разнятся

Daniel
22.02.2017
19:31:18
ну на моих данных я получил 50% выигрыша на msgpack

N
22.02.2017
19:31:23
2.5 гигабита привел на основании загрузки интерфейса - так было проще проверять и смотреть на живых данных, ну скачет оно в пределах 20% в две стороны ну ничего страшного

Daniel
22.02.2017
19:31:31
на фоне потребления ssl оказалось несущественно

N
22.02.2017
19:33:27
ну ssl и так понятно что добавляет своего.

Daniel
22.02.2017
19:34:16
он добавляет так, что полный привет
мне не удалось принять больше 500 ssl сессий в секунду на ядро. на этом фоне проблемы json меня перестали беспокоить

Vladimir
22.02.2017
19:35:56
кроме msgpack'а еще есть protobuf :)

N
22.02.2017
19:38:05
кроме msgpack'а еще есть protobuf :)
угу, отличный формат - работал с ним на одной прикольной задачке с кучей микросервисов, мне понравился. есть определенные неудобства конечно небольшие, но зато все явно.
вот не удалось ни разу flatbuffers и capnproto в проде поюзать из интересных мне

Vladimir
22.02.2017
19:38:34

Google

N
22.02.2017
19:40:40
Просто msgpack какой-то уж совсем простой
верно. свою реализацию msgpack набросал с нуля за вечер с ходу, потом тюнинг конечно еще около недели грязного времени занял, чистого может часов 10, чтоб алокации лишние убрать и тд и тп

Vladimir
22.02.2017
19:41:04
для го притом есть хороший форк родного - https://github.com/gogo/protobuf

N
22.02.2017
19:42:43
угу, все видел, все пользовал, в тему погружался нормально с protobuf в части Go и других ЯП
https://github.com/graphql-go/graphql не пробовал никто использовать это в Go еще?

Олег
22.02.2017
19:46:24
Есть у кого программа на примете для построения UML с сорцов Go?

Semyon
22.02.2017
19:47:55
UML с сорцов го?
Really?

Олег
22.02.2017
19:48:47

Anton
22.02.2017
19:48:50
Для grpc мб и есть чего

Semyon
22.02.2017
19:49:03
1. А ничего, что в Го нет классов?
2. А ничего, что UML это исчадье воспалённого ума, которое имеет практической ценности меньше, чем концерты Джастина Бибера?

Олег
22.02.2017
19:49:44
Это универсальный ответ на первый и второй вопросы

Semyon
22.02.2017
19:50:08
Прими мои искренние соболезнования, бро

Олег
22.02.2017
19:50:13
Дипломы в вузе
адское говно

Sergey
22.02.2017
19:50:21
https://github.com/grant/go-diagram
Чем не устраивает?

Олег
22.02.2017
19:50:23
особенно по древним методам

Google

Олег
22.02.2017
19:50:49

Sergey
22.02.2017
19:50:51

Олег
22.02.2017
19:51:17

Sergey
22.02.2017
19:51:40

Semyon
22.02.2017
19:51:52
я просто искренне не понимаю, как можно со структурного кода собрать UML
UML изначально разрабатывался под ООП
UML has been evolving since the second half of the 1990s and has its roots in the object-oriented methods developed in the late 1980s and early 1990s.
смотрите вот, что про это говно в википедии написано

Олег
22.02.2017
19:52:39

Semyon
22.02.2017
19:53:22

Олег
22.02.2017
19:54:07

Sergey
22.02.2017
19:54:07
Meh

Semyon
22.02.2017
19:54:27

Sergey
22.02.2017
19:55:03
UML-диаграмму нарисовать можно, тем не менее

Олег
22.02.2017
19:55:57

Sergey
22.02.2017
19:56:38
Блин, а мне же тоже наверняка придётся в дипломе это говно рисовать

Олег
22.02.2017
19:56:59

Sergey
22.02.2017
19:57:11

Олег
22.02.2017
19:57:21

Google

Roman
22.02.2017
21:05:01

Semyon
23.02.2017
08:00:49
Котаны, срочно нужен стикерпак с гоферами
есть такой?
Круто было бы в рисовке Рене Френч, конечно :)
но так тоже ничего, спасибо :)

Ivan
23.02.2017
09:46:31
Слушайте, у меня тут задача туповатая. Но уверен вы знаете как. мне досталась база данных большая с каким то хламом внутри.
Похоже на результат работы какого то сериализатора php как мне подсказали
a:4:{i:0;a:2:{s:5:"text1";s:5:"asewa";s:5:"asdfe";
не знаете способа распарсить это в go struct?

Constantine
23.02.2017
09:48:16
:D

Stanislav
23.02.2017
09:49:16
так и есть

Ivan
23.02.2017
09:49:31
Я нагуглил wulijun/go-php-serialize но оно не опнятное куда там коней то запрягать

Stanislav
23.02.2017
09:49:42
самому интересно как распарсить
если только руками писать парсер...

Constantine
23.02.2017
09:50:03
exec.Command(fmt.Sprintf("php -r "echo unserialize('%s')", script))
решение в лоб :D

Stanislav
23.02.2017
09:50:22
:D

Constantine
23.02.2017
09:50:24
хотя там не echo надо, var_export
збсь будет

Ivan
23.02.2017
09:50:27
https://godoc.org/github.com/wulijun/go-php-serialize/phpserialize похоже к этому ещё как то надо сверху велосипед писать, в цикле GetMembers

Google

Constantine
23.02.2017
09:51:18
горутины и нормас
въеби систему

Ivan
23.02.2017
09:54:00
печаль какая
другой вопрос, больше про golang, я ведь в рантайме уже тип не создам нужный, так ведь?
Хотя, что я грешу то на ту либу, увидел тока что что, она вплоне себе работает. Какой то map на выходе получаю
Хотя нашел в ней баг, она не понимает что s:2:"ой" юникодная, и два байта выделять ей мало
Как сказать сколько весит в байтах юникодная строка?
https://github.com/korjavin/go-php-serialize/blob/master/decoder.go#L136 вот тут ошибка, оно выделяет в байтах считая что длина строкив символах равно длине строки в байтах

Евгений
23.02.2017
11:02:55
fmt.Println(len("строка!"))
13
в байтах

Ivan
23.02.2017
11:04:15
красиво ;) Тока у меня самой строки ещё нет, и я плохо сформулировал

Евгений
23.02.2017
11:05:08
можно "для уверенности" еще
len([]byte("строка!"))

Ivan
23.02.2017
11:05:30
у меня на вход поступает s:2:"zz"
он декодер, видит число 2, выделяет два байта, и посылает в strings.Reader.Read этот двухбайтовый буфер, в случае zz всё ок, в случае яя катастрофа

Евгений
23.02.2017
11:05:53
т.е. парсить руками это?

Ivan
23.02.2017
11:05:54
как бы мне посылать туда буфер заранее нужного размера, не зная строки. Я так понимаю что никак.
Задача я парсю php высер сериализации a:1:{i:0;a:2:{s:3:"url";s:87 вот это вот
Взял либу, она мне строки режет, вот нашел это место
Она ошибается что байт=символ

Евгений
23.02.2017
11:07:06
либа совсем некурабельна?
может проще подхачить этот момент? или там совсем все плхо?