【发布时间】:2013-05-31 20:17:30
【问题描述】:
我在带有 apache/mod_mono 的 linux 机器上有一个 ServiceStack RESTful Web 服务。
public DataSetResponse Get(DataRequest req)
{
DataSetResponse Response = new DataSetResponse();
DataSet BigData = new DataSet();
this.Status = this.DataFetcher(ref BigData);
Response.Data = BigData;
Response.Status = this.Status;
System.Threading.Thread.Sleep(30000);
return Response;
}
当线程休眠时,我可以看到 mono 是 top 报告的内存的 8%。 30 多秒后,当单声道再次具有 cpu 活动时,内存上升到 90%,并引发内存不足异常。 Mono 会继续运行,但不会释放其内存。
在小型数据集(大小的 1/10)上,它似乎工作正常,并且单声道具有 1% 的内存。我认为内存增长发生在数据对象被序列化为 Json 之前,然后才流式传输到客户端。
这是正确的吗?更重要的是,我该如何解决这个问题?
【问题讨论】:
标签: serialization mono servicestack