memory-alignment

    1熱度

    1回答

    假設我的機器字是32位長,我必須對8個字符的字符串進行排序。 我讀過如果將字符打包成單詞,比較將更快,因爲您使用對齊的內存訪問。 所以在我們的例子中,我們將字符串分成兩個4字節的字,並使用每個字符串的第一個字進行比較,如果它們碰巧相等,那麼您檢查每個字符串的第二個字。 性能是否提高?它變得更快嗎?由於編碼變得越來越複雜,它是否得到回報? 如果它有效,它是否適用於所有語言?

    3熱度

    3回答

    此代碼似乎工作,但我有沒有正確使用InterlockedIncrement函數? m_count的正確內存對齊是我最關心的問題。假設我們在一個x86-64系統上編譯一個64位應用程序(如果有的話)。順便說一句,對於我的實際目的,我不能將m_count聲明爲volatile,然後使用InterlockedIncrement(& m_count);但它必須是堆中數據的指針。 #include <Win

    13熱度

    3回答

    我知道這是一個奇怪的問題要問在Java中, 但有一個辦法可以讓Java的動態內存分配的一些對齊約束對齊? 例如,是否可以動態分配與頁面大小對齊的對象? 我想這樣做的原因是因爲我要通過JNI接口從本地代碼訪問Java對象,本機代碼庫需要的對象對齊。 謝謝。

    3熱度

    5回答

    已經 any_type *ptr = (any_type*)malloc(sizeof(any_type)*size); my_ptr = ptr+1; memcpy(dst, my_ptr, sizeof(any_type)); 將my_ptr指出,以1個字節的PTR後,或PTR後sizeof(any_type)字節? 對齊選項如何影響答案?對簽名/未簽名類型有所不同嗎?

    2熱度

    3回答

    如果使用64位UNIX操作系統,將數組大小定義爲8的倍數是否有優勢?我打算使用這個數組來從共享內存中加載數據。因此操作系統和頁面大小上可能存在依賴關係。

    2熱度

    1回答

    觸發我有一個類: class A { public: static A& instance(); ... void setValue(int val){ _value = val; } private: int _value; } A& A::instance(){ static A _Instance; return _Ins

    0熱度

    2回答

    我製作了一個變體類型來代替boost :: variant。礦山工程將當前類型的索引存儲在可能類型的列表中,並將數據存儲在具有足夠空間來存儲最大類型的字節數組中。 unsigned char data[my_types::max_size]; int type; 現在,當我寫一個值,這個變量類型來的麻煩。我使用以下內容: template<typename T> void set(T a)

    3熱度

    2回答

    是否有保證,如果我們在堆棧中創建此類型的對象,該對象的內存將正確對齊? union my_union { int value; char bytes[4]; }; 如果我們在堆棧中創建char字節[4],然後嘗試將其轉換爲整數,則可能存在對齊問題。我們可以通過在堆中創建它來避免這個問題,但是,是否存在聯合對象的這種保證?邏輯上應該有,但我想確認一下。 謝謝。

    3熱度

    4回答

    爲什麼我們需要在C++中有#pragma pack爲typedef結構?特別是當你在網絡通信中使用這些結構時。

    3熱度

    2回答

    根據主題,如果在C/C++中是easy查找緩存行大小並在開發高效的MT代碼時處理此問題,那麼Java VM如何處理? 乾杯