我正在处理一个工程应用程序,其界面是用TCL TK编写的。
一切都很顺利,直到我需要使用(极其)大的数组。370,000,000个元素,每个元素的长度从2到10个字符(线性增长)。
我的问题是, TCL数组的大小限制在哪里?我一直在阅读和调查,唯一找到的是“ 2GB”字符串数据,但我不知道它是否可靠,因为它没有解释原因。
我进行了一个实验:
set lista [list ]
catch {
for {set i 0} {$i < 370000000} {incr i} {
lappend lista $i
}
}
puts $i
在32位的Windows 7上,返回值约为$ i = 50,000,000左右。