Golang – это язык программирования, разработанный в Google командой Роберта Гриземера, Роба Пайка и Кена Томпсона, выделяющийся лаконичным синтаксисом и простой изучения. При этом данный язык программирования обеспечивает высокую производительность за счет компиляции, строгой типизации, встроенной поддержке параллелизма и сборке мусора. По мимо вышеперечисленного, в Go представлен ряд полезных возможностей для оптимизации. Ключевой особенностью является встроенная поддержка параллелизма посредством легковесных потоков- горутин, с помощью которых можно эффективно использовать ресурсы многоядерных процессоров. Горутины используются при процессе параллельности, который позволяет выполнять несколько задач одновременно. Горутины- это легковесные потоки, управляемые средой выполнения Go. Для создания горутины необходимо использовать ключевое слово (“go”) перед вызовом функции (“go funcName()”). Правильное использование горутин позволяет горутинам безопасно взаимодействовать и устраняет условия гонки. Когда горутина запускается, используется то же адресное пространство, что и другие горутины, что упрощает их взаимодействие. Каналы – это типизированный поток, использующийся для основной способ обмена данными между горутинами. Канал создается с помощью ключевого слова (“chan”). Для отправки и получения данных через канал используется оператор стрелки (“<-“). Для того чтобы оценить эффективность оптимизации на Go, нужно провести необходимые тесты. Для примера будет использован код, выполняющий функцию суммирования числа 1 от N. ![]() Изображение 1. Последовательный код
![]() Изображение 2. Код с использованием горутин и каналов Таблица 1. Сравнение последовательного кода и кода с использованием горутин В ходе исследования было выявлено, что применение оптимизации значительно влияет на код. Код, содержащий в себе оптимизацию имеет повышенную гибкость, улучшенную производительность и улучшенную гибкость.
Список используемой литературы
https://appmaster.io/ru/blog/optimizatsiia-proizvoditel-nosti-golang
https://purpleschool.ru/knowledge-base/article/project-optimization
|
Список литературы
- Ляхов Илья Александрович, студент
- (e-mail: nobaninvoker@gmail.com)
- Финансовый университет при Правительстве РФ
- г. Краснодар, Россия
- ВЛИЯНИЕ ОПТИМИЗАЦИЙ НА ПРОГРАММЫ НА GO
- Аннотация. В данной статье рассматривается изменения кода после оптимизации, представленной в библиотеке языка Go. Основное внимание уделяется сравнению производительности кода до и после внедрения оптимизации, что позволяет на примере увидеть разницу между последовательным кодом и кодом c горутинами
- Ключевые слова: оптимизация, Go, многозадачность, горутины, синхронизация, каналы, алгоритмы, производительность, эффективность, масштабируемость, гибкость, тестирование, производительность системы, улучшение, программирование
- Golang – это язык программирования, разработанный в Google командой Роберта Гриземера, Роба Пайка и Кена Томпсона, выделяющийся лаконичным синтаксисом и простой изучения. При этом данный язык программирования обеспечивает высокую производительность за счет компиляции, строгой типизации, встроенной поддержке параллелизма и сборке мусора.
- По мимо вышеперечисленного, в Go представлен ряд полезных возможностей для оптимизации. Ключевой особенностью является встроенная поддержка параллелизма посредством легковесных потоков- горутин, с помощью которых можно эффективно использовать ресурсы многоядерных процессоров. Горутины используются при процессе параллельности, который позволяет выполнять несколько задач одновременно.
- Горутины- это легковесные потоки, управляемые средой выполнения Go. Для создания горутины необходимо использовать ключевое слово (“go”) перед вызовом функции (“go funcName()”). Правильное использование горутин позволяет горутинам безопасно взаимодействовать и устраняет условия гонки. Когда горутина запускается, используется то же адресное пространство, что и другие горутины, что упрощает их взаимодействие.
- Каналы – это типизированный поток, использующийся для основной способ обмена данными между горутинами. Канал создается с помощью ключевого слова (“chan”). Для отправки и получения данных через канал используется оператор стрелки (“<-“).
- Для того чтобы оценить эффективность оптимизации на Go, нужно провести необходимые тесты.
- Для примера будет использован код, выполняющий функцию суммирования числа 1 от N.
- Изображение 1. Последовательный код
- Изображение 2. Код с использованием горутин и каналов
- Таблица 1. Сравнение последовательного кода и кода с использованием горутин
- В ходе исследования было выявлено, что применение оптимизации значительно влияет на код. Код, содержащий в себе оптимизацию имеет повышенную гибкость, улучшенную производительность и улучшенную гибкость.
- Список используемой литературы
- Оптимизация производительности
- Goroutines
- Гольцман А.А Оптимизация проектов на Go
- Denver 83 Горутины: что это и как работают




