我有一个带有模板方法的类,用于实例化许多其他类,比如一百多个。问题是模板类的编译消耗了大量的内存,比如3GB。我认为这是由于许多模板实例而发生的。只是为了详细说明,实例化的类是 Qt 和 QxOrm 对象。其他人也有这个问题吗?有人建议我如何减少内存消耗?
以下是部分代码:
//The class with template methods
class SGSRequestHandler : public HttpRequestHandler
{
public:
SGSRequestHandler(QObject* parent = 0);
virtual ~SGSRequestHandler();
template<class T>
ResponseInfo processDatabase(ODataRequestInfo<T>& odata, qx::QxSession& session) {...}
template<class T>
ResponseInfo httpGet(ODataRequestInfo<T> &odata, qx::QxSession& session) {...}
...
}
//Here is a example of what I do with de template class:
else if (className == "class1")
rInfo = process<Class1>(request, session);
else if (className == "class2")
rInfo = process<Class2>(request, session);
...
else if (className == "class100")
rInfo = process<Class100>(request, session);