memory-alignment

Propósito de la alineación de memoria

Es cierto que no lo entiendo. Digamos que tienes una memoria con una palabra de memoria de longitud de 1 byte. ¿Por qué no pu ... cceso de memoria única en una dirección no alineada(es decir, no divisible por 4), como es el caso con direcciones alineadas?

Ejemplos convincentes de asignadores C++ personalizados?

¿Cuáles son algunas razones realmente buenas para deshacerse de std::allocator en favor de una solución personalizada? ¿Ha e ... cha necesidad. Me preguntaba si alguien aquí podría proporcionar algunos ejemplos convincentes para justificar su existencia.

Alineación de memoria en estructuras C

Estoy trabajando en la máquina de 32 bits, así que supongo que la alineación de la memoria debe ser de 4 bytes. Digamos que t ... año real es de 10 bytes, alineado es de 12, y esta vez sizeof(myStruct) == 12. Puede alguien explicar cuál es la diferencia?

¿Es siempre el caso que sizeof(T)>= alignof (T) para todos los tipos de objetos T?

Para cualquier tipo de objeto T ¿es siempre el caso que sizeof(T) es al menos tan grande como alignof(T)? Intuitivamente así ... s en mi probando. Por ejemplo: struct alignas(16) small16 { char c; }; Tiene tanto un tamaño como una alineación de 16.

Alineación de memoria: ¿cómo usar alignof / alignas?

Ahora mismo trabajo con memoria compartida. No puedo entender alignof y alignas. Cppreference no está claro: alignof devue ... lchado ? Stack overflow / las entradas de blogs tampoco están claras. Puede alguien explicar claramente alignof y alignas ?

Making std:: vector asignar memoria alineada

¿Es posible hacer que std::vector de estructuras personalizadas asignen memoria alineada para su posterior procesamiento con instrucciones SIMD? Si es posible hacer con Allocator, ¿alguien tiene un asignador que podría compartir?

¿Los miembros de clase/estructura siempre se crean en memoria en el orden en que fueron declarados?

Esta es una pregunta que fue provocada por La respuesta de Rob Walker aquí. Supongamos que declaro una clase / estructura as ... ++, pero también me interesaría escuchar la respuesta de C) Temas relacionados ¿Por qué GCC no optimiza las estructuras?

Reordenamiento de estructuras por compilador [duplicar]

Esta pregunta ya tiene una respuesta aquí: ¿Por qué los compiladores de C no pueden reorganizar los miem ... tándar) reordenar la estructura? No veo ninguna manera de que puedas dispararte en el pie si la estructura fuera reordenada.

Consulta la alineación de una variable específica

C++11 introdujo el alignas especificador para especificar la alineación de una variable, y el alignof operator para consultar ... que la variable específica array está alineada en un límite de 16 bytes. Hay algo en el estándar para realizar una consulta?

Atomicidad en C++: Mito o Realidad

He estado leyendo un artículo sobre Programación sin bloqueo en MSDN. Dice : En todos los procesadores modernos, puede ... la memoria ? ¿Las asignaciones a las variables Number2 y Value seguirán siendo atómicas? ¿Puede alguien por favor explicar?

Por qué el tamaño de la clase aumenta cuando int64 t cambia a int32 t

En mi primer ejemplo tengo dos campos de bits usando int64_t. Cuando compilo y obtengo el tamaño de la clase obtengo 8. cla ... int main() { std::cout << sizeof(Test); // 16 } Esto sucede tanto en GCC 5.3.0 como en MSVC 2015. ¿Pero por qué?

el mejor método multiplataforma para obtener memoria alineada

Aquí está el código que normalmente uso para alinear la memoria con Visual Studio y GCC inline void* aligned_malloc(size_t s ... propia función _mm_free, aunque en algunas implementaciones puede pasar punteros desde _mm_malloc al estándar free / delete.

¿Un tipo phantom tiene la misma alineación que el original?

Considere la siguiente estructura que contiene algunos valores de entorno: struct environment_values { uint16_t humidity; ... tengo idea de cómo se llaman esos valores etiquetados en C++. "Fuertemente tipeado typedefs"? He tomado el nombre de Haskell.

¿Qué dice el estándar sobre el acceso a memoria no alineada?

He buscado a través del estándar sobre el acceso no alineado, pero no encontré nada (tal vez fui inadvertido). Es un comport ... ceso no alineado, me refiero por ejemplo: alignas(int) char buffer[sizeof(int)+1]; int &x = *new(buffer+1) int; x = 42;