
Slava
12.06.2018
22:22:32
ну по идее должно быть пофигу

12.06.2018
22:23:17

Slava
12.06.2018
22:26:09
на задержки сборщика

Alexander μήδομαι
12.06.2018
23:48:22

Google

Александр
13.06.2018
00:05:44
а как?
любая фабрика - указатель
более того
хочешь корректные нулы в json - в структуре пили указатели

Slava
13.06.2018
01:40:06
двухлетней давности =)


Alexander μήδομαι
13.06.2018
02:02:23
а как?
1) заменять указатели дескрипторами;
пример из доклада: использовать uintptr и кастовать его в *T при необходимости; утверждается, что в стандартной библиотеке Go такое часто делают;
2) минимизировать количество копий указателей;
чтобы сборщик не удалил объект, достаточно сохранять всего 1 указатель на него; остальные указатели по возможности заменить на слабые uintptr; в идеале хранить 1 указатель на слайс однотипных объектов, не хранить указатели на индивидуальные ячейки слайса, вместо них хранить индексы или uintptr;
3) хранить максимум данных в специальных областях памяти, несканируемых сборщиком;
например, в sync.Pool или в кастомном аллокаторе написанном кривыми добрыми руками (в докладе есть пример); при этом можно хранить указатели на объекты в этой области памяти, gc не будет по ним следовать вообще (кастомный вариант) или будет следовать по ним с большей эффективностью (вариант sync.Pool), т.к. область памяти специальная и сборщик про это знает.


Kirill
13.06.2018
02:03:22

Alexander μήδομαι
13.06.2018
02:11:57
двухлетней давности =)
Май 2017. Доклад подготовлен по более старому опыту работы с Go, разумеется.
Кстати, в докладе Андрей показывает статистику, в которой паузы gc занимают ~5 мс, а в release notes 1.8 (август 2016) хвастают: "Garbage collection pauses should be significantly shorter than they were in Go 1.7, usually under 100 microseconds and often as low as 10 microseconds." Непонятно чему верить. Есть более свежие данные?

Daniel
13.06.2018
04:13:22


Andrey
13.06.2018
04:40:35
Я помню, что это была тактика, делать короткие паузы, и неважно, достаточно этого было или нет... По итогу конечно наступала большая пауза, но остальные были предсказуемы.
В алибабе на Яве сделали, что а вообще мусор не собирается, условно до наступления ночи...

Daniel
13.06.2018
04:42:53
на самом деле, единственная годная стратегия борьбы с мусоросборщиком - производить поменьше мусора

Google

Zloy Dobriy
13.06.2018
04:47:08
/report

Vladimir
13.06.2018
05:50:18


Мерлин
13.06.2018
06:02:39


Vladimir
13.06.2018
06:06:58
треш, угар и _содомия_
Ну а как иначе в языке где нет альтернативы сборщику мусора? Можно переписывать узкие места на каком нибудь расте как в дропбоксе делают, можно написать свой аллокатор как в убере
Первое дороже
Особенно, если нельзя прям просто оторвать это узкое место в отдельный проект

Alexander μήδομαι
13.06.2018
06:36:49
Согласен. Сжирать 75% ядер в продакшен-кластере на "бег на месте" это как-то слишком. Надеюсь, это поведение улучшат.

Michael
13.06.2018
06:44:56

Dmitri
13.06.2018
06:45:21

Alexander μήδομαι
13.06.2018
06:47:18

Andrey
13.06.2018
06:47:34
Я не знаю ГО, но по-любому в языке механизмы для управления памятью... Не зря же они тащат совместимость с С.

Aliaksandr
13.06.2018
08:44:49

Alexander
13.06.2018
08:47:06

Kaspar
13.06.2018
08:47:45
Компилируют на клиентах

Тарас
13.06.2018
08:57:30

Kaspar
13.06.2018
09:04:31
Убер то? Ок

Aliaksandr
13.06.2018
09:11:19
еще и запускают серверную часть на абонентских устройствах! раз батарейка садится
на абонентском устройстве программа на java, где тоже есть gc. Если они не могут нормальный сервер написать, то что уж говорить о клиенте. Небось тестируют свое поделие на последних версиях смартфонов, где оно кое-как шевелится. Лучше бы потестили на смартфонах пятилетней давности - узнали бы много нового про свой тормозной код
и заодно бы увеличили количество довольных пользователей, т.к. последние версии смартфонов есть лишь у небольшого количества их клиентов. Остальные мучаются с тормозами и высадкой батарейки за полчаса

Google

Aliaksandr
13.06.2018
09:15:15
на смартфоне :)

Kaspar
13.06.2018
09:17:05
А вообще такая критика доставляет. Не нравится - не пользуйся. Есть решение - напиши им письмо. Я в Азии живу и тут grab отжал рынок. Убер вообще норм был по сравнению

Aliaksandr
13.06.2018
09:17:23
кстати, именно год назад, когда вышел доклад, сервера убера больше всего тормозили, из-за чего обновления от такси приходили с запаздыванием в пять минут либо вообще переставали приходить. Тогда в 90% случаев приходилось созваниваться с таксистом, чтобы узнать, где он тебя ждет, т.к. в приложении его координаты не обновлялись

