Какая версия Go используется в вашем текущем рабочем проекте?
Anonymous Poll
2%
Go 1.17 или ниже
2%
Go 1.18
2%
Go 1.19
4%
Go 1.20
16%
Go 1.21
56%
Go 1.22
1%
Другая (напишу в комментарии)
17%
Посмотреть результаты
🌳 Разработка бинарного дерева поиска с помощью SIMD и ассемблера Go
Когда вам нужно немного больше производительности, чем Go обеспечивает естественным образом, или доступ к базовым функциям ЦП, недоступным в Go, одним из способов сделать это является использование языка ассемблера.
👉 Читать гайд
Когда вам нужно немного больше производительности, чем Go обеспечивает естественным образом, или доступ к базовым функциям ЦП, недоступным в Go, одним из способов сделать это является использование языка ассемблера.
👉 Читать гайд
clement-jean.github.io
Binary Search Tree with SIMD
Recently, I've been looking at cache friendly algorithm for common data structures like trees, tries, ... One such algorithm kept coming up to mind and that's why I decided to implement it in Go.
🔥4😢4
🛠 Работа с аренами: почти избавляемся от GC
Тимлид в Т-Банке Максим Горозий разбирается в причинах частого торможения программ на языках с GC и делится опытом управления памятью, медитируя над профайлингом, чтобы все работало быстро.
👉 Читать
Тимлид в Т-Банке Максим Горозий разбирается в причинах частого торможения программ на языках с GC и делится опытом управления памятью, медитируя над профайлингом, чтобы все работало быстро.
👉 Читать
👍18🥱4
Выявляйте узкие места производительности в своих приложениях, профилируя их активность и оптимизируя действия на основе результатов.
👉 Читать гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2🔥2
🏃 Самоучитель по Go для начинающих. Часть 14. Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
В этой статье рассмотрим основные методы ввода-вывода из пакета io, изучим механизм буферизации и его применение в Go, а также разберем, как работать с файлами с помощью пакета os.
👉 Читать гайд
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция
11. Обработка ошибок. Паника. Восстановление. Логирование
12. Обобщенное программирование. Дженерики
13. Работа с датой и временем. Пакет time
В этой статье рассмотрим основные методы ввода-вывода из пакета io, изучим механизм буферизации и его применение в Go, а также разберем, как работать с файлами с помощью пакета os.
👉 Читать гайд
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция
11. Обработка ошибок. Паника. Восстановление. Логирование
12. Обобщенное программирование. Дженерики
13. Работа с датой и временем. Пакет time
👏6👍5🤔1💯1
⚒️ Инструменты сборки для Go
Если стандартные инструменты сборки не справляются с поставленной задачей, ловите подборку опенсорсных инструментов сборки, которые стоит рассмотреть, включая Mage и Taskfile.
👉 Читать
Если стандартные инструменты сборки не справляются с поставленной задачей, ловите подборку опенсорсных инструментов сборки, которые стоит рассмотреть, включая Mage и Taskfile.
👉 Читать
🥱8👍5😁2
🤯 International Blue Screen Day
Собрали мини-подборку фото и мемов по мотивам сегодняшних событий.
#назлобудня
Собрали мини-подборку фото и мемов по мотивам сегодняшних событий.
#назлобудня
🥰18😁17👍5❤1
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных»
🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/6ee77144
На вводной части вас ждут:
1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов;
2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ;
3. Практические задания после лекций;
4. Ссылки на дополнительные материалы для самостоятельного изучения.
⚡️ Переходите и начинайте учиться уже сегодня – https://proglib.io/w/6ee77144
🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/6ee77144
На вводной части вас ждут:
1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов;
2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ;
3. Практические задания после лекций;
4. Ссылки на дополнительные материалы для самостоятельного изучения.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
🤔 Как эффективно и быстро обработать огромные объемы информации? Ответом на этот вызов стала концепция MapReduce, разработанная в недрах Google.
MapReduce — это парадигма программирования, созданная для обработки и генерации больших объемов данных с использованием параллельных распределенных алгоритмов. Основная фича проста: сначала данные разбиваются на небольшие части (фаза Map), а затем результаты этих частей агрегируются в финальный результат (фаза Reduce).
📌 Зачем?
🔸 Масштабируемость: MapReduce позволяет распределять задачи на множество узлов, что значительно ускоряет обработку больших данных.
🔸 Производительность: параллельное выполнение задач маппинга и редьюсинга обеспечивает порой очень высокую скорость обработки.
🔸 Устойчивость к ошибкам: встроенные механизмы MapReduce обеспечивают восстановление после сбоев.
🔸 Простота использования: разработчику нужно лишь определить функции Map и Reduce, а остальное берет на себя фреймворк.
Автор на примерах разбирается с реализацией MapReduce на Go, какие оптимизации можно применить для улучшения производительности.
MapReduce — это парадигма программирования, созданная для обработки и генерации больших объемов данных с использованием параллельных распределенных алгоритмов. Основная фича проста: сначала данные разбиваются на небольшие части (фаза Map), а затем результаты этих частей агрегируются в финальный результат (фаза Reduce).
📌 Зачем?
🔸 Масштабируемость: MapReduce позволяет распределять задачи на множество узлов, что значительно ускоряет обработку больших данных.
🔸 Производительность: параллельное выполнение задач маппинга и редьюсинга обеспечивает порой очень высокую скорость обработки.
🔸 Устойчивость к ошибкам: встроенные механизмы MapReduce обеспечивают восстановление после сбоев.
🔸 Простота использования: разработчику нужно лишь определить функции Map и Reduce, а остальное берет на себя фреймворк.
Автор на примерах разбирается с реализацией MapReduce на Go, какие оптимизации можно применить для улучшения производительности.
❤10👍6👏5🔥2🌚2