何时使用int以外的数据类型?

何时使用int以外的数据类型?

通常,使用有意义的类型。从数据验证、完整性和持久性的角度来看,这可能是有帮助的。

例如,通常情况下,由于填充和对齐问题,bool在32位体系结构上实际消耗4字节,在64位体系结构上可能消耗8字节。默认情况下,大多数编译器都会优化速度,而不是代码大小或内存使用量。对齐访问通常比非对齐访问更快。在.Net中,其中一些可以通过属性进行控制。据我所知,JIT编译器不会将多个布尔类型压缩到一个整数位字段中。

对于byte类型也是如此。JIT编译器可以压缩多个字节类型(甚至重新安排存储顺序)以共享相同的字(假设您不使用StructLayout和FieldOffset等属性覆盖此类行为)。

例如:

代码语言:javascript运行复制struct Foo

{

string A;

short B;

string C;

short D;

}将引用类型视为指针,上面的大小可能是16 (可能是14,但对齐到16)。

可以重新排列Foo,使其实际顺序为:

代码语言:javascript运行复制struct Foo

{

string A;

string C;

short B;

short D;

}上面的大小可能为12,对齐方式为12或16 (可能为16)。

...potentially,在这个人工设计的示例中,由于重新排列,您可以节省4个字节。请注意,与典型的C++编译器相比,.Net在重新对齐成员方面更加积极。

(顺便说一句,我最近花了一些精力在我维护的一个C++库上。我能够完全通过优化成员布局来实现55%的内存使用减少)。

相关推荐

忽忽小说免费版
假的网站365怎么看

忽忽小说免费版

06-30 👁️ 7311
永清县位置图,区位图、永清在哪里
中国的365体育投注

永清县位置图,区位图、永清在哪里

07-05 👁️ 5097
您的网络总是断开的常见原因
中国的365体育投注

您的网络总是断开的常见原因

07-07 👁️ 2553
百度贴吧如何查找资源 百度贴吧在哪里找资源
假的网站365怎么看

百度贴吧如何查找资源 百度贴吧在哪里找资源

06-27 👁️ 9756