Kaspar
13.06.2018
09:18:02
Grab хоть и топят за go но сам продукт и клиент не удобный

Aliaksandr
13.06.2018
09:22:20
А вообще такая критика доставляет. Не нравится - не пользуйся. Есть решение - напиши им письмо. Я в Азии живу и тут grab отжал рынок. Убер вообще норм был по сравнению
надеюсь, в этом чате есть работники убера, которые смогут донести до нужных людей то, о чем я здесь пишу. Связываться с саппортом принципиально не хочу, т.к. в этом случае вероятность того, что инфа дойдет до нужных людей, стремится к нулю.
Еще бесит, что в убере нельзя добавить дополнительный телефон на аккаунт. Я зарегил убер на телефон в одной стране, теперь пользуюсь им в основном в другой, но иногда езжу в начальную страну. Хотелось бы, чтобы в убере была возможность добавлять телефонные номера для каждой страны, где ты им пользуешься, чтобы таксисты могли звонить на локальный номер, а не отменять поездку из-за того, что звонок на заграничный номер обойдется дороже стоимости поездки

Alexander μήδομαι
13.06.2018
09:28:07
В этом чате точно всем плевать на убер.

Aliaksandr
13.06.2018
09:28:19
жаль (
хороший сервис
только ПО не очень :)

Michael
13.06.2018
09:30:28

Aliaksandr
13.06.2018
09:31:05
ага

Pawel
13.06.2018
11:15:31
go-bindata депрекейтнули. Чо юзать для встраивания файликов в прогу на Го? Пока остановился на packr, но он глуп, не умеет в абсолютные пути

Aliaksandr
13.06.2018
11:25:24
продолжайте использовать go-bindata, если он вас устраивает

Василий
13.06.2018
11:34:38
Я тут mtproto обкатываю, поднял прокси для телеги, если кому нужно tg://proxy?server=185.205.210.186&port=443&secret=28903022c71ae67961d00ecacea6e0de

Fastumkruk ✅
13.06.2018
11:38:18

Василий
13.06.2018
11:39:58
Это не хттп протокол, а телеграма.

Fastumkruk ✅
13.06.2018
11:40:55
Кликабельно ток с телефона

Pawel
13.06.2018
11:41:22

Василий
13.06.2018
11:41:57

Google

Василий
13.06.2018
11:42:01
Обнови

Fastumkruk ✅
13.06.2018
11:42:27
Тг щас без прокси начала работать, странно. Первый раз такое после блокировки.

Василий
13.06.2018
11:44:35
Это очень не стабильно, пол Новосибирска связь потеряли уже

Alexander
13.06.2018
11:44:38

Admin
ERROR: S client not available

Alexander
13.06.2018
11:44:42
+

Stanislav
13.06.2018
11:50:28

Pawel
13.06.2018
12:11:11

Aleksandr
13.06.2018
12:11:32
юзаешь?

Pawel
13.06.2018
12:18:08
юзаешь?
не, не видел до сих пор. спасбо

Aleksandr
13.06.2018
12:18:29
есть еще пяток генераторов, но этот поадекватнее

Илья
13.06.2018
12:18:38

Pawel
13.06.2018
12:19:45

Денис
13.06.2018
12:20:11
Всем добрый день. Здесь можно задавать нубские вопросы для новичков?

Aleksandr
13.06.2018
12:21:09

Денис
13.06.2018
12:26:48
У меня такая проблема: пользователь вводит последовательность чисел. Если в течении 10 секунд ничего не было введено - программа выполняет определенные действия. Как правильно построить цикл (или это вообще должен быть свитч), чтобы программа сама по истечению 10 секунд выполняла определенное действие? Сейчас у меня выходит так, что после 10 секунд программа никак не реагирует, но если ввести число (когда время уже закончилось), то действие выполняется.

Aleksandr
13.06.2018
12:28:15
каналы, таймер, select

Kaspar
13.06.2018
12:30:44

Google

many-faced
13.06.2018
12:33:12
Кажется что пару дней назад на соседнем канале это уже было

Денис
13.06.2018
12:33:55
сейчас у меня примерно так:
timeout := time.After(10 * time.Second)
for {
select {
case <-timeout:
//some action
default:
//default action
}
}

Aleksandr
13.06.2018
12:45:19

Alexander
13.06.2018
12:48:18
если у тебя внутри select делается break в надежде выйти из цикла, то из цикла ты не выйдешь
https://stackoverflow.com/q/11104085

Денис
13.06.2018
13:16:40
Может ли быть связано такое торможение таймера ожидаем ввода?

many-faced
13.06.2018
13:42:54

Денис
13.06.2018
13:49:20

many-faced
13.06.2018
13:55:28

Денис
13.06.2018
14:13:36

Daniel
13.06.2018
14:14:16
так не бывает

Денис
13.06.2018
14:19:06
Может, кинуть код? Наверняка я где-то напортачил

Daniel
13.06.2018
14:19:40
ну - да, без кода тут говорить не о чем

Денис
13.06.2018
14:25:47
https://repl.it/repls/RelevantMediumorchidBash

Sergey
13.06.2018
14:27:15
у тебя все в одном потоке выполняется