Вопросы по теме 'memory-alignment'
Безопасный и эффективный способ доступа к невыровненным данным в сетевом пакете из C
Пишу программу на C для Linux на процессоре ARM9. Программа предназначена для доступа к сетевым пакетам, которые содержат последовательность тегированных данных, таких как:...
1018 просмотров
schedule
10.06.2022
Выравнивание членов структуры в Visual C++ 2008
Visual C++ позволяет выбрать элементы структуры, выровненные на странице свойств проекта. Проблема в том, что эта конфигурация используется для всех структур в проекте.
Есть ли способ (я думаю, специфичный для VC++) установить выравнивание...
3974 просмотров
schedule
16.04.2023
Что такое выровненное распределение памяти?
Я также хочу знать, делает ли это glibc malloc ().
18086 просмотров
schedule
16.04.2023
проблемы выравнивания памяти с объединением
Есть ли гарантия, что память для этого объекта будет правильно выровнена, если мы создадим объект этого типа в стеке?
union my_union
{
int value;
char bytes[4];
};
Если мы создадим char bytes[4] в стеке, а затем попытаемся привести его к...
3530 просмотров
schedule
18.03.2023
Ссылка на статический объект — ловушка выравнивания срабатывает в процессе ARM
У меня есть класс:
class A {
public:
static A& instance();
...
void setValue(int val){ _value = val; }
private:
int _value;
}
A& A::instance(){
static A _Instance;
return _Instance;
}
Я запускаю это на процессоре...
1789 просмотров
schedule
08.10.2022
Выравнивание массивов кучи в C и C++ для облегчения векторизации компилятора (GCC)
В настоящее время я готовлю класс шаблона контейнера-оболочки для std::vector , который автоматически создает multi-resolution pyramid элементов в своем std::vector .
Ключевой вопрос сейчас заключается в том, что я хочу, чтобы создание пирамиды...
1346 просмотров
schedule
04.07.2022
Выравнивание 16-байтовой памяти с использованием инструкций SSE
я пытаюсь избавиться от невыровненных загрузок и хранилищ для инструкций SSE для моего приложения, заменив
_mm_loadu_ps()
by
_mm_load_ps()
и выделение памяти с помощью:
float *ptr = (float *) _mm_malloc(h*w*sizeof(float),16)...
3380 просмотров
schedule
05.10.2022
Самый эффективный способ чтения UInt32 с любого адреса памяти?
Каким будет наиболее эффективный способ прочитать значение UInt32 из произвольного адреса памяти в С++? (Предполагая архитектуру Windows x86 или Windows x64.)
Например, рассмотрите возможность наличия указателя байта, который указывает где-то в...
2108 просмотров
schedule
27.10.2022
Это ошибка GCC при использовании опции -falign-loops?
Я играл с этой опцией, чтобы оптимизировать цикл for в нашей встроенной архитектуре ( здесь ). Однако я заметил, что когда для выравнивания требуется добавить более одной инструкции nop , компилятор генерирует одну nop , за которой следует столько...
638 просмотров
schedule
08.06.2022
Структура C (++) принудительно добавляет дополнительное дополнение
Я видел бесчисленное количество вопросов в форме «Мне не нравится дополнение, как его отключить», но еще не нашел ничего о том, чтобы заставить компилятор предоставить дополнительное дополнение.
Конкретный случай, который у меня есть, выглядит как...
6737 просмотров
schedule
29.06.2022
sizeof дает неожиданный результат для моей структуры
В моем коде есть такая структура:
struct BlockDescriptor
{
struct BlockDescriptor * pNext;
bool _isFree;
};
и я склонен полагать, что его размер равен 4 + 1 = 5 (4 для указателя и 1 для bool ), но по какой-то причине sizeof(struct...
145 просмотров
schedule
05.04.2022
Как установить правильное выравнивание для массива структур OpenCL?
У меня есть следующая структура:
C++:
struct ss{
cl_float3 pos;
cl_float value;
cl_bool moved;
cl_bool nextMoved;
cl_int movePriority;
cl_int nextMovePriority;
cl_float value2;
cl_float value3;
cl_int...
3414 просмотров
schedule
05.02.2023
pragma упаковать контейнеры stl
Когда я объявляю такую структуру:
#pragma pack(1)
structure MyStruct{
uint32_t first;
uint8_t second;
};
#pragma pack()
Я, очевидно, хочу, чтобы это заняло 5 байтов памяти. Как тогда поведет себя такой вектор:...
1366 просмотров
schedule
13.10.2022
snprintf не сохраняет последний символ в буфере?
Я написал простую небольшую программу для чтения файла в следующем формате, используя snprintf,
skip first 15 chars , next 9 chars are sequence number, next 2 char is message and so on.
Меня интересует порядковый номер и сообщение, т.е. от...
918 просмотров
schedule
14.03.2022
Как я могу переносимо реализовать выровненное хранилище стека в С++ 03?
В коде C++03, как мне переносимо реализовать буфер unsigned char[sizeof(T)] , который имеет тот же размер и выравнивание, что и у заданного типа T ?
Например:
template<class T>
void test()
{
unsigned char buffer[sizeof(T)]; //...
612 просмотров
schedule
02.11.2022
Как узнать, по какому смещению Delphi выравнивает мои поля записи
Delphi может выравнивать записи в границах слов, двойных и четверных слов, в зависимости от настройки {$A} и версии Delphi.
Если мне нужно выполнить (плохой) код:
ofSize = $00; <<-- hardcoded will break if I unpack the record....
590 просмотров
schedule
16.09.2022
Memcpy или присвоение структуры?
У меня есть следующий код, и я не уверен, следует ли использовать выравнивание структуры или memcpy для копирования структуры A в пользовательский массив символов/байтов «стека».
Есть ли что-то выгодное/недостаточное в следующих двух вариантах кода...
879 просмотров
schedule
05.02.2024
Непрерывные данные для класса с собственной матрицей?
Являются ли члены этого простого класса непрерывными в памяти?
class A{
A(){ /* somecode */}
~A();
Eigen::Matrix<5,1,double> a;
Eigen::Matrix<9,1,double> b;
};
std::vector<A> vec(10);
char * p =...
153 просмотров
schedule
22.05.2023
С++ неправильные значения с пакетом прагмы
header1.h
#pragma pack(4)
header2.h
#include <iostream>
struct my_struct
{
unsigned int a;
double b;
};
__forceinline void show_h(my_struct* my_struct_ptr)
{
std::cout << sizeof(my_struct) << '\t' <<...
212 просмотров
schedule
08.08.2022
Проблема выравнивания PyTables dtype
Рассмотрим следующий код:
import os
import numpy as np
import tables as tb
# Pass the field-names and their respective datatypes as
# a description to the table
dt = np.dtype([('doc_id', 'u4'), ('word', 'u4'),
('tfidf', 'f4')], align=True)...
148 просмотров
schedule
27.12.2022