我正在使用涉及哈希表的ocamlc
a(ocaml)代码进行编译,这些代码在运行时变得非常大。
即使等效在C#中运行得非常好(以64位编译),我怀疑我的OCaml代码是以32位编译的,负责抛出内存错误,而内存使用率很低(当异常是2GB时)抛出)。
如何确保生成的.exe是以64位编译的?
编辑。在最大哈希表到达14 344 207
元素后不久就会出现错误。
答案 0 :(得分:2)
您可以按Sys.word_size
检查编译器的字大小:
val word_size : int (** Size of one word on the machine currently executing the OCaml program, in bits: 32 or 64. *)
"机器上一个单词的大小"是误导。如果编译器是32位,word_size = 32
甚至机器架构都是64位。