Oleg
Ох, беда, беда.... ))))
Действительно😂
Nick
я так понимаю это у них абонемент на использование сервиса, а не цена на курс
Ilya
я так понимаю это у них абонемент на использование сервиса, а не цена на курс
Насколько знаю - это именно цена за курс, за доп. материалы (раздел graded) и итоговый экзамен + сертификат. В graded обычно бывают задачи и прочая практика
I
вопрос в том, почему цена на одиy и тот же курс отличается и от чего она зависит?)
Vasily
вопрос в том, почему цена на одиy и тот же курс отличается и от чего она зависит?)
не могу помочь по этому вопросу, я не в курсе политики ценообразования курсеры
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
Интересно, тут сроки какие то. Если я не закрыл часть курса в этот срок, что? Доступ закрывается?
сроки есть. в случае срыва сроков сдать оцениваемые задания можно будет в следующей сессии курса, доступ не закрывается
Vasily
стандартная практика на курсере
ainu
сроки есть. в случае срыва сроков сдать оцениваемые задания можно будет в следующей сессии курса, доступ не закрывается
Спасибо, вот первая польза от курса. Думал что Go знаю, увидел что у мапов указывается размер.
ainu
Стал умнее=)
Vasilii
По слайсу последовательный доступ быстрее, тк это массив
Andrei 🦉
@ramainen у тебя там по одному замеру каждой операции, насколько я понимаю
Andrei 🦉
вполне мог gc с прошлого кейса отъесть ресурсов
Andrei 🦉
запусти хотя бы по 100 раз и возьми среднее, отличий быть не должно
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
запусти хотя бы по 100 раз и возьми среднее, отличий быть не должно
Challenge Accepted, у нас есть замечательный benchmak в го
Anonymous
ребят, что означает подобная запись? var _ wtf.DialService = &DialService{}
присвоить в переменную _ значение &DialService{}, не?
Лёша
а, точно
Лёша
спасибо
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
фактически приростище
Anonymous
математически - да, тот же O(1)
Ну, не совсем :) В "больших" мапах может быть и O(n)
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, результат тот же самый