#ручное_управление_памятью — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #ручное_управление_памятью, aggregated by home.social.
-
Как управлять памятью в C#: StructLayout
Привет, Хабр! Сегодня рассмотрим тему, которая обычно ассоциируется с C или Rust, но никак не с C#. А именно — ручное управление памятью , байтовые смещения , бинарная сериализация и прочая низкоуровневые вещи. Зачем? Допустим, в одном из проектов потребовалось прочитать старый бинарный лог от С-подобной прошивки. Формат документации был: offset 0 — 1 byte: Type; offset 1 — 2 bytes: ID; offset 3 — 4 bytes: Timestamp; и т.д. Разбирать всё это вручную с BinaryReader? Нет, спасибо. Можно воспользоваться StructLayout, FieldOffset, MemoryMappedFile, Unsafe.As<T>() и Span<byte>.
https://habr.com/ru/companies/otus/articles/897264/
#С# #управление_памятью #ручное_управление_памятью #байтовые_смещения #бинарная_сериализация
-
Как управлять памятью в C#: StructLayout
Привет, Хабр! Сегодня рассмотрим тему, которая обычно ассоциируется с C или Rust, но никак не с C#. А именно — ручное управление памятью , байтовые смещения , бинарная сериализация и прочая низкоуровневые вещи. Зачем? Допустим, в одном из проектов потребовалось прочитать старый бинарный лог от С-подобной прошивки. Формат документации был: offset 0 — 1 byte: Type; offset 1 — 2 bytes: ID; offset 3 — 4 bytes: Timestamp; и т.д. Разбирать всё это вручную с BinaryReader? Нет, спасибо. Можно воспользоваться StructLayout, FieldOffset, MemoryMappedFile, Unsafe.As<T>() и Span<byte>.
https://habr.com/ru/companies/otus/articles/897264/
#С# #управление_памятью #ручное_управление_памятью #байтовые_смещения #бинарная_сериализация
-
Как управлять памятью в C#: StructLayout
Привет, Хабр! Сегодня рассмотрим тему, которая обычно ассоциируется с C или Rust, но никак не с C#. А именно — ручное управление памятью , байтовые смещения , бинарная сериализация и прочая низкоуровневые вещи. Зачем? Допустим, в одном из проектов потребовалось прочитать старый бинарный лог от С-подобной прошивки. Формат документации был: offset 0 — 1 byte: Type; offset 1 — 2 bytes: ID; offset 3 — 4 bytes: Timestamp; и т.д. Разбирать всё это вручную с BinaryReader? Нет, спасибо. Можно воспользоваться StructLayout, FieldOffset, MemoryMappedFile, Unsafe.As<T>() и Span<byte>.
https://habr.com/ru/companies/otus/articles/897264/
#С# #управление_памятью #ручное_управление_памятью #байтовые_смещения #бинарная_сериализация
-
Как управлять памятью в C#: StructLayout
Привет, Хабр! Сегодня рассмотрим тему, которая обычно ассоциируется с C или Rust, но никак не с C#. А именно — ручное управление памятью , байтовые смещения , бинарная сериализация и прочая низкоуровневые вещи. Зачем? Допустим, в одном из проектов потребовалось прочитать старый бинарный лог от С-подобной прошивки. Формат документации был: offset 0 — 1 byte: Type; offset 1 — 2 bytes: ID; offset 3 — 4 bytes: Timestamp; и т.д. Разбирать всё это вручную с BinaryReader? Нет, спасибо. Можно воспользоваться StructLayout, FieldOffset, MemoryMappedFile, Unsafe.As<T>() и Span<byte>.
https://habr.com/ru/companies/otus/articles/897264/
#С# #управление_памятью #ручное_управление_памятью #байтовые_смещения #бинарная_сериализация
-
Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода
В этой статье мы рассмотрим, как статический анализатор PVS-Studio воодушевляет заняться рефакторингом кода. Ведь чем короче, проще и понятнее код, тем меньше в нём ошибок.
https://habr.com/ru/companies/pvs-studio/articles/812795/
#PVSStudio #статический_анализ_кода #статический_анализатор_кода #SAST #qdEngine #Си++ #C++ #баги_в_играх #баги #ошибки_в_коде #программирование #рефакторинг #ручное_управление_памятью
-
Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода
В этой статье мы рассмотрим, как статический анализатор PVS-Studio воодушевляет заняться рефакторингом кода. Ведь чем короче, проще и понятнее код, тем меньше в нём ошибок.
https://habr.com/ru/companies/pvs-studio/articles/812795/
#PVSStudio #статический_анализ_кода #статический_анализатор_кода #SAST #qdEngine #Си++ #C++ #баги_в_играх #баги #ошибки_в_коде #программирование #рефакторинг #ручное_управление_памятью
-
Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода
В этой статье мы рассмотрим, как статический анализатор PVS-Studio воодушевляет заняться рефакторингом кода. Ведь чем короче, проще и понятнее код, тем меньше в нём ошибок.
https://habr.com/ru/companies/pvs-studio/articles/812795/
#PVSStudio #статический_анализ_кода #статический_анализатор_кода #SAST #qdEngine #Си++ #C++ #баги_в_играх #баги #ошибки_в_коде #программирование #рефакторинг #ручное_управление_памятью
-
Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода
В этой статье мы рассмотрим, как статический анализатор PVS-Studio воодушевляет заняться рефакторингом кода. Ведь чем короче, проще и понятнее код, тем меньше в нём ошибок.
https://habr.com/ru/companies/pvs-studio/articles/812795/
#PVSStudio #статический_анализ_кода #статический_анализатор_кода #SAST #qdEngine #Си++ #C++ #баги_в_играх #баги #ошибки_в_коде #программирование #рефакторинг #ручное_управление_памятью