Найти в Дзене

StructPadding: обнуление паддингов в структурах .NET

StructPadding: обнуление паддингов в структурах .NET Автор представил библиотеку для автоматического обнуления байтов паддинга в структурах .NET. Это решает проблему недетерминированного поведения при двоичном сравнении и хешировании структур, когда в паддингах остаётся мусор из памяти. ⚡️ Библиотека использует рефлексию для определения оффсетов паддингов и генерирует динамические методы через IL для их обнуления в рантайме 🟢 Особенно полезна при работе с массивами структур: позволяет корректно вычислять хеши для быстрого определения изменений данных без лишних операций 👉 Практический кейс — оптимизация в играх, где нужно каждый кадр проверять изменения состояния мира, или при записи в файлы только реально изменившихся данных ⚡️ Решает проблему недетерминированного хеширования структур с паддингами при интеропе с C++ библиотеками или использовании SkipLocalsInit 🟢 Код полностью безопасный: не использует около-UB хаки, только официальные средства рефлексии и генерации IL https

StructPadding: обнуление паддингов в структурах .NET

Автор представил библиотеку для автоматического обнуления байтов паддинга в структурах .NET. Это решает проблему недетерминированного поведения при двоичном сравнении и хешировании структур, когда в паддингах остаётся мусор из памяти.

⚡️ Библиотека использует рефлексию для определения оффсетов паддингов и генерирует динамические методы через IL для их обнуления в рантайме

🟢 Особенно полезна при работе с массивами структур: позволяет корректно вычислять хеши для быстрого определения изменений данных без лишних операций

👉 Практический кейс — оптимизация в играх, где нужно каждый кадр проверять изменения состояния мира, или при записи в файлы только реально изменившихся данных

⚡️ Решает проблему недетерминированного хеширования структур с паддингами при интеропе с C++ библиотеками или использовании SkipLocalsInit

🟢 Код полностью безопасный: не использует около-UB хаки, только официальные средства рефлексии и генерации IL

https://habr.com/ru/articles/968650/

a State of .NET | Подписаться