我有一个Jetty服务器,用于我正在开发的应用程序的websocket连接。唯一的问题是Jetty消耗了太多的虚拟内存(!2.5 of的虚拟内存)和大约650RES。
我的问题是,如上所述,大多数内存(大约12 of )不是堆大小,因此分析它并理解发生了什么变得更加困难。
关于如何理解12 Do的消耗以及如何找出内存泄漏或服务器的任何其他问题,您有什么建议吗?
我想证明我所说的虚拟内存是什么意思(因为我的理解可能是错误的)。当我运行top时,虚拟内存是"VIRT“。下面是我得到的结果:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIM
我知道IQueryable的优点是在服务器上运行过滤器,而不是像IEnumerable那样在内存中加载所有记录,但是在代码中,这到底是什么样子,例如,如果我有以下代码:
var data = context.Books.Where(x => x.Id > 930);
如果我有1000个记录,那么它将只加载70个记录,为了迭代它们,我将data转换为List:
var list = data.ToList(); //has only 70 records
但是,如果IEnumerable必须先通过IQueryable,即获得上面示例的IEnumerable版本,那么它加载所有记录的情
在将更大的文件上传到我的jetty服务器时,我遇到了一些问题。
我将上传为多部分/表单数据,并使用scalatra的FileUploadSupport从请求中获取文件(如下所示)
class foo extends ScalatraServlet with FileUploadSupport {
configureMultipartHandling(MultipartConfig(maxFileSize = Some(1073741824)))
post("/upload") {
//{1}
... //(VALIDATION AND USER LOGI
我们使用的是Moria0.99和java驱动程序2.7.3,我想知道使用fetch逐个获取记录和使用asList检索结果之间有什么不同(假设有足够的内存通过asList检索记录)。
我们遍历一个大型集合,而使用fetch时,我有时会在fetch操作期间遇到服务器上的cursor not found exception,所以我需要执行另一个命令才能继续,这可能是什么原因?
1-)fetch the record
2-)do some calculation on it
3-)+save it back to database again
4-)fetch another record an
假设我有一些数据需要大约每10秒从服务器获取一次。我将有一个通过AJAX获取数据的函数,然后调用setTimeout再次调用此函数:
function GetData(){
$.ajax({
url: "data.json",
dataType: "json",
success: function(data){
// do somthing with the data
setTimeout(GetData, 10000);
},
error: funct