Size: a a a

2020 December 12

СС

Семён Семеныч... in Go-go!
Хочу на го написать лаунчер, который будет скачивать большое количество файлов. Вопрос в том, как лучше и быстрее, скачивать файлы по одному или сразу все?
Их может быть тысячи.
источник

AZ

Aleksandr Zelenin in Go-go!
По n ~ 10 например
источник

с

сонная википедия... in Go-go!
Семён Семеныч
Хочу на го написать лаунчер, который будет скачивать большое количество файлов. Вопрос в том, как лучше и быстрее, скачивать файлы по одному или сразу все?
Их может быть тысячи.
1) доверить это пользователю
2) в принципе тысяча горутин это немного
источник

с

сонная википедия... in Go-go!
другое дело что они могут тупо забить канал и мешать друг другу
источник

СС

Семён Семеныч... in Go-go!
сонная википедия
1) доверить это пользователю
2) в принципе тысяча горутин это немного
Го не уйдет в астрал?)
источник

с

сонная википедия... in Go-go!
нет
источник

с

сонная википедия... in Go-go!
он и на 10к не уйдет
источник

Z

Zver in Go-go!
Roman Yelin
Либо вообще не писать
Это самое лучшее.
источник

ЯК

Ярослав Коробейников... in Go-go!
Кто-нибудь поделиться статьей когда следует метод для структуры писать с ссылкой на структуру, а когда нет?

func (s *SomeStruct) someMethod()

func (s SomeStruct) someMethod()
источник

АП

Александр Попов... in Go-go!
как правило везде * где надо менять значение, ибо без это копия
источник

АП

Александр Попов... in Go-go!
например функция:
func (s *SomeStruct) SetColor(color string) {
      s.Color = color
}
источник

ЯК

Ярослав Коробейников... in Go-go!
А где не надо меня значение, не стоит передавать по ссылке? Разве передача по ссылке не экономит память?
источник

АП

Александр Попов... in Go-go!
у нас всегда идет передача только по значению
источник

АП

Александр Попов... in Go-go!
вопрос только - значение это указетель или нет
источник

АП

Александр Попов... in Go-go!
func (s *SomeStruct) someMethod() -> func someMethod(s *SomeStruct)
func (s SomeStruct) someMethod() -> func someMethod(s SomeStruct)
источник

АП

Александр Попов... in Go-go!
это сахар
источник

АП

Александр Попов... in Go-go!
в первом случаи мы скопируем указатель на память - его копия продолжит указывать на старое значение, во втором скопируем значеие
источник

с

сонная википедия... in Go-go!
Ярослав Коробейников
А где не надо меня значение, не стоит передавать по ссылке? Разве передача по ссылке не экономит память?
иногда экономит место на стеке, но чаще вызывает аллокацию в куче
источник

с

сонная википедия... in Go-go!
если передача по указателю вам явна не нужна — то есть
1) если метод ничего не мутирует (это в частности могут быть и поля, мьютекс скажем)
2) не явялется частью реализации интерфейса, где уже есть метод с указателем в ресивере
3) ваша структура не занимает гигантское место на стеке(в пару десятков килобайт например)
то лучше обойтись передачей по значению
источник

ЯК

Ярослав Коробейников... in Go-go!
сонная википедия
если передача по указателю вам явна не нужна — то есть
1) если метод ничего не мутирует (это в частности могут быть и поля, мьютекс скажем)
2) не явялется частью реализации интерфейса, где уже есть метод с указателем в ресивере
3) ваша структура не занимает гигантское место на стеке(в пару десятков килобайт например)
то лучше обойтись передачей по значению
Спасибо 👍
источник