Tcl数组和dict之间转换的速度惩罚



我有一个大型Tcl应用程序,它严重依赖数组。为了加快速度,我正在考虑使用dict而不是array重写它。由于它的大小,我只想重写计算密集度最高的部分,并在两个子系统边界的数组和dict之间进行转换,如中所述http://wiki.tcl.tk/5042在"字典和数组"一段中。

我是否必须考虑这个转换过程中的严重速度惩罚,或者内部结构是否实现得如此相似,以至于实际转换可以被认为是快速的?

数组和dict内部都使用哈希表;它们的性能非常相似(相同的渐近big-O行为,可能在实际速度方面有点不同)。然而,如果您使用紧凑整数键(即0、1、2…),您最好使用Tcl列表,这可能会更快(它们是隐藏的C数组)。

最新更新