Я знаю, что большинство новичков спрашивают, как получить эффективные процедуры / параллелизм, этот пункт я пропустил несколько недель назад.: -)
У меня действительно быстрый транскодер, который использует каждый доступный цикл моего 4 + 4 (i7 HT) процессора.Он читает файл в виде фрагментов указателей на структуры, выполняет их вычисления и записывает результат обратно на диск.Я использую Bufio.Я прихожу из VB, поэтому производительность Go невероятна.
Я пытался добавить минимальное количество снов (через time.Sleep ()), но это резко снизило производительность.
Хотя мой транскодер работает вся система отстает.Я должен изменить приоритет задачи go на низкий или бездействующий, чтобы иметь возможность снова работать.
Как я могу реализовать что-то, что поддерживает отзывчивость системы?
Прямо сейчас я запускаю тысячи go-рутин(цикл над ломтиком указателей).Должен ли я ограничить количество процедур?