memory-alignment

Cel wyrównania pamięci

Nie rozumiem. Powiedzmy, że masz pamięć ze słowem pamięci o długości 1 bajtu. Dlaczego nie można uzyskać dostępu do zmiennej ... ostępie do pamięci na niepodpisanym adresie (tzn. nie podzielnym przez 4), Jak to ma miejsce w przypadku wyrównanych adresów?

Przekonujące przykłady niestandardowych alokatorów C++?

Jakie są naprawdę dobre powody, aby porzucić std::allocator Na Rzecz niestandardowego rozwiązania? Czy natknąłeś się na jakie ... e potrzebowałem. Zastanawiałem się, czy ktoś z SO mógłby podać kilka przekonujących przykładów uzasadniających ich istnienie.

Wyrównywanie do linii pamięci podręcznej i znajomość rozmiaru linii pamięci podręcznej

Aby zapobiec fałszywemu współdzieleniu, chcę wyrównać każdy element tablicy do linii bufora. Więc najpierw muszę znać rozmiar ... bytes 64-127 element[2] occupies bytes 128-191 I tak dalej, zakładając oczywiście, że 0-63 jest wyrównane do linii bufora.

Jaki jest zalecany sposób wyrównywania pamięci w C++11

Pracuję nad implementacją bufora pierścieniowego pojedynczego producenta.Mam dwa wymagania: Wyrównaj pojedynczą instancję p ... rsji 2.16. To sprawia, że jest to dość bezużyteczne dla mnie, ponieważ nie mogę wymagać tak najnowszej wersji eglibc / glibc.

Wyrównanie pamięci w strukturach C

Pracuję na 32-bitowej maszynie, więc przypuszczam, że wyrównanie pamięci powinno wynosić 4 bajty. Powiedzmy, że mam struct: ... ty rozmiar to 10 bajtów, wyrównany to 12, i tym razem sizeof(myStruct) == 12. Czy ktoś może wyjaśnić na czym polega różnica?

W jaki sposób dane wektora są wyrównane?

Jeśli chcę przetwarzać dane w {[0] } z SSE, potrzebuję wyrównania 16 bajtów. Jak mogę to osiągnąć? Czy muszę pisać własny alokator? A może domyślny alokator jest już wyrównany do granic 16 bajtów?

Pytania dotyczące alokatora stosu Hinnanta

Używałem alokatora stosu Howarda Hinnanta i działa jak urok, ale niektóre szczegóły implementacji są dla mnie trochę niejas ... truktora). Czy tak można napisać C++11 / align = "left" / jakie inne zmiany są konieczne, aby obecny kod C++11 był zgodny?

Wyrównanie pamięci: Jak używać alignof / alignas?

Pracuję teraz z pamięcią współdzieloną. Nie rozumiem alignof i alignas. Cppreference jest niejasne: alignof zwraca "alignme ... ? wyściełany rozmiar ? Stack overflow / wpisy na blogach też są niejasne. Czy ktoś może wyjaśnić jasno alignof i alignas?

Atomiczność w C++: mit czy rzeczywistość

Czytałem artykuł o programowaniu bez blokady w MSDN. Pisze: Na wszystkich nowoczesnych procesorach, można Załóżmy, że ... akieś znaczenie w wyrównaniu pamięci ? Czy przypisania zmiennych Number2 i Value będą nadal atomowe? Czy ktoś może wyjaśnić?

Jak zorganizować członków w strukturze, aby zmarnować jak najmniej miejsca na wyrównanie?

[nie duplikat struktura wyściółki i opakowania . To pytanie dotyczy tego, jak i kiedy występuje padding. Ten jest o tym, jak ... ardziej wieloplatformowego sposobu, podobnego do tego, co jest opisane w propozycji P1112 dla nadchodzącego standardu C++20.

Jak przydzielać i zwalniać pamięć wyrównaną w C

Jak przydzielić pamięć, która jest wyrównana do określonej granicy w C (np. granica linii pamięci podręcznej)? Szukam implem ... , szukam czegoś, co zachowywałoby się tak (obecnie przestarzałe?) memalign funkcja, która może być zwolniona za pomocą free.

Making std:: vector allocate aligned memory

Czy możliwe jest, aby std::vector niestandardowe struktury przydzielały pamięć wyrównaną do dalszego przetwarzania za pomocą ... trukcji SIMD? Jeśli jest to możliwe do zrobienia z Allocator, Czy ktoś przypadkiem ma taki alokator, który mógłby udostępnić?

najlepsza wieloplatformowa metoda uzyskania wyrównanej pamięci

Oto kod, którego zwykle używam do wyrównania pamięci z Visual Studio i GCC inline void* aligned_malloc(size_t size, size_t ... nej funkcji _mm_free, chociaż w niektórych implementacjach można przekazać wskaźniki z _mm_malloc do standardu free / delete.

Dlaczego Mac ABI wymaga 16-bajtowego wyrównania stosu dla x86-32?

Rozumiem ten wymóg dla starych systemów PPC RISC, a nawet dla x86-64, ale dla starych sprawdzonych x86? W tym przypadku stos ... bręczy. Dam ten temat kiedy indziej, a potem go zamknę... Powiązane To moja ramka, nie obchodzi mnie to. twoja rama stosu!

Czy naprawdę muszę się martwić o wyrównanie przy użyciu nowego operatora?

Czytam to Kiedy powinienem się martwić o wyrównanie? ale nadal Nie wiem, czy muszę się martwić o nie wyrównany wskaźnik zwrac ... ples.html . Może jedyną wadą w moim przypadku byłaby kara za wydajność, czyli dostęp bez zmian kosztuje więcej niż wyrównany?

Zapytanie o wyrównanie określonej zmiennej

C++11 wprowadził alignas specifier aby określić wyrównanie zmiennej, a alignof operator do zapytania o domyślne wyrównanie ... ł, że określona zmienna array jest wyrównana na granicy 16 bajtów. Czy jest coś w standardzie do wykonania takiego zapytania?

Dlaczego wielkość klasy zależy od kolejności deklaracji członkowskiej? i jak?

Niech mi ktoś wyjaśni, jak kolejność deklaracji członków wewnątrz klasy określa wielkość tej klasy. Na Przykład: class tem ... niona jak poniżej class temp { public: char c; int i; short s; }; Wtedy Rozmiar klasy wynosi 12 bajtów. Jak?

Czy zawsze jest tak, że sizeof (T) > = alignof(T) dla wszystkich typów obiektów T?

Dla dowolnego typu obiektu T Czy zawsze jest tak, że sizeof(T) jest co najmniej tak duża jak alignof(T)? Intuicyjnie tak się ... jmniej w moim testowaniu. Na przykład: struct alignas(16) small16 { char c; }; Ma zarówno rozmiar, jak i wyrównanie 16.

GCC nie optymalizuje aligned STD:: array like C array

Oto kod, którego GCC 6 i 7 nie optymalizują podczas używania std::array: #include <array> static constexpr size_t my ... ie występuje. Jeśli używasz Clang, problem nie występuje. Możesz zobaczyć to na żywo tutaj: https://godbolt.org/g/IXIOst

Czy członkowie klas / struktur są zawsze tworzeni w pamięci w kolejności, w jakiej zostały zadeklarowane?

To pytanie zostało wywołane przez odpowiedź Roba Walkera TUTAJ. Załóżmy, że deklaruję klasę/strukturę w ten sposób: struc ... (głównie pytam o C++, ale też chętnie wysłucham odpowiedzi w C) Tematy pokrewne dlaczego GCC nie optymalizuje struktur?