我可以从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