Oleg
Sergius Ofitserov
I
Nick
я так понимаю это у них абонемент на использование сервиса, а не цена на курс
I
вопрос в том, почему цена на одиy и тот же курс отличается и от чего она зависит?)
Vasily
Alexander
Vasily
Судя по разным ответам - там действительно есть какие-то крутилки внутри
Alex
мне за 3474 предложили
Alex
Интересно, тут сроки какие то. Если я не закрыл часть курса в этот срок, что? Доступ закрывается?
ainu
Могу посоветовать курс на курсере, который общего назначения. Жена сейчас много чего изучает, и прямо хвалит. Сам я пока не начал.
https://www.coursera.org/learn/learning-how-to-learn/home/welcome
называется "курс как уметь учиться"
Zloy-Dobry
пасаны
Zloy-Dobry
а чатик монги есть?
Zloy-Dobry
анашел
Anonymous
Господа, есть у кого линк на Erlang-чатик?
Anonymous
И, собственно, кто-то из Го-господ пробовал Эрланг?
ainu
https://t.me/erlangrus
Anonymous
ainu
А есть смысл указывать размер map через make если я не собираюсь его увеличивать?
То есть у меня есть мапа рамером допустим 100 элементов.
мапа, созданная через make(map[string]string, 100) будет быстрее возвращать значения?
Andrei 🦉
не совсем, она сразу аллоцирует небходимую память и не будет происходить ресайза мапы при добавлении в нее элементов
Andrei 🦉
за мапой в го скрывается хеш таблица
Andrei 🦉
на скорость возвращения значений это никак не влияет
ainu
влияет=) только что затестил
ainu
на 30% быстрее если указать размер
Andrei 🦉
как ты это затестил? в тест включено наполнение мапы?
ainu
https://pastebin.com/CkPmXKMb
ainu
нет, в тест НЕ включено наполнение памы
ainu
мапы*
ainu
Только поиск и заполнение слайса с результатами
ainu
В общем сравнивал четыре хранилища с целю по ключу получить значение:
btree, map, map с размером и слайс
ainu
Данные вот такие
ainu
tree22 := make(map[int]int, 450001)
for i := 4; i < 450000; i++ {
tree22[i] = i * 10
}
ainu
результат в микросекундах:
btree time 94607
map time 20522
map time (с размером) 16016
slice time 1001
ainu
что прямо круто
ainu
я бы почитал про то как го оптимизует но не знаю где кроме сорцов
Vasily
стандартная практика на курсере
ainu
ainu
Стал умнее=)
Vasilii
По слайсу последовательный доступ быстрее, тк это массив
Andrei 🦉
@ramainen у тебя там по одному замеру каждой операции, насколько я понимаю
Andrei 🦉
вполне мог gc с прошлого кейса отъесть ресурсов
Andrei 🦉
запусти хотя бы по 100 раз и возьми среднее, отличий быть не должно
Anonymous
Vasilii
https://stackoverflow.com/questions/31707064/why-is-iterating-over-a-map-so-much-slower-than-iterating-over-a-slice-in-golang
Лёша
ребят, что означает подобная запись?
var _ wtf.DialService = &DialService{}
ainu
Anonymous
Лёша
а, точно
Лёша
спасибо
ainu
ainu
ainu
80% прироста
ainu
первый тест специально чтобы процессор активировать=) там несколько секунд крутится
ainu
Хотя если местами поменять ничего не меняется
ainu
реально прирост
Andrei 🦉
самый правый* столбец - это количество аллокаций?
ainu
Да, если верить go test -bench
Andrei 🦉
тогда очень странно, у тебя в коде нет аллокаций в тесте
ainu
ты про одну аллокацию? или про 385?
ainu
func BenchmarkSpeedMapWithSize(b *testing.B) {
tree2 := make(map[int]int, 450001)
for i := 4; i < 450000; i++ {
tree2[i] = i * 10
}
secondids := []int{}
for i := 4; i < 450000; i = i + 2 {
secondids = append(secondids, i)
}
for n := 0; n < b.N; n++ {
result := make([]int, 0, len(secondids))
for i := 0; i <= len(secondids)-1; i++ {
if res, exists := tree2[secondids[i]]; exists && res > 20 && res < 410000 {
result = append(result, res)
}
}
}
}
Andrei 🦉
про разницу между 385 и 1
ainu
ну отличаются только параметром у make
Vasilii
В динамической мапе больше памяти выделяется, поэтому она может быть медленее, ключи в памяти дальше разбросаны друг от друга, больше дырок в индексе
Vasilii
Но это тот же порядок сложности, просто кеширование процом хуже
ainu
математически - да, тот же O(1)
ainu
фактически приростище
ainu
я еще вывел из измеряемого цикла пересоздаваемый массив результатах.
то есть
result := make([]int, 0, len(secondids))
for n := 0; n < b.N; n++ {
result = result[0:0]
на мапах результата не видно, на слайсах вдвое
Vasilii
В мапе поиск о(1)
Vasilii
Попробуй запрашивать не по порядку, а случайные ключи
ainu
хм.
Vasilii
Это аннулирует кеш проца
Vasilii
Ну почти аннулирует
ainu
щас=)
ainu
рандомом прямо?
Vasilii
Math rand вполне хватит, crypto не надо
ainu
ainu
учитывая что львиное время ушло на rand, результат тот же самый