Anonymous
илья же
Anonymous
поэтому и удаляет
Alexander
(i T) мб?
Alexander
хм, если все так, то мне это не нравится совсем
Alexander
короче ты можешь только Database параметризировать, а тут выкидываешь [T Wrap]
Alexander
как вариант можно шаблонную функцию сделать куда передавать *Database
Alexander
надеюсь, это идиотское ограничение уберут
Aртем
Всем привет, пытаюсь получить последние 6 символов строки, а как нибудь проще чем я наворотил можно это сделать?
Aртем
https://go.dev/play/p/iqYp7s7eMkb
Herman
https://go.dev/play/p/iqYp7s7eMkb
https://go.dev/play/p/mgZYOl5Wbsz
Aртем
Спасибо)
аnon
@herasaml мэн лс
Alexander
потестил разбор жирной хтмлки в *goquery.Document с разными амд64 на разных GOAMD64 (core i5 6500): func BenchmarkGoquery(b *testing.B) { html, err := ioutil.ReadFile(path) if err != nil { b.Fatal(err) } for i := 0; i < b.N; i++ { reader := bytes.NewReader(html) _, err := goquery.NewDocumentFromReader(reader) if err != nil { b.Fatal(err) } } } Думал прям большая разница будет, вроде как бы жирная работа со строками и всякие СИМД должны пригодиться, в итоге ерунда: v1 BenchmarkGoquery-4 100 42423080 ns/op 15824063 B/op 205054 allocs/op v2 BenchmarkGoquery-4 100 41462106 ns/op 15824082 B/op 205054 allocs/op v3 BenchmarkGoquery-4 100 41533973 ns/op 15824063 B/op 205054 allocs/op
Alexander
естественно на 4 версии он ругнулся, что проц не поддерживает
Alexander
прямо огорчен: надеялся, будет значительный буст
Alexander
притом v2 стабильно лучше
Alexander
ну сортировки это сильно работа с памятью. я, конечно, понимаю, что разбор в дом дерево если не писать супер оптимально тоже
Alexander
даже v2 не сильно лучше v1
Alexander
остается только надеяться, что фичу они добавили, а сделать ее нормально не сделали(
Alexander
пытаюсь с другими примерами. объясните, может я неправильно делаю и оно не собирается с нужным параметром GOAMD64: go clean -cache && GOAMD64=v1 /usr/bin/go test -benchmem -run=^$ -bench ^BenchmarkSum$ MYPATH
Alexander
не знаю, мб оно не собирает бенч именно с этим параметром
Alexander
Пробую делать намеки использовать векторизацию: func sum(a, b, res []int64) { for i := 0; i < vecLen; i++ { res[i] = a[i] + b[i] } } Заменил на: func sum(a, b, res []int64) { for i := 0; i < vecLen; i += 4 { res[i] = a[i] + b[i] res[i+1] = a[i+1] + b[i+1] res[i+2] = a[i+2] + b[i+2] res[i+3] = a[i+3] + b[i+3] } } Запускал на 10к элементов. Получил на v1 прирост с 90мкс до 70мкс. иииии. v1 самый быстрый все равно
Alexander
функции не идентичны или компилятор го туповат?
Alexander
если что, код бенча такой: const vecLen = 100000 var a, b, c, res []int64 func init() { a = make([]int64, vecLen) b = make([]int64, vecLen) c = make([]int64, vecLen) res = make([]int64, vecLen) for i := 0; i < vecLen; i++ { a[i] = int64(rand.Intn(1000)) b[i] = a[i] + 1 c[i] = a[i] + 2 } } func BenchmarkSum(tB *testing.B) { for i := 0; i < tB.N; i++ { sum(a, b, res) if res[3] == 0 { tB.Fatal("wtf") } } }
Tonny 🐍
Stand with Taiwan 🇹🇼
Anonymous
赚钱咨询: @yang5577
Anonymous
赚钱咨询: @yang5577
Alexander
вот это на самом деле интересно очень
Alexander
Пробую делать намеки использовать векторизацию: func sum(a, b, res []int64) { for i := 0; i < vecLen; i++ { res[i] = a[i] + b[i] } } Заменил на: func sum(a, b, res []int64) { for i := 0; i < vecLen; i += 4 { res[i] = a[i] + b[i] res[i+1] = a[+1] + b[i+1] res[i+2] = a[i+2] + b[i+2] res[i+3] = a[i+3] + b[i+3] } } Запускал на 10к элементов. Получил на v1 прирост с 90мкс до 70мкс. иииии. v1 самый быстрый все равно
Alexander
функции не идентичны или компилятор го туповат?
Alexander
строку res[i+1] = a[+1] + b[i+1] пофиксил - результат тот же
Alexander
элементов 100к, но тут не суть
Andrey
Ты же понимаешь, что ты три последних элемента пропустишь, если размер, например, 11)
Alexander
у меня кратно 4
Alexander
это ты к чему?
Anonymous
это кошелек для блокчейна
Anonymous
кошелек скучно делать поэтому запостил на гит, чтобы мотивация была доделать xDD
Anonymous
github.com/h3llworld
Anonymous
можете звезд на микросервисы накидать 🥺
Anonymous
не понял
Anonymous
ок
Anonymous
ну
Anonymous
пет проект тут при чем?
Anonymous
не понял
Anonymous
где у тебя может быть проблема парса?
аnon
ладно
аnon
github.com/h3llworld
сколько ты пишешь на go?
Anonymous
0 лет
аnon
0 лет
а ну ...
аnon
ладно
Vladislav
Зачем писать на питоне, если есть котлин
Anonymous
чел а ты неплох
Anonymous
кикаем
аnon
Anonymous
так бан не дается
Anonymous
разве?
Anonymous
я так же мог зайти в чат
Konstantin
Доброго. Кто пользовался smb2/3 клиентом? Какие скорости на скачивание добились? У меня 30% от максималок.
аnon
ладно
аnon
шифрование от Дурова
аnon
haha
аnon
нет это цирк как и название языка
аnon
ты аут просто пиздец
аnon
ладно
аnon
с 2001 года
аnon
что за операционная система?
аnon
один питонист другой шиндовсный
аnon
мак сейчас на процессорах Эльбрус выпускают
аnon
не плохой . он как bash скриптинг нового уровня
аnon
аnon
это джанго
аnon
фильм реально хороший посмотрите ☺️
аnon
дайте фильм посмотреть у меня уже 3 ночи
аnon
аnon
аnon
реально?
аnon
аnon