
Stanislav
25.12.2016
21:43:31
Для чего вообще нужен голанг?

Roman
25.12.2016
21:44:54

Kirill
25.12.2016
21:44:57
да практически для всего. редкие исключения типа хардкорных числодробилок и гуёв. в остальном, обычно, тебе хватит и Go.

Stanislav
25.12.2016
21:45:28

Google

Roman
25.12.2016
21:45:44

Kirill
25.12.2016
21:46:04

Roman
25.12.2016
21:48:20

Daniel
25.12.2016
21:48:53
ну давайте мерять, что ли

Kirill
25.12.2016
21:49:02
python :)
можешь написать tcp proxy на python и ТЗ, что он дожен выполнять. а потом я напишу такой на Go.

Daniel
25.12.2016
21:49:34
так-то pypy будет быстрее, но до тех пор, пока мы одно ядро не съедим

Kirill
25.12.2016
21:49:34
я python не люблю, поэтому пусть python версию напишет тот, кто может это сделать хорошо.

Daniel
25.12.2016
21:49:40
а потом начнется странное

Roman
25.12.2016
21:49:49

Daniel
25.12.2016
21:50:10
ах мы такой tcp proxy пишем, без длинных коннектов?

Roman
25.12.2016
21:50:30

Daniel
25.12.2016
21:50:50
а разница есть, бро

Google

Vladimir
25.12.2016
21:51:03
@pragus ну как сказать, Го быстрый. У меня была недавно задача - есть несколько передатчиков данных, чистый tcp, нужно читать строки до \n и передавать их в несколько других мест. Реализация на Го на 4-х ядрах 2.5 млн сообщений в секунду протягивает (средний размер строки 104 байта)
я не думаю что питон будет быстрее
в такой задаче

Roman
25.12.2016
21:51:32

Vladimir
25.12.2016
21:51:41

Roman
25.12.2016
21:52:08

Vladimir
25.12.2016
21:52:18
но как часть задачи да
конкретно в этом случаи софтина из формата "строка строка строка" переводила в бинарный вид и писала в другую софтину + вела учет уникальных вхождений первой строки.

Kirill
25.12.2016
21:53:34
так я не понял, кто питоновую версию пилит?

Roman
25.12.2016
21:53:34
я писал ipc через пайп с сообщениями, где у сообщения 2 байта длина + тело. вообщем, я тупо уперся в полосу по памяти

Kirill
25.12.2016
21:54:09
окей. напиши ТЗ — конкретно, что этот прокси должен уметь, а что не обязан.
и что проксируем — тоже вопрос.

Stanislav
25.12.2016
21:55:17
Я думаю что заниматься байтоебством у го получится намного лучше. Особенно на ксеоне с 16 ядрами

Roman
25.12.2016
21:55:51
этакий haproxy в миниатюре.

Stanislav
25.12.2016
21:57:32
Завтра вкачусь в гоу и заведу свой успешный блог с вейпом и гироскутершами

Vladimir
25.12.2016
21:57:35
@pragus лучше усложнить задачу - задавать в строке пару адресов и делать round robin :)

Roman
25.12.2016
21:58:03

Google

Stanislav
25.12.2016
21:58:26
А что лучше, go или С?

Daniel
25.12.2016
21:58:34
для чего?

time
25.12.2016
21:58:39

Daniel
25.12.2016
21:59:00

Stanislav
25.12.2016
21:59:06

Roman
25.12.2016
21:59:15

Daniel
25.12.2016
21:59:18
для всего лучше грибы

Stanislav
25.12.2016
21:59:44
То-есть го создан чтобы заменить си в будущем

Daniel
25.12.2016
21:59:49
а?!
вообще-то нет

time
25.12.2016
21:59:53
вряд ли

Stanislav
25.12.2016
21:59:56
И по бенчам он не отстаёт

Roman
25.12.2016
21:59:58

KlonD90
25.12.2016
22:00:07
Rust for c

time
25.12.2016
22:00:07
го создан чтобы гуглу не нужно было учить девелоперов :)

Daniel
25.12.2016
22:00:21

Roman
25.12.2016
22:01:05

Daniel
25.12.2016
22:01:42
И по бенчам он не отстаёт
это сильное утверждение.
вообще-то, то, что с легкостью пишется на go, довольно трудно писать на C. а то, что можно писать только на C - на го не пишется никак

Kirill
25.12.2016
22:02:27

Google

Roman
25.12.2016
22:02:38

Kirill
25.12.2016
22:03:06

Stanislav
25.12.2016
22:03:39
Кстати, кто уже успел скачать goide?

Roman
25.12.2016
22:03:51
только на C?
нуу... посмотри на разницу в скорости какого-нибудь видеокодека с sse/avx и без.

Daniel
25.12.2016
22:03:54

Roman
25.12.2016
22:04:17

Kirill
25.12.2016
22:04:24

Stanislav
25.12.2016
22:04:34

Admin
ERROR: S client not available

Kirill
25.12.2016
22:05:41

Stanislav
25.12.2016
22:06:02
Мне даже дали её

Kirill
25.12.2016
22:06:32
Я о ней
а. ты же не застал. это у нас такой локальный мем.

Roman
25.12.2016
22:09:32

Vladimir
25.12.2016
22:09:44

Roman
25.12.2016
22:11:20
ну, это хреново. я делал честный zero copy разбор сообщений с префиксом длины. через задницу(файл в tmpfs с O_DIRECT + mmap и последующий splice в него из tcp), но работало быстро.
сейчас бы делал через af_kcm

Vladimir
25.12.2016
22:12:04
просто больше в гигабит не пролезает
примерно 100 параллельных входящих соединений

Google

Vladimir
25.12.2016
22:12:44
притом клиент старается установить соединение и слать сообщения пока что-то с сетью не случиться

Roman
25.12.2016
22:13:08
а кто такой протокол придумывал? :)

Vladimir
25.12.2016
22:13:24
name[space]float64(текстом)[space]float64(текстом)

Roman
25.12.2016
22:13:44
а

Vladimir
25.12.2016
22:13:51
которые восприни маются как имя, чиселка и int32 таймстэмп
но по протоколу передается float64
\n разделитель сообщений

Roman
25.12.2016
22:14:57
да, я уже понял.

Vladimir
25.12.2016
22:15:14
левел2 - проводить валидацию строки
что пробелов ровно два
что второе и третье поле - числа
левел3 - конвертировать в первом поле несколько подряд следующих точек в одну
дальше как усложнения - rewrite'ы и сделать так чтоб по regexp'ам на имя сообщение могло уходить в несколько серверов
до последнего я пока не дошел у себя в коде

Alexey
25.12.2016
22:21:19
Слушайте, а кто атомом пользуется? У меня обновился go-plus до 5.0.6 и даже 5.0.7 теперь, и теперь он перестал подсвечивать те места, на что gometalinter ругается. Как починить?
// про новую IDE от jetbrains слышал
А, внезапно само починилось.

Stanislav
25.12.2016
22:25:26
Очевидно

Kirill
25.12.2016
22:32:14

Alexey
25.12.2016
22:33:00