list - foreach 循环中的 Tcl proc 调用 - 效率
问题描述
在我的 Tcl 代码中,我目前有一个返回 Tcl 列表的 proc。我在 foreach 循环中调用这个过程,如图所示
foreach a [get_objects] {
# ...
}
相对于 Tcl,它的效率如何?下面的风格更好吗?
set my_list [get_objects]
foreach a $my_list {
# ...
}
仅供参考,列表的长度非常大。
解决方案
我相信第一个比较慢。Tcl 没有编译器,因此程序只是“流动”而没有任何智能内存分配。由于解释的作品,它不能删除 $my_list 因为它不知道下一个代码行,也许该变量将被使用。可能在不知道 Tcl 解释器的情况下,第一个选项将释放为 [get_objects] 分配的内存。由于此操作,它将消耗更多时间。
推荐阅读
- visual-studio - 通过 2019 构建工具安装时未检测到 MSVC2015
- csv - SQL Server 将 CSV 数据导入临时表无法查询导入的数据
- laravel - 将 MongoDB 与 Laravel 连接时出错
- git - Fork GitHub 存储库供个人使用和贡献
- c++ - 计算在同一位置至少包含一个常见字符的不同字符串对
- javascript - 反应:让一个按钮在点击一个按钮时选择一些东西
- javascript - 在 NodeJs 中将 Uint8Array 转换为 Uint16Array
- cobol - 对 COBOL 的最新重大更改
- javascript - js数组排序也不适用于自定义逻辑
- python - 数据框多列拆分