Maks
Интересно как бы ты решал такую задачу. Там конечно вряд ли к языку можно привязываться, но тут вроде есть ребята прошареные, а алгоритма я не видел хорошего)
🔥
А что за задача?
Maks
https://acmp.ru/index.asp?main=task&id_task=76
Maks
Это точно такая же но в другой интерпретации
Maks
Я просто не стал брать из текстовика данные, потому что лень. Но смысла это не меняет
Dmitry
Можно создать структуру с двумя полями start и end, получаем срез из этих структур, сортируем срез по полю start, проходимся по отсортированному срезу и ищем количество пересечений по полю end
Maks
Каждый срез сравнить со всеми через рекурсию?
🔥
Это точно такая же но в другой интерпретации
После работы накатаю что-нибудь)
Dmitry
Каждый срез сравнить со всеми через рекурсию?
не со всем а только до тех пор пока end < start нижестоящих отрезков
Maks
Я думал о чем то таком но не помню почему отказался
Maks
Это оно?
Maks
Если в пыхе разбираешься конечно же)
Maks
Я на го переписал этот алгоритм. Когда я сделал 10 000 записей {start, end}, мой алгоритм отработал в 90 раз быстрее)
Maks
Так это похоже на твой алгоритм? Я просто не до конца понял реализацию, только примерно)
Maks
В моем случае оба варианта были на го
Maks
Сделал млуьтиплер для тестов что бы можно было производительность сравнивать если вдруг другой алгоритм буду использовать)
Maks
миллион записей за 3 секунды. А если больше там может упасть по out of memory)
Maks
Я понял, у меня падало в момент подготовки
Maks
ПОтому что я изначально место не выделял под слайс новый
Maks
точнее капасити не задавал
Maks
из за этого он каждый раз его на 2 умножает же
Maks
и вот при подготовке теста падал
Maks
а дальше там всё по ссылкам
Maks
Maks
))))
Maks
10 миллионов за 34 секунд прошел а 20 миллионов 76 секунд)
Maks
Я сделал это только для того что бы можно было потом сравнить с другим алгоритмом если он будет
Maks
точнее с одним я уже сравнил но он оказался не эффективный
Соня
Golang Developer Куда: Компания Mercuryo — международный финансовый сервис по использованию криптовалют: покупка, продажа, оплата личных вещей Наша миссия: Вывести на новый уровень взаимодействие с финансами и цифровыми активами, используя блокчейн Обязанности: - разработка микросервисов на языке GoLang - оптимизация производительности, поиск узких мест - написание юнит-тестов - написание документации - работа в команде, тесное взаимодействие с QA и продуктовой командами Требуемые навыки и опыт: Опыт работы с Backend · Middle · Git · SQL · MySQL (InnoDB, MyISAM) · PostgresSQL · NoSQL · PostgreSQL · Memcached · Redis · Docker · RabbitMQ · Kafka · Restful api · Docker Круто, если Вы знакомы с: - Tdd, принципы solid, hexagon architecture - Есть опыт работы с криптовалютами (BTC, ETH, etc) - Опыт работы в банковской сфере - Опыт работы с Amazon AWS Местоположение и тип занятости: Удалённое сотрудничество или офис в Москве с панорамным видом на город Тип занятости: График 5/2 + праздничные дни в соответствии с трудовым календарем РФ + 6 доп.дней к отпуску Условия: - официальное трудоустройство - "белая" конкуретноспособная оплата труда: от 180 000 до 300 000 ₽ - бонусы и пересмотр зарплаты соответственно Вашим успехам - широкий пакет бенефитов (английский, медицинская страховка, выбор различных привилегий и бонусов по желанию и необходимости) Контакты: @theowle
Maks
Без поинтеров быстрее)
Maks
Мне сказали почему. Там типо GC на них агрится
Maks
А данные и так по поинтеру передаются
Maks
Все срезы
Maks
ну я просто не знал как передаются строки)
Maks
Но с учетом того что это срез а срез вроде как ссылкой
Maks
то наверное это очевидно
🔥
А вот это я забыл)
Вот что значит делать долгострой на си) Где сплошь и рядом поинтеры) Все позабудешь)
Suleiman
Можете объяснить насчет рун в го это типа похожее на char ?
🔥
@maks_vesnin Вот по быстрому накатал после работы, посмотри https://gist.github.com/goriyasno/ad21fa8d485570d3d792a1854c41591f
Vladyslav
Вот там выше кидали предложение о работе, возник вопрос. На сколько реально найти что то на го джуну? Я просто не один раз слышал, что джунов не берут, а ищут более опытных. Регион особо не важен, просто интересна ситуация в целом
🔥
@maks_vesnin Вот по быстрому накатал после работы, посмотри https://gist.github.com/goriyasno/ad21fa8d485570d3d792a1854c41591f
Вот такой результат дало с 20кк записей 00:00 24:00 Max visits: 20000000 Binomial took: 48.3633685s
Maks
Вот такой результат дало с 20кк записей 00:00 24:00 Max visits: 20000000 Binomial took: 48.3633685s
А че по железу? У меня ноут с ай5 который на работе выдали)
Maks
Я позже посмотрю)
Vladyslav
Реально. Или ты думаешь что мидлов аисты приносят?😂
😂 я просто слышал, что берут мидлов инженеров с опытом работы с другими языками и просто натаскивают на го
Dmitry
Я например новичек в Go, две недели назад взялся за его изучение. Самостоятельно прошел курс по Golang и уже готов писать на нем микросервисы☺️
Dmitry
А так я на Java пишу
Dmitry
Мне по началу Go показался похожим на Python и Паскаль, но потом я понял, что он очень на Си похож... только со сборкой мусора.
Suleiman
А что насчет node? Есть ли вакансии backend? или его юзают лишь во фронтенде?
Dmitry
А что насчет node? Есть ли вакансии backend? или его юзают лишь во фронтенде?
Node - как мне кажется это была мимолетная мода как Ruby on Rails
Dmitry
в бэке я имею ввиду
Vladyslav
Я на ноде + тс писал ботов для трейда вещей кс го, но тайпскрипт показался костыльным вариантом с которым все сводится в написание декораторов для нпм пакетов😅 Я там юзал библиотеку коа и меня зацепила идея легковесности, где не тащишь целый фреймворк ради нескольких пакетов, но как сказал ранее с тайпскрипт показался костыльным. Потом где то услышал о го, умильнулся с Гофера, решил потыкать его, написал какие то простенькие штуки и мне понравилось. Вот пишу сейчас пишу бэк для мвп проекта на нем)
Vladyslav
А что насчет node? Есть ли вакансии backend? или его юзают лишь во фронтенде?
Он не плох как бэкэнд фо фронтэнд Когда нужно брать данные с какой то апишки в виде того же джейсона и подготавливать его клиенту, ну и наоборот. А насчёт кол-ва вакансий хз
Dmitry
Щас он тоже идет что ли на спад?
В бэке да. Вот например в Яндексе свалили с node на java https://habr.com/ru/company/yandex/blog/566700/
Suleiman
Слышали о языке crystal?
Vladyslav
Я слышал что он ещё хорош в микросервисах.
Наверно только если как прослойка для передачи данных с места А в место Б В общем там где блокирующих операций не будет
Suleiman
А что делать если нет год опыта?
Katataolu
Всем привет ! Хотел бы задать вопрос может кто-то знает
Katataolu
Хотел бы узнать у тех кто знает У меня есть такой код (это все 1 файл main.go) в нем есть переменная handle в которую я помещаю разные функции Но я их передаю используя структуру и через точку обращаюсь к нужной функции мой вопрос такой: почему нельзя просто без использования структур присваивать функцию а переменную handle ? Понимаю что вопрос может оказаться глупым но я гуглил и ничего не нашел толком а сам не понимаю Заранее спасибо
Katataolu
Maks
@maks_vesnin Вот по быстрому накатал после работы, посмотри https://gist.github.com/goriyasno/ad21fa8d485570d3d792a1854c41591f
да, я о таком думал. Но на коротком объеме данных мой алгоритм мне кажется быстрее. А если добавить например данные не за сутки а за месяц, где начало может быть например вначале месяца а конце вконце, то такой алгоритм будет много интов алоцировать.
Maks
Ага, вот я посмотрел. Чем дольше стоят машины, тем медленнее работает алгоритм. И это сильно влияет на скорость
Maks
Так же с увеличением отчетного периода алгоритм будет затормаживаться
Vladyslav
Понял, спасибо
Alexey
Всем привет, такой вопрос столкнулся с тем что нужно затащить в проект зависимость которая использует CGO, соотв. собирать проект надо с CGO_ENABLED=1. Меня смущает что с собранным CGО приложение начинать просить больше памяти. Именно просить (речь про VIRT в выводе top). Глубоко через pprof не копал. Насколько вообще использование CGO негативно влияет на производительность или там нет больших накладных расходов?
Maks
@maks_vesnin Вот по быстрому накатал после работы, посмотри https://gist.github.com/goriyasno/ad21fa8d485570d3d792a1854c41591f
С двумя массивами и безопасности заполнения всего промежутка - эффективнее)