p4python与使用子流程调用p4相比,哪种方式性能更好?

p4python与使用子流程调用p4相比,哪种方式性能更好?,python,performance,perforce,Python,Performance,Perforce,作为标题 我注意到从子流程模块调用p4不是很快。但是我在学习Perforce-Python绑定时犹豫不决,不知道它是否性能更好 如果有人能分享两种尝试的经验,我将不胜感激 编辑 我在Win10/desktop PC上观察到了这一点,我的工作副本位于SSD驱动器上。我观察到的命令包括对大量文件和文件夹执行的add、edit和reconcile。我没有进行严格的评测,但是从子流程感知到的响应似乎比P4V中的相同操作慢 如果p4调用会导致多连接开销,那么Sam Stafford的回答是有意义的。一般来

作为标题

我注意到从
子流程
模块调用
p4
不是很快。但是我在学习Perforce-Python绑定时犹豫不决,不知道它是否性能更好

如果有人能分享两种尝试的经验,我将不胜感激

编辑

我在Win10/desktop PC上观察到了这一点,我的工作副本位于SSD驱动器上。我观察到的命令包括对大量文件和文件夹执行的
add
edit
reconcile
。我没有进行严格的评测,但是从
子流程
感知到的响应似乎比P4V中的相同操作慢


如果
p4
调用会导致多连接开销,那么Sam Stafford的回答是有意义的。

一般来说,使用p4 API将比使用CLI更快,如果运行多个命令,最显著的好处是,因为API允许您在单个服务器连接上轻松运行多个命令,而CLI二进制文件为每次调用建立连接。

您运行的是什么“不是很快”的命令,您如何判断?如果该命令是
p4 sync
,那么您是通过生成
p4
还是通过调用API来运行它并不重要,但是如果该命令是
p4 fstat//some/specific/file
,则可能会有影响。还有,你在哪个站台?这对于这样的自动化编程非常重要。比如说,当您在多个文件上运行
p4 edit
时,您是为每个文件分别运行
p4 edit
,还是使用多个文件名参数运行
p4 edit
一次?我想。说实话,我很怀疑。我认为选择api的主要决定因素是,如果您使用其中一个脚本api,那么编写一个必须解析和操作p4数据结构的复杂脚本会更容易。但我认为基本性能更多地取决于您如何使用所讨论的p4功能。例如,创建新分支所需的时间与创建分支所需的时间相同,无论是编写脚本还是运行派生的p4命令。当然,tcp连接和登录握手需要一点时间,但如果您的问题是
p4 sync-f/…
速度慢,那么这就是一个问题。使用(“未记录的”)
p4-x CMDFILE run
命令也可以使用单个连接运行命令。