fuz*_*fuz 7 int 64-bit haskell 32bit-64bit word-size
我经常看到像这样的 pprograms ,Int64在32位平台上绝对是性能杀手.我现在的问题是:
如果我的任务需要特定的字长(在我的情况下是RNG),Int64在64位平台上是否有效或者它仍然会使用C调用吗?而如何有效的转化的Int64一个Int?
在 64 位系统上 Int64应该没问题,但我不确定。
更重要的是,如果您正在进行加密或随机数生成,则必须使用算法规定使用的数据类型,还要注意符号性。如果您不这样做,您将得到错误的结果,这可能意味着您的密码学不安全,或者您的随机数生成器不是真正随机的(RNG 很困难,许多看起来是随机的,但实际上并非如此)。
对于任何其他类型的工作,请尽可能使用 Integer,或者更好的是,使用 Integral 类型类使程序具有多态性。然后,如果您认为您的程序比应有的速度慢,则对其进行分析以确定当您尝试加快速度时应该集中精力的地方。如果您使用 Integral 类型类,从 Integer 更改为 Int 很容易。Haskell 应该足够聪明,能够专门化(大多数)使用多态性的代码来避免开销。