有效地反序列化大型数据结构

时间:2015-06-21 21:11:56

标签: c# asp.net asp.net-mvc

首先,我是网络开发的新手,但我无法在任何地方找到类似的问题。

我最近构建的Web应用程序使用机器学习并对服务器进行Ajax调用。每当进行Ajax调用时,我的控制器会反序列化我的训练集,这对于ML来说相对较小,但是足够大以至于需要一些时间(25MB?)。这导致了客户端的大量等待,并且可能需要20-30秒才能读入内存,训练我的朴素贝叶斯模型并创建预测。

我倾向于在运行时创建一个static readonly训练集对象,只是将它保存在Controller的内存中,以便在Ajax调用时,用户只等待2秒左右,但我不确定这会对其他表现领域产生什么样的影响。

我正在使用Mono,这意味着我无法使用OleDB来读取.xlsx(请参阅this问题)并且必须在每次通话时读取.csv到DataTable

我的问题有两个:

  1. 关于在内存中保存大型数据结构以避免这个难题的最佳做法是什么?

  2. 首先有更有效的方法将这些数据存储/读入内存吗?

  3. 如果这是常识或之前已经得到回答,我很抱歉;如果是的话,请指导我找到相应的问题/答案。

0 个答案:

没有答案