expect / tcl脚本执行多长时间

时间:2012-09-06 01:29:53

标签: tcl expect


    我已经写了一个telnet脚本来远程控制一个cisco开关,它需要大约2-3个小时才能启动,即使我用单个proc编写一个短脚本,它也需要2-3分钟才能启动。触发如下     

    proc test_proc {} {
        puts "123"
    }
    test_proc
    是否有人遇到过这个嘈杂的问题? 期待你的帮助......

2 个答案:

答案 0 :(得分:1)

计时脚本

要计算执行某段Tcl代码需要多长时间,请使用time命令。它的第一个参数是要测量的脚本。 (它还需要一个可选的第二个参数,即要使用的迭代次数;它默认为1,但更多的迭代次数对于测量快速运行的东西很有用。)

proc test_proc {} {
    puts "123"
}
puts [time {
    test_proc
}]
# I got "48 microseconds per iteration" when I tried it; YMMV...

请注意,测量一个过程定义没有什么意义(除非你对proc本身的行为非常感兴趣,但那是相当讨厌的。)

还有一个名为time的Unix系统命令,其工作方式类似(以概念方式),而是测量程序运行的时间。它的输出在系统之间变化很大;毕竟它真的是人类可读的。

优化解释器启动时间

更令人担忧的是,一个微不足道的剧本需要多长时间才能开始;在计算方面,2-3分钟是绝对年龄。您运行的机器是否内存不足? (繁重的分页可以减慢程序的速度。)或者你可能将所有的库安装在一个奇怪的位置(由于该目录的大小,Tcl的软件包加载对于/usr/lib中的库安装时的问题特别敏感结构体)。还有一些版本的Tcl(虽然没有当前的)在文件名解析和缓存方面存在严重错误,这往往会在启动时导致巨大的性能损失;您使用的是Tcl(以及Expect)的确切版本?使用info patchlevel命令获取精确的Tcl版本(tcl version仅具有从Tcl 8.5开始的足够精度。)

答案 1 :(得分:0)

我意识到这已经老了,但我在寻找答案时偶然发现了,所以我想我会在这里发布这个,以便下一个绊倒它。

建议的时间函数确实有效,但不适用于完整的脚本,仅适用于函数。

我找到了一种使用毫秒的时钟时间的方法,用于测量运行时间(秒将是不准确的)

X509Certificate2 Verify