Рубрика «gc»

Привет, меня зовут Илья, я работаю в Avito и хочу позвать Go-разработчиков на митап, который будет проходить в эту субботу, 14-го октября, у нас в офисе при поддержке сообщества Golang Moscow.
В этот раз главная тема митапа — пристальный разбор привычных стандартных средств Go: обсудим нюансы работы с io.Reader/io.Writer, послушаем анализ эволюции Garbage Collector от Go 1.5 до 1.9, узнаем, как можно расширять database/sql на примере работы с ClickHouse, похоливарим про кодогенерацию. Подробности по докладам и ссылка на TimePad — под катом.

Golang Moscow: встреча в Avito - 1

Читать полностью »

Gamecube — устройство файловой системы - 1

Привет! В прошлой теме я рассказывал, как мы с командой производили (и дальше производим) ромхакинг такой игры, как Xenoblade Chronicles на Nintendo Wii. Я бы хотел рассказать о менее простой, но интересной теме – устройство хранения файловой системы у Nintendo GameCube. Так уж вышло, что я полюбил данную консоль и никак не мог упустить шанс рассказать о её технической стороне, хоть и малой. Не будем затягивать, начнём!
Читать полностью »

В этот раз мы решили разнообразить поток технических интервью реальным хардором и подготовили материал на основе доклада Руслана cheremin Черемина (Deutsche Bank) про анализ работы пары Escape Analysis и Scalar Replacement, сделанный им на JPoint 2016 в апреле минувшего года.

Видеозапись доклада перед вами:

А под катом мы выложили полную текстовую расшифровку с отдельными слайдами.
Читать полностью »

Добрый день, господа!
Спешу сообщить, что настают последние дни.
Кажется, мир Java развился до такой степени, что то ли мы теперь можем спокойно использовать Rust вместо Java, то ли Java вместо Rust.
Кровавые подробности ждут вас под катом.
Читать полностью »

Java взаимодействует с операционной системой через методы, помеченные ключевым словом native, при помощи системных библиотек, загружаемых процедурой System.loadLibrary().

Загрузить системную библиотеку очень просто, а вот чтобы ее выгрузить, как оказалось, нужно приложить немало усилий. Как именно выгружаются системные библиотеки, и зачем это нужно я постараюсь рассказать.
Читать полностью »

Язык Go в Twitch используется во многих нагруженных системах. Простота, безопасность, производительность и читабельность делают его хорошим инструментом для решения проблем, с которыми сталкиваются сервисы, например при стриминге видео и обслуживании переписки миллионов пользователей.

Но эта статья — не очередное воспевание Go. Она о том, как наше использование этого языка раздвигает некоторые границы текущей реализации runtime’а и как мы реагируем на достижение этих границ.

Это история о том, как улучшение runtime’а с Go 1.4 по Go 1.6 дало нам 20-кратное уменьшение пауз при работе сборщика мусора, как мы получили ещё 10-кратное уменьшение пауз в Go 1.6 и как, передав наш опыт команде разработчиков, работающей над runtime’ом Go, обеспечили 10-кратное ускорение в Go 1.7 без дополнительных ручных настроек с нашей стороны.
Читать полностью »

Доброго времени суток!

Многие считают, что системный язык и сборщик мусора — не совместимые понятия. В некоторых ситуациях, действительно, сборщик может доставлять некоторые проблемы.

Как Вам, скорее всего, известно — в D сборщик мусора, отчасти, опционален. Но ручное управление памятью это прошлый век.
Поэтому сегодня я покажу как можно реализовать сборку мусора самому через «полуавтоматический» подсчёт ссылок, а так же как при этом минимизировать обращения к встроенному в runtime сборщика мусора на основе сканирования памяти.

Читать полностью »

Выбор и настройка Garbage Collector для Highload системы в Hotspot JVM - 1

Введение

При работе в сфере RTB (Real Time Bidding) одной из ключевых характеристик является время, затраченное на показ рекламы пользователю, зашедшему на сайт. Оно складывается из нескольких этапов, один из которых – аукцион за рекламное место, проводимый SSP (Supply Side Platform) между несколькими DSP (Demand Side Platform) системами. В этом случае критической величиной является время, за которое DSP успеет ответить своим инвентарем и денежной ставкой за данный показ. Как правило, верхняя граница этого времени составляет примерно 100 миллисекунд. С учетом того, что для оптимальной производительности рекламных кампаний требуется десятки тысяч запросов в секунду, выполнение данного требования может стать весьма нетривиальной задачей.
Читать полностью »

В июне исполняется год нашему сообществу .NET программистов SPB .NET Community. Я не буду подводить итоги и рассказывать, что было, так как… не до этого, заняты подготовкой новой встречи, двенадцатой! В четверг, 2 июня у нас приглашенные гости, ведущие докладчики конференции DotNext: гуру .NET Performance Sasha Goldshtein и активный участник .NET User Group Minsk Сергей Щегрикович. Темы, как мы любим: производительность, memory traffic, отладка, CoreCLR, внутренности, расчленёнка…

Win-Win: Спикеры DotNext на встрече SPB .NET Community и наоборот - 1

Читать полностью »

В этой статье рассматривается инкрементальный сборщик мусора (incremental GC), который был представлен в Ruby 2.2. Мы называем этот алгоритм RincGC. RincGC позволяет добиться более короткой паузы (GC pause time) по сравнению с Ruby 2.1.

Об авторе: Коичи Сасада (Koichi Sasada) работает в Heroku вместе с Nobu и Матц'ем над ядром ruby. Он написал YARV, сборщик мусора по поколениям (RgenGC) для Ruby 2.1, а также incremental GC для ruby 2.2 и данную статью.
Читать полностью »