我需要有关从Golang调用时如何加快对python程序的访问的建议。我真的需要快速的访问时间(非常低的延迟)。
方法1:
func main(){
...
...
cmd = exec.Command(“ python”,“ test.py”)
o,err = cmd.CombinedOutput()
...
}
如果我的test.py文件是基本的“ HelloWorld”打印程序,则执行时间超过50毫秒。我认为大部分时间是在内存中加载shell和python。
方法2: 通过让python启动HTTP服务器,然后为Go代码发布POST HTTP请求并从HTTP服务器(python)获取响应,可以大大提高上述方法的速度。将响应时间缩短到不到5ms。 我猜这主要是因为python解释器已经加载并且在内存中很热。
我还有其他方法可以使用类似于方法2(共享内存等)的方法来加快我的python代码的响应速度吗?我们的应用程序要求极低的延迟,而我目前使用Golang的exec包看到的50 ms不会减少它。
谢谢
答案 0 :(得分:0)
方法1:简单的HTTP服务器和客户端
方法2:本地套接字或管道
方法3:共享内存
方法4:GRPC服务器和客户端
实际上,我更喜欢通过流方式使用GRPC方法,它将保持连接(由于HTTP / 2),因此简单,快速且安全。而且很容易将python节点移至另一台机器。