所以我正在研究一个必须与Python脚本进行一些通信的Matlab应用程序。调用的脚本是一个简单的客户端软件。作为旁注,如果有可能让Matlab客户端和Python服务器进行通信,这将完全解决这个问题,但我还没有找到解决方法。
无论如何,在搜索网页后,我找到了两种方法来调用Python脚本,可以通过system()
命令或编辑 perl.m 文件来调用Python脚本。两种方式都太慢了(tic
将它们设置为> 20ms并且运行速度必须超过6ms)因为此调用将处于非常时间敏感的循环中。
作为一种解决方案,我认为我可以将文件保存在某个位置,并让我的Python脚本不断检查此文件,并在找到它时执行我想要的命令。现在,在对每个步骤进行计时并总结之后,我发现它的速度要快得多(几乎100倍,所以肯定足够快)并且我真的不相信,或者说我无法理解为什么调用python脚本是如此之慢(不是那样的)我对这个主题不仅仅是肤浅的知识。我还发现这个解决方案非常混乱和丑陋,所以只是想检查一下,首先,这是一个好主意,第二,是否有更好的解决方案?
最后,我意识到Python time.time()
和Matlab tic
,toc
可能不够精确,无法在该范围内正确地测量时间,这也是我要问的原因。
答案 0 :(得分:1)
启动Python解释器的新实例需要一段时间。如果您将解释器旋转一次并重复使用,则此成本仅支付一次,而不是每次运行。
这是正常(预期)行为,因为启动包含大量分配和导入。例如,在我的机器上,启动时间是:
$ time python -c 'import sys'
real 0m0.034s
user 0m0.022s
sys 0m0.011s