敏捷开发

为什么在Mac ABI要求对X86-32 16字节堆栈对齐?

我可以理解这一要求的旧PPC RISC系统,甚至为x86-64的,但是对于老尝试和真正的x86?在这种情况下,需要堆栈上只有4字节边界对齐的。是的,一些MMX / SSE指令需要16byte的路线,但如果是被叫方的要求,那么就应该保证路线是正确的。为什么负担的每次来电与这些额外的要求?这实际上可能导致一些滴性能,因为每次调用站点必须管理这一要求。我失去了一些东西? 更新:经过一些调查,这与一些内 ..
发布时间:2015-11-30 23:25:38 敏捷开发

联盟元件排列

如果我有一个工会,C标准保证了工会本身将被排列到最大元素的大小。 工会ü{ 长升; INT I; 短裤; 字符C [2]; } U; 但是,它说什么了关于工会内部各个工会元件排列?如下EX pression保证是真的吗? (安培; u.l ==&安培; u.i)及和放大器; (安培; u.i ==&安培; U.S)及&安培; (安培; U.S ==&安培 ..
发布时间:2015-11-30 23:25:33 敏捷开发

为什么是数据结构调整的性能非常重要?

有人可以给我一个短而合理的解释为什么编译器添加填充到数据结构,以便使会员?我知道它的工作,使CPU可以更有效地访问数据,但我不明白为什么会这样。 如果这仅仅是CPU相关的,为什么双4字节对齐的Linux和8字节对齐的Windows? 解决方案 对齐帮助CPU读取以有效的方式从内存中的数据:更少的高速缓存未命中/冲洗,少总线事务等 某些内存类型(如RDRAM,DRAM等)必须在一个结构化的方 ..
发布时间:2015-11-30 23:25:30 敏捷开发

CPU和数据比对

请原谅我,如果你觉得这已经回答了无数次,但我需要回答以下查询! 为什么数据对齐(4字节/ 8字节/ 2字节边界)?在这里,我的疑问是当CPU地址线斧-1 AX-2 ... A2 A1 A0则是完全可能的顺序寻址存储器位置。那么,为什么有需要在特定的边界对齐数据? 如何找到对齐要求时,我编我的code和产生executatble? 如果对于如数据对齐为4字节边界,这是否意味着每个连续字节位 ..
发布时间:2015-11-30 23:25:21 敏捷开发

在x86失去定位球

有人可以提供一个例子是铸造从一种类型到另一个指针失败,因为失准? 在评论 的char *富= ...; INT栏= *(INT *)FOO; 可能导致即使在x86错误,如果比对检查启用。 我试图通过设置$ PS设置对齐检查标志之后产生一个错误条件| =(1<< 18)在GDB ,但什么都没有发生。 什么是一个工作(即非工作;))的例子看起来像? 从没有答案的code段的失 ..
发布时间:2015-11-30 23:25:13 敏捷开发

如何调整图像 - 用MATLAB

我需要知道如何使图像在Matlab进行进一步的工作。 例如我有下车牌图像,我想认识所有 的数字。 我的程序适用于直图像所以,我需要调整图像,然后 preform光学识别系统。 的方法应该是尽可能的通用,适合于各种板和在各种角度 编辑:我试图做到这一点与Hough变换,但我没有成功。任何人都可以帮我做这个? 任何帮助将大大AP preciated。 解决方案 溶液首先暗示了由 @A ..
发布时间:2015-11-30 23:25:11 敏捷开发

GCC __attribute __((排列(X)))的说明

我有以下code: 的#include< stdio.h中> INT 主要(无效) { 飘起了[4] __attribute __((对齐(0×1000)))= {1.0,2.0,3.0,4.0}; 输出(“%P%P%P%对\ñ”,&安培;一个[0],&安培;一个[1],&安培;一个[2],&安培;一个[3]); } 和我有以下的输出: ..
发布时间:2015-11-30 23:24:17 敏捷开发

内存对齐目的

诚然,我不明白这一点。假设你有1个字节长度的记忆单词记忆。为什么你不能访问一个4字节长的变量在未对齐地址(即不被4整除)一个内存访问,因为它与对齐地址的情况? 解决方案 这是许多底层处理器的限制。它通常可以做4低效的单字节进行合作周围取而不是一个有效的字获取,但是很多语言说明符决定了它会更容易只取缔他们,并强制所有内容保持一致。 还有更多信息,此链接中的OP发现的。 ..
发布时间:2015-11-30 23:24:12 敏捷开发