#memory_management — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #memory_management, aggregated by home.social.
-
[Перевод] Что такое Harness? Полный разбор на примере Claude Code, OpenAI и LangChain
Глубокий разбор того, что на самом деле строят Anthropic, OpenAI, Perplexity и LangChain. Оркестрационный цикл, инструменты, память, управление контекстом — и всё остальное, что превращает stateless LLM в работающего агента. Допустим, вы собрали чатбот. Может, даже прикрутили ReAct-цикл с несколькими инструментами. На демо работает. Но стоит попробовать сделать что-то production-grade — и всё начинает сыпаться: модель забывает, что делала три шага назад, вызовы инструментов падают без ошибок, контекстное окно забивается мусором. Проблема не в модели. Проблема во всём, что её окружает. LangChain это доказал: изменив только инфраструктуру вокруг LLM (та же модель, те же веса), они поднялись с позиции за пределами топ-30 на 5-е место в TerminalBench 2.0. В отдельном исследовательском проекте LLM оптимизировал саму инфраструктуру и достиг 76,4% pass rate, превзойдя системы, спроектированные вручную. У этой инфраструктуры теперь есть название: agent harness (агентный харнесс).
https://habr.com/ru/articles/1023316/
#agent_harness #LLM_агент #оркестрационный_цикл #ReAct_loop #context_management #Claude_Code #LangGraph #memory_management #prompt_engineering #multiagent
-
Память ИИ‑агентов: как агенты запоминают, забывают и учатся
Память ИИ‑агентов: как агенты запоминают, забывают и учатся Всем привет! Продолжаю рассказывать и делиться своим опытом создания и внедрения ИИ-агентов. Сегодня давайте поговорим про память ИИ-агентов. Я поделюсь какие типы памяти использую чаще всего, поговорим про базовый минимум без которого нет смысла пытаться строить ИИ-агентов. Начнём с того как вообще работает контекстное окно и почему его не хватает, потом разберём какие типы памяти бывают, как они хранятся и как подгружаются в контекст.
https://habr.com/ru/articles/1012894/
#openai #claude_code #memory_management #rag #rag_pipeline #память_ии #claude_ai #qdrant #ииагенты #ииассистент
-
Как устроены память и Garbage Collector в CPython: разбор для Python backend interview
В Python памятью управляет не только Garbage Collector. На самом деле основа всего — reference counting , а GC лишь помогает собирать циклические ссылки. В этой статье разберём, как на самом деле устроено управление памятью в CPython : — что находится внутри PyObject — как работает ob_refcnt — почему одного reference counting недостаточно — как GC ищет циклический мусор — какие объекты вообще участвуют в сборке — и как всё это помогает искать memory leak в production Если ты готовишься к senior Python интервью или просто хочешь понимать, как Python работает под капотом , — добро пожаловать под капот CPython.
https://habr.com/ru/articles/1010390/
#python #cpython #garbage_collector #gc #memory_management #python_internals
-
Принципы DOD в C++: Часть 2. AoS, SoA. Мнимая панацея для быстродействия
Приветствую всех, кто хочет делать свой код быстрым и оптимальным. Традиционно, если нам нужно большое количество объектов какого-то класса, мы создаем массив этих объектов. Однако, каким бы простым и очевидным не казался данный подход, он не всегда эффективен. Рассмотрим плюсы и минусы каждого из подходов к размещению большого числа объектов в памяти, их область применения и, конечно же, рассмотрим их на примерах.
-
Менеджер памяти CPython — проектируем с нуля, простым языком
Давайте спроектируем с нуля менеджер памяти CPython — начнём с самой простой и понятной наивной реализации, а затем шаг за шагом будем разбираться, какие изъяны в ней есть, и придумывать как их решать, постепенно усложняя общую модель. Это один из лучших способов понять сложную систему — пройти путь её поэтапного проектирования. Система сложна, осознать её очень непросто, но мы разобьём её на простые шаги, понять которые очень легко. После этого пазл сам собой сложится в голове, и общая картина системы будет для вас такой же простой и очевидной.
-
[Перевод] Выделение памяти в Go
Эта статья посвящена языку программирования Go 1.24 , работающему на Linux на архитектуре ARM . Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.
https://habr.com/ru/companies/timeweb/articles/1000232/
#go #golang #memory_management #memory_allocation #stack #heap #timeweb_статьи_перевод #выделение_памяти #стек #куча
-
[Перевод] Выделение памяти в Go
Эта статья посвящена языку программирования Go 1.24 , работающему на Linux на архитектуре ARM . Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.
https://habr.com/ru/companies/timeweb/articles/1000232/
#go #golang #memory_management #memory_allocation #stack #heap #timeweb_статьи_перевод #выделение_памяти #стек #куча
-
[Перевод] Выделение памяти в Go
Эта статья посвящена языку программирования Go 1.24 , работающему на Linux на архитектуре ARM . Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.
https://habr.com/ru/companies/timeweb/articles/1000232/
#go #golang #memory_management #memory_allocation #stack #heap #timeweb_статьи_перевод #выделение_памяти #стек #куча
-
[Перевод] Выделение памяти в Go
Эта статья посвящена языку программирования Go 1.24 , работающему на Linux на архитектуре ARM . Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.
https://habr.com/ru/companies/timeweb/articles/1000232/
#go #golang #memory_management #memory_allocation #stack #heap #timeweb_статьи_перевод #выделение_памяти #стек #куча
-
Три вечера, три круга ада и один MVP: как я создал анализатор памяти игры с помощью бесплатных чат-моделей
В эпоху ИИ-хайпа многие обещают, что теперь кодить не нужно — достаточно «поговорить» с моделью. Автор решил проверить это на практике: за три вечера, используя только бесплатные версии Claude и Qwen, он создал прототип приложения для мониторинга игровых событий в реальном времени через чтение памяти процесса Royal Quest. Путь оказался тернистым: от неактуальных логов и зашифрованного трафика — к CheatEngine, Wine на macOS, PyInstaller и проблемам с кодировкой. Чат-модели помогли быстро сгенерировать ядро приложения, реализовать экспорт в JSON/TXT и даже простой дашборд, но каждая итерация сопровождалась багами, потерей контекста и переписыванием кода с нуля. Делюсь честным опытом: где ИИ действительно ускорил разработку, а где превратил её в бесконечный цикл «запрос → правка → провал». В финале — практические рекомендации: как структурировать проект для ИИ, сохранять контекст и избегать типичных ловушек. Результат — рабочий MVP, открытый на GitHub, и убедительный вывод: ИИ — мощный соавтор, но пока ещё не замена внимательному разработчику.
https://habr.com/ru/articles/986188/
#AI #Память #Python #Royal_Quest #memory_management #cheat_engine
-
Безопасная работа с итераторами в С++
После публикации предыдущей статьи на данную тему, некоторые читатели не обратили внимания, что данный проект, это не действующий инструмент, готовый для боевого применения в реальных проектах, а только доказательство работоспособости концепции использования плагинов компилятора для дополнительного семантического контроля исходного кода С++ во время компиляции. А в качестве примера реализации подобного плагина я взял концепцию безопасной работы с памятью из языка NewLang с минимальной адаптацией под C++ . То есть основная идея предыдущей статьи — продемонстрировать возможность использования плагина компилятора для дополнительного анализатора исходного текста, а не изучение функциональности реализованной библиотеки для работы с памятью (которая и не может быть в полном объеме портирована на С++ из-за архитектурных различий в этих языках программирования). Тем не мене, большинство читателей все же уловило основную мысль и проявило интерес к возможному дальнейшему развитию подобного подхода к повышению безопасной разработки на С++ без нарушения обратной совместимости со старым кодом. Поэтому, чтобы не смущать читателей отсылкой к неизвестному для них новому языку, я начал адаптировать концепцию безопасной работы с памятью под чистый С++ для решения специфических для С++ проблем. А пока идет доработка плагина и мне очень захотелось поделиться одним очень увлекательным квестом, которой показывает непреодолимые архитертурыне проблемы С++ на пути к безопасному программирования. И поводом для того стали итераторы.
https://habr.com/ru/articles/878156/
#clang #clangtidy #plugin #memory_management #memory_safety #iterator
-
Безопасная разработка на С++ без нарушения обратной совместимости. Библиотека MemSafe и плагин для Clang
Статья в продолжение темы безопасной разработки на С++ с примером работающего кода. Кратко предыдущие тезисы: Стремление С++ стать более "безопасным" языком программирования плохо сочетается с требования к стандарту языка. Ведь любой стандарт должен обеспечивать обратную совместимость со старым легаси кодом, что автоматически сводит на нет любые попытки внедрения какой либо новой лексики на уровне единого стандарта С++. А раз текущее состояние С++ не может гарантировать безопасную разработку на уровне стандартов, то выходит, что: Принятие новых стандартов С++ с изменением лексики для безопасной разработки обязательно нарушат обратную совместимость с существующим легаси кодом. Переписать всю имеющуюся кодовую базу С++ под новую безопасную лексику (если бы такие стандартны были приняты), ничуть не дешевле, чем переписать этот же код на новом модном языке программирования. Возможным выходом из данной ситуации является реализация такого синтаксиса безопасного С++ , который бы позволил удовлетворить оба этих требования. Причем самый лучший вариант, вообще не принимать какие либо новые стандарты С++ для изменения лексики, а попробовать использовать уже существующие принятые ранее.
https://habr.com/ru/articles/874648/
#clang #clangtidy #plugin #memory_management #memory #safety
-
Безопасная разработка на С++ без нарушения обратной совместимости с легаси кодом
Проблема безопасной разработки на С++ возникла не вчера, и она достигла таких размеров, что рекомендации использовать более надежные языки программирования , принимаются на самом высоком уровне. Но даже несмотря на наличие подобных рекомендаций, планы прекратить использовать С++ и перейти любой другой безопасный язык программирования, часто не выдерживают обычных финансовых расчетов. Ведь если отказаться от С++, то что придется делать с миллионами или даже миллиардами строк кода, которые были написаны за несколько предыдущих десятилетий? К сожалению, и сам С++ не особо стремится стать более "безопасным". Точнее, подобное стремление плохо сочетается с требования к стандарту языка, которые принимаются комитетом по стандартизации С++. Ведь любой стандарт должен обеспечивать обратную совместимость со всем старым легаси кодом, что автоматически сводит на нет любые попытки внедрения какой либо новой лексики на уровне единого стандарта С++. И в это ситуации правы те, кто выступает за обязательную поддержку обратной совместимости со старым кодом. Но правы и те, кто считает необходимым добавление новых возможностей для безопасной разработки на С++ хотя бы в новых проектах. Таким образом, возникают, казалось бы , взаимоисключающие и не разрешимые противоречия: Текущее состояние С++ не может гарантировать безопасную разработку на уровне стандартов языка. Принятие новых стандартов С++ с изменением лексики для безопасной разработки обязательно нарушат обратную совместимость с существующим легаси кодом. Переписывать всю имеющуюся кодовую базу С++ под новую безопасную лексику (если бы такие стандартны были приняты), ничуть не дешевле, чем переписать этот же код на новом модном языке программирования. Но ключевым моментом в предыдущем абзаце является фраза "казалось бы".
https://habr.com/ru/articles/872956/
#clang #clangtidy #plugin #memory_management #memory #safety
-
Как понять Unity3d, если ты .NET разработчик
Ловили ли вы себя когда-нибудь на мысли, что, будучи C# .NET разработчиком, вы можете попробовать начать разрабатывать игры на Unity3d? Ведь язык используется тот же. А точно ли тот же? Точно ли код, написанный для .NET, может без проблем быть скопирован для выполнения в Unity3d приложении? Давайте в этом разберемся и поймем, какие дополнительные знания необходимы C# .NET разработчику, чтобы с комфортом разрабатывать игры.
https://habr.com/ru/articles/871342/
#unity3d #unity #c# #performance #performance_optimization #gamedev #gamedevelopment #unity_уроки #unity_туториал #memory_management
-
OSDEV: Разработка аллокатора на С++ часть 2: Слияние блоков за константное время. Юнит тест для аллокатора
Приветствую, уважаемый читатель! В первой части мы реализовали простейший аллокатор с минимальным оверхедом. Конечно же на самом деле все сложнее. Так реализация дефрагментации была наивной и не могла сливать блоки даже когда не было распределенных блоков после нескольких вызовов mem_free. Для того, что бы получить исходную картинку где будет только 2 служебных блока и один свободный нужно было бы вызвать mem_alloc с размером большим чем доступно памяти что бы искусственно запустить дефрагментацию. В этой части мы это исправим и напишем юнит тест для нашего аллокатора что бы убедится что он работает правильно.
https://habr.com/ru/articles/861930/
#распределение_памяти #allocator #memory_allocation #memory_management
-
OSDEV: Разработка аллокатора на С++ часть 1. Неявный список свободных блоков с граничными тегами
Доброго времени суток. При разработке ОС на с++ мы сталкиваемся с рядом трудностей, таких как отсутствие стандартной библиотеки и ABI с++ и прочее в этом духе. При чем перед реализацией PageAllocator и прочих аппаратных механизмов хотелось бы иметь какую то стандартную библиотеку позволяющую делать хоть что то. Об этом и пойдет речь. Далее я расскажу о своем опыте разработки таких алгоритмов для своей ОС и о том, как их тестировать у себя на системе с юнит тестами и прочим прикручивая в итоговую демку проверенный тестами код, и начну я с аллокатора. Речь пойдет о немного переделанном алгоритме Кнута "неявный список блоков с граничными тегами" который описан в конце третьего тома в разделе "Распределение памяти". Его идея предельно проста: Мы берем некоторый отрезок памяти, назовем его кучей и разбиваем его на блоки такого вида:
-
[Перевод] Выделение памяти для DMA в Linux
Это перевод Поста Allocating Memory for DMA in Linux В этом посте мы рассмотрим распределение памяти в Linux с использованием очень больших страниц с тем, чтобы совместно использовать эту память с устройствами PCIe, использующими DMA.