Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
编译器优化对 malloc 的调用以返回更多弱对齐内存是否合法?
假设我们有以下代码 include
c
malloc
languagelawyer
memoryalignment
缓存行对齐(需要文章澄清)
我最近在我的应用程序中遇到了我认为是错误共享的问题 我查了一下关于如何将我的数据与缓存行对齐 他建议使用以下 C 代码 C using C 0x alignment syntax template
c
Multithreading
caching
C11
memoryalignment
对齐静态字符串文字
我有一个静态结构数组 struct CommandStruct char data unsigned ans size static const CommandStruct commands Some literal 28 Some oth
c
VisualStudio
memoryalignment
#pragma pack、模板类型定义和结构对齐
使用 Visual Studio 或 gcc 如果有的话 pragma pack push 16 typedef std map
c
templates
visualc
gcc
memoryalignment
如何保证成员4字节对齐?
为了使用 OSAtomicDecrement mac 特定的原子操作 我需要提供一个 4 字节对齐的 SInt32 这样的煮法有用吗 还有其他方法可以解决对齐问题吗 struct SomeClass SomeClass member sto
c
atomic
memoryalignment
为什么无法一步读取未对齐的单词?
鉴于 CPU 的字大小允许它寻址内存中的每个字节 鉴于通过PAE http en wikipedia org wiki Physical address extensionCPU 甚至可以使用比字大小更多的位来进行寻址 CPU 无法一步读取
C 避免对齐问题
请解释一下 下面的示例到底有什么问题 特别是 这可能导致从不是四的倍数的地址加载 32 位无符号长整型 的部分 编译器通常会自然地防止对齐问题 对齐所有数据类型 事实上 对齐问题通常不是 内核开发人员主要关心的问题 gcc 人员必须担心 关
c
Alignment
memoryalignment
malloc + size_t * 3 的地址对于任何类型都是对齐的吗?
我正在构建一种动态数组 向量 但不是嵌入数据 通常是void 变成struct vector 我正在预留空间struct vector 一大块字节 使用数组的示例size t s include
c
malloc
memoryalignment
为什么对齐是2的幂?
有一句话来自参考参数 http en cppreference com w cpp language object Alignment 每个对象类型都具有称为对齐要求的属性 该属性 是一个整数值 std size t 类型 始终是 2 的幂
c
memoryalignment
在文本段中创建具有给定大小的 C 函数
我正在编程一个嵌入式powerpc questions tagged powerpc32位系统具有32 kbyte 8路组相联二级指令缓存 为了避免缓存抖动 我们以某种方式对齐函数 使得高频调用的一组函数的文本 想想中断代码 最终出现在单独
c
gcc
memoryalignment
powerpc
Intel x86 与 AMD x86 CPU 上的访问性能不一致
我已经实现了一个带有结构内存布局数组的简单线性探测哈希图 该结构包含键 值和指示条目是否有效的标志 默认情况下 该结构体由编译器填充 因为键和值是 64 位整数 但该条目仅占用 8 个布尔值 因此 我也尝试以未对齐访问为代价来打包结构 由于
x8664
intel
cpuarchitecture
memoryalignment
amdprocessor
具有虚函数的类的大小
我正在修改 C 概念 但我坚持使用非常简单的代码 include
c
sizeof
virtualfunctions
memoryalignment
关于 Hinnant 堆栈分配器的问题
我一直在使用霍华德辛南特的堆栈分配器 http howardhinnant github io stack alloc h它的工作方式就像一个魅力 但实施的一些细节对我来说有点不清楚 为什么全球运营商new and delete用过的 这a
c
C11
memoryalignment
allocator
exceptionspecification
为什么指令高速缓存对齐可以提高组相联高速缓存实现的性能?
我有一个关于指令缓存对齐的问题 我听说 对于微优化 对齐循环使其适合缓存行可以稍微提高性能 我不明白为什么那会有什么作用 我了解缓存命中的概念及其对计算速度的重要性 但似乎在组关联缓存中 相邻的代码块不会映射到同一个缓存组 因此 如果循环跨
cpuarchitecture
memoryalignment
cpucache
microoptimization
在源代码上添加一个新属性,该属性会传播到 LLVM 中的 MC 级别?
我对以下内容的传播方式感兴趣 void foo int attribute aligned 16 p 在这种情况下 指针的 对齐 在 MC 级别可用 但显然没有使用 LLVM IR 元数据方法来实现这一点 对齐信息对于某些目标非常重要 这些
attributes
Alignment
Clang
LLVM
memoryalignment
在 C/C++ 中解析二进制消息流
我正在编写二进制协议 Javad GRIL 协议 的解码器 它由大约一百条消息组成 数据格式如下 struct MsgData uint8 t num float x y z uint8 t elevation 这些字段是 ANSI 编码的
c
Parsing
Binary
memoryalignment
C++ 对齐 new[]
Overview 浏览时运算符 new 运算符 new cppreference com https en cppreference com w cpp memory new operator new 似乎我们有很多选项来分配具有特定对齐要
c
C17
memoryalignment
为什么需要内存对齐? [复制]
这个问题在这里已经有答案了 可能的重复 内存对齐的目的 https stackoverflow com questions 381244 purpose of memory alignment 我在网上读了一些关于内存对齐的文章 可以理解
c
memory
pointers
memoryalignment
.NET Core 中类内部的结构对齐
我试图理解为什么只包含 int 的结构在类中占用 8 个字节的内存 考虑以下代码 static void Main var rand new Random var twoIntStruct new TwoStruct new IntStru
c
NetCore
memory
struct
memoryalignment
MIPS 左加载字 (LWL) 和右加载字 (LWR) 指令的作用是什么?
最近我一直在研究 MIPS 指令集 当时我遇到了两个在其他指令集中没有见过的不寻常指令 我环顾四周 想找到一个关于指令到底做什么的合理解释 但我所能弄清楚的是 它们在某种程度上与未对齐的内存访问有关 例如 维基百科说 https en wi
Assembly
MIPS
memoryalignment
instructions
instructionset
1
2
3
4
5
»