@gogolang

Страница 104 из 1630
Roman
28.01.2017
17:32:01
а ключики пробовал включать - -ldflags="-s -w"

народ еще upx рекомендует потыркать

*врядли в 1.8 прям уменьшат выхлоп, не особо нужно

где? https://beta.golang.org/doc/go1.8

Google
Roman
28.01.2017
17:36:04
да проще поставить попробовать

можно и не ставить кстати https://hub.docker.com/_/golang/

Мерлин
28.01.2017
17:37:53
А я прошу прощения, это где вы сервис запускаете, что лишних три мегабайта - это много?

Roman
28.01.2017
17:38:02
у него не сервис

этож Гарин

да вообще ни слова

наоборот пытаюсь помочь

docker run —rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.8 go build -v

экспериментируй

Мерлин
28.01.2017
17:40:18
мулварь пишешь, паразит? ?

Хороший задачи и админки интересные

Советую посмотреть upx :3

Roman
28.01.2017
17:44:41
смылся

Google
Мерлин
28.01.2017
17:44:45
https://blog.filippo.io/shrink-your-go-binaries-with-this-one-weird-trick/

смылся
Зачем

Roman
28.01.2017
17:44:56
переходи на си

на плюсы

Мерлин
28.01.2017
17:45:12
А сколько в результате получается?

Roman
28.01.2017
17:45:16
го не будет мелким

Peter
28.01.2017
17:45:33
ващета мы и пишем на чем-то таком, но мелочт всякие предпочитаем на чем-то вроде пхп. или гоу

Roman
28.01.2017
17:45:50
у него ниша такая что пока там на размер всем начхать

Мерлин
28.01.2017
17:46:20
Да

Roman
28.01.2017
17:46:21
вот очередные хипстеры эмбед какой нить и начнут на го колбасить тогда может

Мерлин
28.01.2017
17:47:53
Руст попробуйте

Roman
28.01.2017
17:48:19
эт кстати не только в го

http://stackoverflow.com/questions/29008127/why-are-rust-executables-so-huge

Мерлин
28.01.2017
17:48:55
Это какие вам либы нужны?

Хотя да

Roman
28.01.2017
17:49:25
вон в расте можно динамическую линковку включить

но тогда будешь зависить от либ

в общем все как в той задаче про два стула

Мерлин
28.01.2017
17:49:52
Это какие вам либы нужны?
Сейчас там основной путь "пишите своё дерьмо сами"

Google
Мерлин
28.01.2017
17:50:06
Roman
28.01.2017
17:50:16
баш тогда уже

бери баш и ебаш

или Гарин ты под винды тоже собираешь?

Slava
28.01.2017
17:51:01
коллеги, вы через чур перевозбуждены, это на вас так слово пхп подействовало?

Roman
28.01.2017
17:52:59
Peter
28.01.2017
18:43:51
не эт гарин пришел, вбросил, стер и ушел
меньше бы ты мою фамилию поминал всуе

и было бы вам щасте

если че, этот хуй фебс. будьте осторожны

Sergey
29.01.2017
07:58:28
Да ладно вам, пхп вполне себе норм

Slach
29.01.2017
08:34:50
всем привет, а объясните пожалуйста насколько плохо объявлять некий глобальный контекст при обработке http handlers на golang?? не middleware а именно контект в общем мне надо чтобы несколько горутин писали в один файл в append режиме и при достижении глобального (g.writed_rows % g.chunk_size) == 0 происходил flush файла закрытие дескриптора и создание друого файла (открытие в append режиме) пытаюсь сделать как то так в качестве фреймворка использую https://github.com/gocraft/web (первое что попалось на глаза когда начал гуглить golang lightweight web framework) type MyStruct struct { sync.RWMutex // дальше много полей всякие file handlers и map tsv_writer *csv.Writer tsv_file *os.File tsv_file_name string writed_rows uint chunk_size uint } а в обработчике func (g *MyStruct) Collect(rw web.ResponseWriter, req *web.Request) { } делаю как то так https://play.golang.org/p/StfrROogbk пытаюсь юзать g.Lock и g.Unlock при записи в g а у меня пока получается что в бенчмарке func Benchmark_Collect(b *testing.B) { g := NewMyStruct() b.ResetTimer() b.RunParallel(func(pb *testing.PB) { req := NewTestRequest() rw := web.ResponseWriter(testResponseWriter{}) for pb.Next() { g.Collect(rw, &req) } }) } переименование файла и открытие закрытие пытается делаться паралелльно =( кто нибудь может меня платно проконсультировать и поревьювить мой код более дотошно?

Admin
ERROR: S client not available

Givi
29.01.2017
09:01:19
"в общем мне надо чтобы несколько горутин писали в один файл в append режиме" создаёшь буферизированный канал, раздаёшь его горутинам-обработчикам запросов, они туда пишут данные, запускаешь одну единственную горутину, которая, пишет в файл в нужном тебе режиме, переименовывает и т.д.

в чём сложности?

Slach
29.01.2017
09:02:29
там по коду есть условие что разные запросы могут менять схему записи в CSV

Givi
29.01.2017
09:05:17
объяви структуру из двух полей, данные и мета, и вместо сырых данных гоняй эту структуру, в мета указывай как должны данные сохранятся.

Daniel
29.01.2017
09:25:34
Вот да

Slach
29.01.2017
09:26:04
проблема в том что надо "мету" менять атомарно в разных горутинах

Daniel
29.01.2017
09:26:17
А?

Google
Daniel
29.01.2017
09:26:27
Это же невозможно

Slach
29.01.2017
09:27:54
что невозможно??? в разных горутинах одну мапу поменять?

Daniel
29.01.2017
09:30:24
Ну давайте разберемся

Что такое атомарно

И как это соотносится с асинхронными процессами

Slach
29.01.2017
09:40:26
ок =) сейчас поясню вот есть две горутины которые запускают Collect паралельно в них на вход идет два разных экземлпяра структуры web.Request они содержат разный (но пересекующийся в части ключей) набор полей в каждой горутине Collect я хочу менять глобальную g.form_k_exists_map map[string]bool и добавлять по мере необходимости глобальный слайс сейчас юзается вот такой код for k := range req.Form { g.RLock() _, f_exists := g.form_k_exists_map[k] _, ga_exists := GA_map[k] g.RUnlock() if !f_exists && ga_exists { refresh_schema = refreshCSVShemaWithFormKey(refresh_schema, g, k) || refresh_schema } if !f_exists && !ga_exists { refresh_schema = refreshCSVShemaWithComplexKey(refresh_schema, g, k) || refresh_schema } } внутри refreshCSVShema* функций я юзаю g.Lock перед записью и g.Unlock и такое ощущение что либо забыл где то вызвать либо потому что мапа form_k_exists_map какое то не то значение содержит предлагаете этот код в отдельную горутину закинуть? и общаться с ней через буфферизированный канал?

Daniel
29.01.2017
09:50:13
Так

Давайте через час?

Я до компа дойду

Slach
29.01.2017
09:50:56
без проблем, Данил сколько стоит 2-3 часа вашего времени?

Daniel
29.01.2017
09:51:18
Именно моего - 2тр в час

Но я тут не вижу пространства для оплаты :)

Я думаю - за 15 минут разберемся

так, я тут

давайте разбираться

вот у нас функция обработки http запроса

Страница 104 из 1630