【发布时间】:2012-07-28 15:13:12
【问题描述】:
我将第一次使用非常少量的非常小的数字(因为每个 int 将在 1 到 10 之间,并且一次有 100 个这样的变量),我想知道是否有使用 16 位整数与 32 位的任何显着性能差异。我的大多数用户将使用 64 位处理器,但有些用户将使用 32 位。
【问题讨论】:
-
听起来像是过早优化的情况。是什么让您认为这些变量将成为您的应用程序中性能问题的最大来源?例如,向数据库发送网络请求可能比分配 1000 个元素的数组长 100 倍。
-
你将如何处理这些数字?
-
一般来说,与处理器的本机整数大小匹配的整数(32 位 CPU 上为 32 位,64 位 CPU 上为 64 位)执行速度最快。但是,这不是不进行测试和基准测试的借口——除了 CPU 处理整数的速度之外,可能还有其他因素,例如交换、缓存未命中等。
-
100 个变量对于任何现代计算机来说都不是一个大数目。在达到数十万或数百万个数字之前,您可能看不到任何显着差异。
-
mellamokb,绝对不会,但我想减少哪怕是最小的一点。 Thomas Levesque,它们很少更改(可能其中一些更改每 20 秒左右),但会不断访问。 cdhowie,我知道这一点,但我想知道如果还有其他需要考虑的数字是否会如此之小。 Anders Abel,好点子,但如果这会改变任何事情,它们将很快被使用(如“if”语句等)
标签: c# performance variables integer