tcl加载许多过程时所用的时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tcl加载许多过程时所用的时间相关的知识,希望对你有一定的参考价值。

是否存在以下两种情景之间的任何表现(时间)差异。

  1. 在shell中只加载了一个TCL proc,并且您正在执行该proc。
  2. 加载了1000个不同的proc,以便访问与case1相同的proc。
答案

程序的费用是由于:

  1. 当你调用proc时定义它。通常很快;它只需更新一些哈希表并分配一些内存来存储正文的字符串表示。
  2. 将其编译为字节码。不是超级快,但仍然没有太糟糕,因为编译器写得相当快,而且Tcl非常积极地缓存字节码。通常在您第一次运行该过程时发生(因为有一个内部调用“获取字节码,如果您需要首先编译源代码”)。
  3. 输入(并离开)过程的堆栈帧。更多内存分配和初始化,但使用特殊的内存分配器来加快速度。这也是程序的参数存储到每个形式参数的局部变量的地方。
  4. 实际上运行字节码。取决于你在程序中写的东西真的。
  5. (不是特定于程序的。)查找命令也需要付出代价。 Tcl做了一些缓存,试图尽可能降低这个成本,甚至不考虑字节码编译过程。

我建议不要过多担心程序本身的效率(而不是放在它们中的代码的效率),而是以尽可能清晰易懂的方式对代码进行分区。是的,如果你有一个已确定的瓶颈(例如C代码的目标位),你可以采取一些措施来大大加快它们的速度,但实际的程序总数很少是一个问题。

以上是关于tcl加载许多过程时所用的时间的主要内容,如果未能解决你的问题,请参考以下文章

从现有片段启动其他片段时应用程序崩溃

重新加载时刷新片段

将列表传递给 Tcl 过程

使用地图片段(kotlin)时,活动在充气时崩溃

如何向 ViewPager 提供许多片段并避免错误代码?

如何找到TCL程序的位置?