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?
- 1
- 2