我可以从Int32和Int64期望什么性能?

我经常看到像这样的pprogram,其中Int64是32位平台上的绝对性能杀手。 我现在的问题是:

如果我的任务需要特定的字长(在我的情况下是一个RNG),在64位平台上是Int64有效的,还是仍然使用C调用? 将Int64转换为Int效率如何?


在64位系统Int64应该没问题,但我不确定。

更重要的是,如果你使用加密或随机数生成,你必须使用算法所说的数据类型,同时注意签名。 如果你不这样做,你会得到错误的结果,这可能意味着你的密码不安全,或者你的随机数发生器并不是真正的随机数(RNG很难,而且许多看起来是随机的,但不是)。

对于任何其他类型的工作,尽可能使用Integer,甚至更好,使用Integral类型来使程序变为多态。 然后,如果你认为你的程序比它应该轮廓分明,以确定你应该集中在什么地方,当你试图加快速度。 如果使用从Integer到Int更改的Integral类型很容易。 Haskell应该足够聪明以专门化(大部分)使用多态性的代码来避免开销。


有趣的文章在这里64位表现:

是不是我的代码将在64位更快?

正如文章所述,大瓶颈不是处理器,而是缓存和内存I / O。

链接地址: http://www.djcxy.com/p/4157.html

上一篇: What performance can I expect from Int32 and Int64?

下一篇: how to get distinct results using Projections and Criteria