@gogolang

Страница 1591 из 1630
Владимир
19.10.2018
17:53:50
Ну да, иначе зачем скрывать

Vadim
19.10.2018
19:25:45
Копался в awesome go. Смотрите что нашёл https://github.com/striker2000/petrovich

Eugenii
19.10.2018
19:32:59
конкретный дисонанс между формой и содержанием

но занятно

Google
Petr
19.10.2018
22:50:33
Есть кто-то, кто переписал проект на golang и пожалел? Если да, то почему?

Гриша
20.10.2018
00:26:39
Подскажите, кто работал с изображениями на go. Использую стандартный image.Decode для проверки на тип и на "битость" изображений, но там аллоцируется очень много памяти в image.NewYCbCr, при этом не отдает почему-то память обратно в ОС. Кто-то сталкивался с подобным, или возможно знает что-то более подходящее для валидации. Проверяю png и jpeg

Айбелив
20.10.2018
04:00:35
Есть кто-то, кто переписал проект на golang и пожалел? Если да, то почему?
1) пожалел предыдущего себя, ведь на го стало работать гораздо быстрее и стабильнее. 2) ищем гоферов для развития проекта, но их нет. Мухосранск.

Misha
20.10.2018
05:55:50
Добрый день, уважаемые гоферы! Такая задача, подаю в канал некое количество данных, а потом хочу его обработать из нескольких горутин. Горутины отрабатывают и дальше остается вопрос, как их убить. То есть можно ли как-то проверить, что все данные из канала обработаны?

Pavel
20.10.2018
05:57:21
Закрыть канал.

Misha
20.10.2018
06:00:16
А как это проконтролировать в горотинах? Они у меня читают данные из канала в цикле бесконечном, или можно как-то в условие этого цикла вставить существование канала?

Denys
20.10.2018
06:01:02
range chan завершится когда канал закроется

Nikolay
20.10.2018
06:01:02
Tweet from @yelbota https://twitter.com/yelbota/status/1053302713356861440 @yelbota: @vasilenkos МИМО ГОФЕСКОГО КАБИНЕТА Я БЕЗ ШУТОК НЕ ХОЖУ ТО АППЛИКАТИВНЫЙ ФУНКТОР ПОД ДВЕРЬ ПРОСУНУ ТО МОНАДУ ПОКАЖУ

Misha
20.10.2018
06:01:25
range chan завершится когда канал закроется
Я вас понял, спасибо большое)

Google
Denys
20.10.2018
06:03:24
да, готур лучше пройит, он очень короткий и очень эффективный

Misha
20.10.2018
06:50:29
Го тур прошли?
Полгода назад где-то, с тех пор каналы так и не пригодились. Надо бы повторить их

Vladimir
20.10.2018
07:52:38
Denys
20.10.2018
07:55:40


Misha
20.10.2018
08:08:21
не использование рутин и каналов ? А зачем вам GO?
Не все веб приложения требуют их непосредственного использования

Vladimir
20.10.2018
08:10:27
Не все веб приложения требуют их непосредственного использования
никто не требует параллельно-конкурентных операций, можно портировать PHP на GO ,если ждете апокалипсиса! Но садится в танк чтобы вынести мусор ... вызовет улыбку

Misha
20.10.2018
08:12:12
Пока что го мне требовался только для учебно-проектных задач в плане несложных апи. Сейчас возникла задача, где нужно обрабатывать большие объемы данных, вот и начал разбираться с рутинами и каналами, и в частности с их использованием

Vladimir
20.10.2018
08:13:37
Вообще, хороший го код очень легко сделать конкурентным
так же легко как кошке бегающей по пианино сыграть Баха

Vadim
20.10.2018
08:14:17
Говорю сугубо по своему опыту

Misha
20.10.2018
08:14:47
Я не вижу смысла как-то использовать конкурентность, когда данных как кот наплакал

