首先,我是网络开发的新手,但我无法在任何地方找到类似的问题。
我最近构建的Web应用程序使用机器学习并对服务器进行Ajax调用。每当进行Ajax调用时,我的控制器会反序列化我的训练集,这对于ML来说相对较小,但是足够大以至于需要一些时间(25MB?)。这导致了客户端的大量等待,并且可能需要20-30秒才能读入内存,训练我的朴素贝叶斯模型并创建预测。
我倾向于在运行时创建一个static readonly
训练集对象,只是将它保存在Controller的内存中,以便在Ajax调用时,用户只等待2秒左右,但我不确定这会对其他表现领域产生什么样的影响。
我正在使用Mono,这意味着我无法使用OleDB
来读取.xlsx(请参阅this问题)并且必须在每次通话时读取.csv到DataTable
我的问题有两个:
关于在内存中保存大型数据结构以避免这个难题的最佳做法是什么?
首先有更有效的方法将这些数据存储/读入内存吗?
如果这是常识或之前已经得到回答,我很抱歉;如果是的话,请指导我找到相应的问题/答案。