我应该使用 byte 或者 int?
我记得我读到了更好的地方 /在表现方面/ 使用 Int32, 即使你只需要字节。 它属于 /想必/ 仅在您不关心存储时的情况。 这是真的吗?
例如,我需要一个将包含一周日期的变量。 而且我知道
或者
EDIT
:
伙计们,我知道 DayOfWeek 清单。 问题是不同的。
例如,我需要一个将包含一周日期的变量。 而且我知道
int dayOfWeek;
或者
byte dayOfWeek;
EDIT
:
伙计们,我知道 DayOfWeek 清单。 问题是不同的。
没有找到相关结果
已邀请:
6 个回复
八刀丁二
赞同来自:
君笑尘
赞同来自:
要解释,因为我减少了投票:
正确的
你的代码几乎总是更重要的。 , 比
表现
, 特别是在我们谈论这么少的差异的情况下。 如果使用列表或类代表数据语义 /无论是列表 DayOfWeek, 或其他枚举,或类 Gallons 或者 Feet/, 使您的代码更加理解或维持维护,它将帮助您到达您可以安全地优化的程度。
这可以编译。 但是没有办法发现它是否会合理或不合理。
它不会被编译,甚至看起来,显然,为什么不 - 甘鸽
它没有任何意义
.
君笑尘
赞同来自:
, 因为它更接近所需的值范围。
这是我的推理; 在日期存储和通过的榜样。 一年 - 在考虑系统的其他部分时,包括 SQL Server DateTimes, 限制 1753 到 9999 /注意 C#'s 可能的范围 DateTime 是不同的!/ 因此, a
涵盖了我可能的价值观,如果我试图传达一些东西,编译器会在编译代码之前警告我。 不幸的是,在这个特殊的例子中,属性 C# DateTime.Year 多窝白 int - 因此,如果我需要通过,迫使我带来结果,例如,
在我的功能中。
这个初始位置是由于关于涉及数据的长期存储的考虑因素 "数百万行" 和磁盘空间 - 即使是便宜的 /发布和运行时会更便宜 SAN 或类似的东西/.
在另一个例子中 DB 我将使用较小的类型,如 byte /SQL Server tinyint/ 搜索 ID, 在那里,我相信那里不会有这么多类型的搜索,直到它 long /SQL Server bigint/ 为了 id, 可能会更多的记录。
那么,我的经验规则:
如果可能,首先检查正确性。 使用 DayOfWeek 在你的例子中,当然 :/
因此,使用编译器安全检查选择适当的大小的类型,在可能的时间内为您提供错误;
..但是补偿了性能和简单的极端要求,特别是在没有涉及的长期存储库或我们正在考虑搜索表的位置 /字符串数量低/, 而不是交易 /高排/.
符合清晰度存储的兴趣 DB 往往不会尽可能快地拒绝,以减少列的类型 bigint 到较小的类型。 由于缩小到单词的边界,并且由于页面大小的内部问题,这两者都发生在一起。 DB. 但是,您可能在您的情况下保持每个数据元素 DB, 也许在改变时保持历史记录,并节省了备份副本和日志备份副本的最后几天。 因此,节省了几个百分比的存储需求将具有长期存储成本节省。
当内存中的字节容量相比,我从未个人面临问题 ints 有一个问题,但我花了时钟和时间来重新分配磁盘空间并完全停止生活服务器的工作,因为没有一个人可以监控和管理这些事情。
莫问
赞同来自:
http://msdn.microsoft.com/en-u ... .aspx
使用大部分时间 int. 不是为了性能,但为简单起见。
莫问
赞同来自:
事实上,在所有现实中,在生产力方面都不会发现它们之间的任何区别。 /除了罕见,极端情况/. 这就是我喜欢使用的原因 int 反而 byte, 因为你可以在没有罚款的情况下存储大数字。
江南孤鹜
赞同来自:
, 在表现方面 cpu-
.