Vladimir
20.10.2018
08:16:36
Я не вижу смысла как-то использовать конкурентность, когда данных как кот наплакал
дело же не в данных , а сколько ядер/поток будет использовано из вашего CPU! Если нравится писать приложения в 1-н поток ,ваше право!

Nikolay
20.10.2018
08:16:38
Я не вижу смысла как-то использовать конкурентность, когда данных как кот наплакал
Вообще мало связанные вещи, для данных чаще используют векторизацию

А конкурентность - это больше про io bound

Vladimir
20.10.2018
08:17:37
в моем значении конкурентность по Пайку

Misha
20.10.2018
08:17:40
Вообще мало связанные вещи, для данных чаще используют векторизацию
Ну а если говорить об обработке? Допустим мне нужно отфильтровать несколько сотен тысяч объектов

Misha
20.10.2018
08:18:25
Json

Nikolay
20.10.2018
08:18:45
Json
Jq использовать не вариант?

Google
Misha
20.10.2018
08:19:13
А что это есть?

Nikolay
20.10.2018
08:20:09
А что это есть?
Консольная развесистая утилита для работы с json

Хотя несколько сотен тысяч - это очень мало

Misha
20.10.2018
08:21:15
Данные предоставляются частично, запрашиваю из апи. Возвращает кусками

У меня нет на руках сразу всех данных

Nikolay
20.10.2018
08:22:12
И что это меняет? Просто постранично перебираешь API и кидаешь на диск

Я бы советовал сохранить всё перед анализом

Vladimir
20.10.2018
08:22:55
каждая страница обрабатывается отдельной рутиной

Nikolay
20.10.2018
08:23:40
каждая страница обрабатывается отдельной рутиной
Да, можно так. Или можно просто GNU parallel + curl

Misha
20.10.2018
08:25:29
Так места не диске не напасешься, плюс даже запросив эти данные, определенные их части приходится дозапрашивать, если их сначала собирать, а потом обрабатывать, выйдет слишком долго

каждая страница обрабатывается отдельной рутиной
Примерно такой идеи я и придерживаюсь

каждая страница обрабатывается отдельной рутиной
Только количество рутин надо ограничивать, если я правильно понимаю

Vladimir
20.10.2018
08:30:22
Только количество рутин надо ограничивать, если я правильно понимаю
не факт, много вариантов не требуют этого , но исходя из ТЗ !

Misha
20.10.2018
08:31:05
При определенном количестве они начнут друг другу только мешать, время переключения будет больше времени выполнения

При достаточно простых процессах

Vladimir
20.10.2018
08:32:01
При определенном количестве они начнут друг другу только мешать, время переключения будет больше времени выполнения
да именно , но переключение между рутинами - это не тяжелое переключение между контекстами задач

исходя из успешных практик многие работают с тысячами рутин и каналов

Misha
20.10.2018
08:33:46
А как-то можно вычислить это количество?

Ну если говорить немного о теории

Vladimir
20.10.2018
08:34:37
введи инкрементор и декрементор защищенный мьютексом и считай

Google
Vladimir
20.10.2018
08:36:26
даже придебаге поможет, ведь закрылась или нет рутина на первых порах очень важно

Misha
20.10.2018
08:36:29
Нет, я имею ввиду, рассчитать, при скольких рутинах достигается максимальная эффективность

George
20.10.2018
08:37:10
Нет, я имею ввиду, рассчитать, при скольких рутинах достигается максимальная эффективность
тут вам помогут лишь ваши личные бенчмарки всё зависит от вашего железа

Vladimir
20.10.2018
08:37:31
Нет, я имею ввиду, рассчитать, при скольких рутинах достигается максимальная эффективность
вы хотите универсальную формулу для расчета на произвольном коде программера?

Vadim
20.10.2018
08:37:47
Очень часто не больше кол-ва ядер.

Misha
20.10.2018
08:37:50
Научного метода нет? Только методом тыка?

