1

我有一个完整的 web 服务,需要加载经过训练的模型文件并创建一些其他对象,这需要很多时间。因此我只需要这样做一次(在启动 web 服务时)。目前,系统会在每次 Web 服务调用时加载经过训练的文件和其他一些对象,而且成本很高。你能告诉我如何处理这个问题吗?

4

1 回答 1

1

您可以使用单例模式。它用于确保某些资源只创建一次。所以基本上,你可以有一个类,其目的是实例化这些文件并让 web 服务调用这个类,就像这样(取自Wikipedia):

public class Singleton {
    private static volatile Singleton instance = null;
    private static File file1;
    ... 


    private Singleton() 
    {  
        //Load whatever you need here.
    }

    public static Singleton getInstance() {
            if (instance == null) {
                    synchronized (Singleton.class)
                            if (instance == null) {
                                    instance = new Singleton();
                            }
            }
            return instance;
    }

   ...
   //Other getter and setters for your files and other objects

}

然后,在您的网络服务中,您可以执行以下操作:

...
Singleton.getInstance().getSomeFile();
...
于 2012-06-28T10:38:27.680 回答