
Виктор
04.09.2018
13:36:56
Чаще всего int32 или int64 нужны только в конкретных ситуациях где именно это и необходимо в остальных случаях обычный инт выигрывает

Илья
04.09.2018
13:37:00
я, может быть, плохой сварщик (скорее всего, даже не настоящий), но чтобы int64 операции обгоняли int32, вроде не натыкался

Roman
04.09.2018
13:37:11

Google

Виктор
04.09.2018
13:38:21

ainu
04.09.2018
13:39:51
конечно это больше статистическое отклонение может быть

Pawel
04.09.2018
13:40:08

Roman
04.09.2018
13:41:47

ImCat
04.09.2018
13:43:02

Pawel
04.09.2018
13:43:40

ainu
04.09.2018
13:44:00
1. zero memory allocation между запросами
2. перевести с мапов на массивы
3. найти copy() и аллокации, убрать
4. поиграться с типами. зачастую Int быстрее чем int32/bool
5. зверская магия, когда есть map, допустим из 50 элементов, делается make(map, 50), и копируется - чтение из нового будет быстрее, до 20-50% иногда.
6. алгоритмы! O(n) и все такое.
7. вместо стандартной библиотеки юзать свои функции (например которые вместо {}interface будут юзать int)
8. string поменять на слайс byte, когда есть промежуточные переводы туда сюда. Но это ерунда на самом деле.
9. если функции чистые и руки прямые, то можно в ассемблер залезть и там поковырять.
10. make([]int, Здесь указывать размер впрок ) - тоже ускоряет, если уже не сделано

Никита
04.09.2018
13:44:52

Dorian
04.09.2018
13:45:01

Pawel
04.09.2018
13:45:37

Dorian
04.09.2018
13:45:43
за счет чего быстрее?
Скорее всего из за того что при росте не ищет новый фрагмент памяти с достаточным количеством места под новый слайс

Google

Илья
04.09.2018
13:45:52

Roman
04.09.2018
13:46:28

ainu
04.09.2018
13:46:36
за счет чего быстрее?
Ну если в размер не вместилось, append будет создавать копию массива.Например два варианта:
z := []int{};
for i:=;i<=100;i++ {
z = append(z, i)
}
//второй вариант
z := make([]int,100);
for i:=;i<=100;i++ {
z = append(z, i)
}

Сергей
04.09.2018
13:46:47

lexxx
04.09.2018
13:46:51
а чо поцоны есть жирдяи среди вас гоферов
как боретесь
???

Илья
04.09.2018
13:47:00

Никита
04.09.2018
13:47:03

ainu
04.09.2018
13:47:18

Roman
04.09.2018
13:47:25

Никита
04.09.2018
13:47:29
А так да, понятно почему)

lexxx
04.09.2018
13:47:37
я написал прогу на гоу, там в цикле отжимания и подтягивания, бег, но как скомпилировать и загрузить себе в мозг хз, кто нибудь сталкивался?

ainu
04.09.2018
13:47:49
суть в том что append создает новый массив и цепляет к нему слайс, если старый массив переполнен. Ему можно подсказать, чтобы заранее массив был большим.

Илья
04.09.2018
13:47:50

Никита
04.09.2018
13:48:27
кстати, что оптимизируют в первую очередь?

Сергей
04.09.2018
13:48:35

ainu
04.09.2018
13:48:55
сначала работу с диском, потом алгоритмы и аллокации =)
остальное это экономия на спичках

Сергей
04.09.2018
13:49:14
Первая версия вышла совсем недавно

Google

Roman
04.09.2018
13:49:42

Никита
04.09.2018
13:49:56
я в целом о вебе

Roman
04.09.2018
13:50:20

Сергей
04.09.2018
13:50:46

ainu
04.09.2018
13:52:09

Alexander
04.09.2018
13:52:16

ainu
04.09.2018
13:52:28
просто доступ к диску на порядки дороже доступа к памяти

Roman
04.09.2018
13:52:53

ainu
04.09.2018
13:52:56
опять таки аллокация памяти на порядки дороже записи/чтения из памяти

Никита
04.09.2018
13:52:57
Проще говоря БД тюнить)

Сергей
04.09.2018
13:53:10

Сергей
04.09.2018
13:53:39
ну например копировать сообщения в каждую горутину
Если можно пошарить ссылку

ainu
04.09.2018
13:54:26

Alexander
04.09.2018
13:55:54
Иногда без него никак
Ключевое слово - иногда. Именно поэтому, например, в расте переменные по дефолту иммутабельные и мутабельными они становятся только после добавления модификатора mut.

Сергей
04.09.2018
13:56:34

Alexander
04.09.2018
13:58:10

Алексей
04.09.2018
13:59:46
Толку от тип сумм, когда рефлексии нет и нужно ручками всё расфасовывать?

Alexander
04.09.2018
14:00:00

Google

Alexander
04.09.2018
14:00:23

Алексей
04.09.2018
14:00:43
Чтобы эти самые типы автоматически в json распихать
Вот в C++ такого просто так не выйдет
тут либо кодогенерация, либо макро и шаблонная магия

Roman
04.09.2018
14:01:58

Roman
04.09.2018
14:02:13
https://mholt.github.io/json-to-go/
))

Roman
04.09.2018
14:02:23

Admin
ERROR: S client not available

Alexander
04.09.2018
14:02:29

Dorian
04.09.2018
14:02:31
Как забыть про обьекты и релейшины и начать жить?

Сергей
04.09.2018
14:02:35

Roman
04.09.2018
14:03:04

Alexander
04.09.2018
14:03:09

Dorian
04.09.2018
14:03:31
Хаскель.
Ну мне б грамотное читло с примерчиками не хеловорлд

Roman
04.09.2018
14:03:35

Сергей
04.09.2018
14:03:36
Хаскель.
А как там решается проблема связей

Dorian
04.09.2018
14:04:26

Сергей
04.09.2018
14:04:53

Alexander
04.09.2018
14:05:05

Google

Alexander
04.09.2018
14:05:13

Dorian
04.09.2018
14:05:23

Алексей
04.09.2018
14:05:42
ну всё, хаскель упомянули, ща Pawel гневно набежит

Alexander
04.09.2018
14:05:43

Сергей
04.09.2018
14:05:54
Как можно всё это заюзать в хаскеле

Alexander
04.09.2018
14:06:41

Roman
04.09.2018
14:07:17

Алексей
04.09.2018
14:07:43

Dorian
04.09.2018
14:08:29
ГэЦэ?

Сергей
04.09.2018
14:08:46

Roman
04.09.2018
14:09:17

Алексей
04.09.2018
14:09:22

Сергей
04.09.2018
14:10:14
А что за проблема связей?
Связей между таблицами... Я так понимаю человек до меня задавал вопрос про FOREIGN KEY, а кто-то ему посоветовал хаскель
Кстати, в gorm уже появилась автомиграция с внешними ключами?
Коллеги, подскажите, есть ли какое-нибудь более удобное решение для работы с бд кроме gorm?

Dorian
04.09.2018
14:23:11
Удобно не использовать ОРМ

Roman
04.09.2018
14:25:11

ImCat
04.09.2018
14:25:14
Вообще пока сейчас разбирался с горм реально подумал что без неё проще было бы