Vladimir
20.10.2018
08:38:06
Misha
20.10.2018
08:38:13
вы хотите универсальную формулу для расчета на произвольном коде программера?
Или метод не нахождения, вообще возможно ли такое составить

George
20.10.2018
08:38:35
Очень часто не больше кол-ва ядер.
еслиб мы могли запустить не больше 4-8 го рутин, то никто бы на го и смотреть не стал

Vadim
20.10.2018
08:39:36
еслиб мы могли запустить не больше 4-8 го рутин, то никто бы на го и смотреть не стал
Мы можем больше, я говорю про кол-во горутин, на которых самое маленькое латенси.

Misha
20.10.2018
08:40:07
Я чувствую выбор количество горутин - это такой же вопрос, как выбор количества нейронов в каждом слое нейронной сетки

То есть дело опыта и интуиции

Vladimir
20.10.2018
08:41:21
То есть дело опыта и интуиции
скорее количеством слипов вставленных программером! Если программист пишет с учетом "соседей" то все будет ОК

Misha
20.10.2018
08:43:32
А как их учесть?

Nikolay
20.10.2018
08:44:02
А как их учесть?
А их просто в идеале быть не должно

Oleh
20.10.2018
08:45:06
Если в горутине используется очень простая операция (к примеру умножение) и их много, то будет больше времени тратится на переключение между ними А дальше только смотреть в профайлер и как шедулер много ест проца

Misha
20.10.2018
08:46:47
А их просто в идеале быть не должно
Я понял, что не понял о каких соседях речь, сторонние процессы запущенные на той же машине?

Nikolay
20.10.2018
08:47:26
Я понял, что не понял о каких соседях речь, сторонние процессы запущенные на той же машине?
Любая долгоиграющая операция, включая слип, блочит горутины, работающие на том же ядре

Google
Vladimir
20.10.2018
08:49:57
я их называю зелеными соседями

dвот набросал для изучающих // Factorial.go package main import ( "fmt" ) func fu(l uint64, max uint64, p chan uint64) { var f, g uint64 uch := make(chan uint64) if l+2 <= max { go fu(l+2, max, uch) f = l * (l + 1) g = <-uch p <- g * f } else { if l == max { p <- l } else { p <- (l) * (l + 1) } } } func factorial(n uint64) uint64 { uch := make(chan uint64) go fu(1, n, uch) return <-uch } func main() { fmt.Println("Факториал через рутины") for i:=0;i<17;i++ { fmt.Println(i+1,"!=",factorial(uint64(i+1))) } }

не задавайте вопросы ,экспериментируйте сами

сделайте для чисел Фибоначи и уверенность придет или из псевдорекурсии сделайте на циклах с разбиением

Vladimir
20.10.2018
09:26:32
Ужас
неужели показ на псевдорекурсии - это ужас?

как минимум количество рутин превысит количество ядер

иначе GREEN останется англицким словом всего лишь

Roman
20.10.2018
09:30:33
неужели показ на псевдорекурсии - это ужас?
Я про количество локов которые берутся и отпускаются при работе с каналом

Vladimir
20.10.2018
09:33:41
Я про количество локов которые берутся и отпускаются при работе с каналом
можно с начинкой потяжелее и о локах забыть! В нашем случае 26-ть параллельных умножений не потянут на компенсацию от затрат на локи! Дак в учебных целях же ?, большее запараллеливание приведет к усложнению до уровня непонимания

$continue$
20.10.2018
09:35:02
приветствую. есть ли в го функция, которая переведет time.Since в дни, если h > 24?

или нужно писать код для этого

Fastumkruk ✅
20.10.2018
09:36:29
Привет Ребята. На го есть эмуляция клика?

$continue$
20.10.2018
09:37:47
int(ddur.Hours())/24 ?
так и да, но и нет

$continue$
20.10.2018
09:37:52
тогда нужен format времени

Страница 1591 из 1630