@proGO

Страница 366 из 1674
Stanislav
25.12.2016
21:43:31
Для чего вообще нужен голанг?

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

Google
Kirill
25.12.2016
21:46:04
А игры писать там?
есть какие-то заготовки, но ничего не могу сказать об этом.

Roman
25.12.2016
21:48:20
кому?
python :)

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
а потом начнется странное

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

Roman
25.12.2016
21:50:30
ах мы такой tcp proxy пишем, без длинных коннектов?
а какая разница длинный коннект или нет?

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

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

я не думаю что питон будет быстрее

в такой задаче

Vladimir
25.12.2016
21:51:41
Roman
25.12.2016
21:52:08
я не думаю что питон будет быстрее
тебе именно искать до \n ?

Vladimir
25.12.2016
21:52:18
тебе именно искать до \n ?
ну в моем случаи чуть больше задач еще

но как часть задачи да

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

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
окей. напиши ТЗ — конкретно, что этот прокси должен уметь, а что не обязан.
самый простой пример: слушаем порт 8080, при коннекте делаем коннект на заданный в командной строке адрес и порт и дальше проксируем tcp.

этакий haproxy в миниатюре.

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

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

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

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

time
25.12.2016
21:58:39
это следующий этап.
а потом можно написать socat :)

Daniel
25.12.2016
21:59:00
этакий haproxy в миниатюре.
я еще хочу понять, как мы будем это мерять

Stanislav
25.12.2016
21:59:06
для чего?
Для всего

Roman
25.12.2016
21:59:15
а потом можно написать socat :)
ну, у него основная беда - это обилие фич.

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
я еще хочу понять, как мы будем это мерять
возьмем nginx, отдающий статику и на него спроксируем.

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
мелкую статику или крупную?
лучше крупную. на мелкой будет сплошной accept/recv/sendto/close

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

Google
Roman
25.12.2016
22:02:38
стенд кто предоставит?
ну, у меня вроде был, но там всего 6 гбит =(

Kirill
25.12.2016
22:03:06
математику?
только на C?

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
что-то я не могу быстро сказать, что можно написать только на C
ядерное кое-что доступно только в виде биндингов для C. кое-что для эффективной работы требует адресной арифметики, которой в go нет. ну и т.п.

Kirill
25.12.2016
22:04:24
Кстати, кто уже успел скачать goide?
кстати, кто слышал о новой IDE от jetbrains?

Admin
ERROR: S client not available

Kirill
25.12.2016
22:05:41
ядерное кое-что доступно только в виде биндингов для C. кое-что для эффективной работы требует адресной арифметики, которой в go нет. ну и т.п.
ну, как. утверждение, что адресной арифметики в Go нет — не доконца верное утверждение. тут есть некоторые возможности, но они очень геморройные.

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

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

Roman
25.12.2016
22:09:32
ну в моем случаи чуть больше задач еще
а шансы встретить \n в payload были? экранирование и вот это всё?

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

сейчас бы делал через af_kcm

Vladimir
25.12.2016
22:12:04
а шансы встретить \n в payload были? экранирование и вот это всё?
опять же, там 2.5 млн таких сообщений (сообщение заканчивается на \n) в секунду было )

просто больше в гигабит не пролезает

примерно 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 слышал

А, внезапно само починилось.

Alexey
25.12.2016
22:33:00
обычно после обновления перезапустить атом
Он вроде завёлся без перезапуска после обновления до 5.0.7

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