Size: a a a

2020 March 12

ЗА

Заур Ашурбеков in Go-go!
который нужно юзать для этого
источник

SA

Sky Alex in Go-go!
Заур Ашурбеков
там как раз описан флаг
Так в 1.14 он же по умолчанию должен быть?
источник

ЗА

Заур Ашурбеков in Go-go!
Sky Alex
Так в 1.14 он же по умолчанию должен быть?
а, рили
источник

ЗА

Заур Ашурбеков in Go-go!
ну я хз тогда
источник

p

pragus in Go-go!
Co. In
Задача сравнить два слайса с байтами, но с перевернутым порядком байт

Тоесть
[]byte{0,0,1} > []byte{8,9,0}
Какие есть варианты?

1. Перевернуть оба слайса и сравнить их как обычно через bytes.Compare
2. Написать свой метод побайтового сравнения с право на лево
3. Ваш вариант

Пробовал по ленивому первому пути перевернуть слайс с помощь binary.Write, что-то загадочно не работает.
https://play.golang.org/p/uEI2OCl2vfR
можно по несколько байт разом
источник

М

Михаил촊 in Go-go!
Co. In
Задача сравнить два слайса с байтами, но с перевернутым порядком байт

Тоесть
[]byte{0,0,1} > []byte{8,9,0}
Какие есть варианты?

1. Перевернуть оба слайса и сравнить их как обычно через bytes.Compare
2. Написать свой метод побайтового сравнения с право на лево
3. Ваш вариант

Пробовал по ленивому первому пути перевернуть слайс с помощь binary.Write, что-то загадочно не работает.
https://play.golang.org/p/uEI2OCl2vfR
А порядок байт в слайсе просто сделай копированием в другой слайс, начиная с конца, например. Или напиши свой Compare который будет идти по слайсу с другого конца. Разные варианты возможны.
источник

CI

Co. In in Go-go!
pragus
можно по несколько байт разом
Кстати да. Спасибо за идею Думаю так будет оптимальней чем по каждому байту самому идти. Думаю там должна быть какая-то оптимизация низкоуровневая.

Сделаю бенчмарки посмотрю как будет быстрей
источник

p

pragus in Go-go!
Co. In
Кстати да. Спасибо за идею Думаю так будет оптимальней чем по каждому байту самому идти. Думаю там должна быть какая-то оптимизация низкоуровневая.

Сделаю бенчмарки посмотрю как будет быстрей
в экстремальном варианте у вас есть avx2
источник

CI

Co. In in Go-go!
pragus
в экстремальном варианте у вас есть avx2
Я не настолько хорошо знаю инструкции чтоб на чистом AVХ2 писать(
источник

ОЭ

Орб Экксель in Go-go!
Подскажите,  делаю свой тип данных,  и хочу ограничить значения,  которые можно в него записать.  Что бы распечатать значение я использую метод String(), а вот что используется по стандарту для установки значения?
источник

RS

Roman Sharkov in Go-go!
Co. In
Задача сравнить два слайса с байтами, но с перевернутым порядком байт

Тоесть
[]byte{0,0,1} > []byte{8,9,0}
Какие есть варианты?

1. Перевернуть оба слайса и сравнить их как обычно через bytes.Compare
2. Написать свой метод побайтового сравнения с право на лево
3. Ваш вариант

Пробовал по ленивому первому пути перевернуть слайс с помощь binary.Write, что-то загадочно не работает.
https://play.golang.org/p/uEI2OCl2vfR
bytes.Compare похоже использует SIMD что значительно быстрее

> Написать свой метод побайтового сравнения с право на лево

а вот это может оказаться довольно медленным решением на современных x86
источник

RS

Roman Sharkov in Go-go!
pragus
в экстремальном варианте у вас есть avx2
а мне вот интересно, как заюзать AVX2 из Go? только через c2goasm? ASM ведь напрямую из Go нельзя, только Go’шный Plan-9 ASM, или я что-то путаю?
источник

RS

Roman Sharkov in Go-go!
Орб Экксель
Подскажите,  делаю свой тип данных,  и хочу ограничить значения,  которые можно в него записать.  Что бы распечатать значение я использую метод String(), а вот что используется по стандарту для установки значения?
вопрос не понятен, напиши пример: play.golang.org
источник

CI

Co. In in Go-go!
Roman Sharkov
bytes.Compare похоже использует SIMD что значительно быстрее

> Написать свой метод побайтового сравнения с право на лево

а вот это может оказаться довольно медленным решением на современных x86
Мне больше для Aarch64
источник

DP

Daniel Podolsky in Go-go!
Орб Экксель
Подскажите,  делаю свой тип данных,  и хочу ограничить значения,  которые можно в него записать.  Что бы распечатать значение я использую метод String(), а вот что используется по стандарту для установки значения?
нет стандарта на это.

но соглашение, еще со всемен java, Get() и Set()
источник

ВС

Владимир Столяров in Go-go!
Roman Sharkov
а мне вот интересно, как заюзать AVX2 из Go? только через c2goasm? ASM ведь напрямую из Go нельзя, только Go’шный Plan-9 ASM, или я что-то путаю?
так c2goasm как раз и конвертит объектные файлы сишные в .s
источник

DP

Daniel Podolsky in Go-go!
Co. In
Мне больше для Aarch64
надо проверять тогда. там и стандартный метод может оказаться реализован как “сравнили две ячейки памяти, перешли к следующим”, или даже “загрузили два значения в регистры, перешли к следующим”
источник

p

pragus in Go-go!
Roman Sharkov
а мне вот интересно, как заюзать AVX2 из Go? только через c2goasm? ASM ведь напрямую из Go нельзя, только Go’шный Plan-9 ASM, или я что-то путаю?
источник

ОЭ

Орб Экксель in Go-go!
Roman Sharkov
вопрос не понятен, напиши пример: play.golang.org
https://play.golang.org/p/H1kXEgOOx_b
Как сделать так, что бы на 33 строке я не мог напрямую установить значение?
источник

RS

Roman Sharkov in Go-go!
Орб Экксель
https://play.golang.org/p/H1kXEgOOx_b
Как сделать так, что бы на 33 строке я не мог напрямую установить значение?
увы, никак. Иммутабельности / read-only типов в Go нет а приватные поля доступны всем в пределах пакета.

только если приватные поля с Get/Set вне пакета
источник