我在web上部署了一个模型,但对于来自用户应用程序的每个调用,都会创建一个新实例并将其加载到内存中,当几个用户同时使用该应用程序时,会达到内存限制。我发现的一个解决方案是,必须在应用程序级别而不是函数级别初始化模型,为此,我必须创建全局变量。还有一个选项是应用程序上下文。问题是哪一个适合我这里的问题。我在不同的文件中初始化模型,然后在应用程序中导入它。py
文件,其中有与用户交互的flask函数。若我必须使用全局变量,我需要用全局变量初始化模型还是在导入模型的地方使用它?
您所处的轨道是正确的,您列出的方法是有效的——根据用例的不同,一种方法可能比另一种方法更好。作为一个概念,您需要使用单例模式。
Singleton模式将确保在任何给定点上只存在一个类/函数实例,从而控制内存消耗。为此,您需要确保函数是无状态的,即给定一组输入参数,它应该在不改变不同请求的输出的情况下给出输出。
烧瓶中单例上有很多线程,我就不重复了。这里有一个起点如何在烧瓶微框架中创建一个单例对象