制作一个在服务器上连续使用相同python代码的实时应用程序,库会在每次运行时导入,并消耗内存和时间

制作一个在服务器上连续使用相同python代码的实时应用程序,库会在每次运行时导入,并消耗内存和时间,python,amazon-web-services,server,real-time,libraries,Python,Amazon Web Services,Server,Real Time,Libraries,我正在Android上开发一个实时导航应用程序,它从用户的智能手机上收集相关数据,并在服务器上用数据ping一个python代码。python代码然后返回用户的实时位置。现在,考虑到我需要一次又一次地运行相同的python代码,需要加载相同的库(我使用的库有numpy、MySQLdb、sys、rpy2)。现在,每次我运行代码时,都会消耗一些内存和时间来加载这些库。对我来说,大部分的记忆和时间都被消耗在这上面了。这不必要地增加了服务器成本和执行时间,因为我正在利用资源加载相同的库。Python中是

我正在Android上开发一个实时导航应用程序,它从用户的智能手机上收集相关数据,并在服务器上用数据ping一个python代码。python代码然后返回用户的实时位置。现在,考虑到我需要一次又一次地运行相同的python代码,需要加载相同的库(我使用的库有numpy、MySQLdb、sys、rpy2)。现在,每次我运行代码时,都会消耗一些内存和时间来加载这些库。对我来说,大部分的记忆和时间都被消耗在这上面了。这不必要地增加了服务器成本和执行时间,因为我正在利用资源加载相同的库。Python中是否有某种方法可以将我的库永久加载到服务器的RAM中并降低成本。甚至可以只使用Python。我原以为这是一个常见的问题,但每次我用谷歌搜索它时,我都会发现非常不连贯的答案。请建议最好的方法。我缺少一点关于服务器端编码的最佳实践,也许我的问题是其中的一部分,而不是Python编码的一部分。谢谢


PS:当我使用AWS时,我认为AWS Lambda应该自动处理它,我将我的代码实现为AWS Lambda包,但实际上我看到性能下降。

您通常有一个响应Android应用程序的web API。这些API通常由web服务器后面的Python应用程序提供。在Web服务器后面运行Python应用程序的一种方法是使用。所有可用的WSGI实现都只需启动一次应用程序(有时是其中的一部分),并向已经运行的应用程序发送请求。维护正在运行的实例等工作基本上都已完成

如果你有一个Python作业,请求时生成,完成后退出,听起来像是一个设计糟糕的自制webapp。在这种情况下,您应该将其移植到WSGI


另一方面,如果您有需要与web服务异步完成的作业(执行时间长的作业等),则应该启动第二个Python守护进程,该守护进程通过一个服务从您的web应用程序接收作业。在这种情况下,守护进程也将在启动时启动,并持续运行,直到您关闭服务器。

您通常有一个响应Android应用程序的web API。这些API通常由web服务器后面的Python应用程序提供。在Web服务器后面运行Python应用程序的一种方法是使用。所有可用的WSGI实现都只需启动一次应用程序(有时是其中的一部分),并向已经运行的应用程序发送请求。维护正在运行的实例等工作基本上都已完成

如果你有一个Python作业,请求时生成,完成后退出,听起来像是一个设计糟糕的自制webapp。在这种情况下,您应该将其移植到WSGI


另一方面,如果您有需要与web服务异步完成的作业(执行时间长的作业等),则应该启动第二个Python守护进程,该守护进程通过一个服务从您的web应用程序接收作业。在这种情况下,守护进程也将在启动时启动,并持续运行,直到您关闭服务器。

谢谢这是有帮助的,我阅读了有关WSGI的内容,我认为它应该符合我的目的。如果可能的话,您可以概述在python中使用WSGI时需要注意的过程和任何示例代码/库/最佳实践。这就是教程和文档的目的。只要读一下Flask和Django的文档,你就可以开始了。谢谢,这很有帮助,我读了关于WSGI的文章,我认为它应该符合我的目的。如果可能的话,您可以概述在python中使用WSGI时需要注意的过程和任何示例代码/库/最佳实践。这就是教程和文档的目的。只要阅读Flask和Django的文档,你就可以开始了。