Рубрика «optimization»

Про defer в Go до сих пор ходит миф: «он медленный, в горячем коде лучше не использовать». Когда-то это было правдой. До Go 1.13 каждый defer означал аллокацию в куче. Сейчас, в большинстве случаев, он стоит почти ничего. Но «в большинстве» — это не «всегда», и граница проходит по довольно конкретным правилам.

Компилятор Go умеет реализовывать defer тремя способами:

  1. open-coded — никакой runtime-структуры, вызов вставляется прямо в код функции;

  2. stack defer — runtime используется, но запись о defer лежит на стеке;

  3. heap defer — запись аллоцируется в куче.

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

Кратко о себе

 Я разработчик в сфере мобильных игр, занимаюсь в основном программированием геймплея и инструментарием для команд. Люблю Lua, C++, Godot и делать интересные хобби проекты, связанные с геймдевом. Эта статья как раз про один такой проект

Глоссарий

  • Godot - популярный игровой движок на C++ с собственным скриптовым ЯП Физический сервер - программный компонент движка, отвечающий за физические вычисления

  • Коллизия – в физической симуляции процесс пересечения пары объектов

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

Скриншот использования ассетов в Unity

Скриншот использования ассетов в Unity

Тип проекта: Asset Pack

Инструменты: MagicaVoxel,Unity, Photoshop

Всего ассетов: ~530 воксельных моделей

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

У каждого из нас есть старый верный друг. Мой друг — это MacBook Air 2011 года. Тонкий алюминиевый корпус, стильный и красивый дизайн, с отличной клавиатурой с подсветкой, но с приговором от Apple: всего 2 ГБ оперативной памяти, которые невозможно проапгрейдить. Современная macOS превратила его в «кирпич», который задумывался на минуту при каждом клике.

Но я решил, что списывать его на свалку истории рано. Выход нашелся там, где его всегда ищут энтузиасты: в мире открытого ПО.

Linux Mint: Глоток свежего воздуха

Я снес тяжелую, неповоротливую macOS и поставил Linux Mint MATEЧитать полностью »

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

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

Началось все с того, что я здесь на Хабре прочитал статью https://habr.com/ru/articles/1026040/ камрада @sergeivskЧитать полностью »

userver 3.0 — большой релиз фреймворка для IO‑bound‑программ, переход на C++20 - 1

Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса. После большого релиза 🐙 userverЧитать полностью »

Всем привет!

Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio. В этой статье я расскажу, почему вообще появилась ещё одна библиотека для веб-сокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio.

Предыстория

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

Discriminated Unions: Что не так с реализациями объединений в C#? - 1

В жизни каждого C# программиста рано или поздно наступает момент, когда switch по objectЧитать полностью »

Все мы проходили через это: скармливаешь RAG‑системе сложный PDF на 50 страниц, а она в ответ либо галлюцинирует, либо вываливает на LLM простыню нерелевантного текста, съедая ваш бюджет на токены быстрее, чем вы успеваете сказать «GPT-4o». Проблема в том, что классический подход со статическим top_k — это костыль, который либо не додает контекста, либо вызывает у модели информационное «ожирение» (заполняет контекст нерелевантным мусором). Нашему RAG нужно помочь адаптироваться к безжалостной среде разрозненных документов!

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

Кратко

Black-White Array (BWA) — это упорядоченная структура данных с амортизированным временем операций вставки/поиска/удаления O(log N) и Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js