从Golang的exec packaqe加速对python程序的访问

时间:2019-03-20 23:43:33

标签: python go exec low-latency

我需要有关从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不会减少它。

谢谢

1 个答案:

答案 0 :(得分:0)

方法1:简单的HTTP服务器和客户端

方法2:本地套接字或管道

方法3:共享内存

方法4:GRPC服务器和客户端

实际上,我更喜欢通过流方式使用GRPC方法,它将保持连接(由于HTTP / 2),因此简单,快速且安全。而且很容易将python节点移至另一台机器。