Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Grails文件上传:Tomcat内存消耗_Performance_Grails_File Upload_Tomcat6 - Fatal编程技术网

Performance Grails文件上传:Tomcat内存消耗

Performance Grails文件上传:Tomcat内存消耗,performance,grails,file-upload,tomcat6,Performance,Grails,File Upload,Tomcat6,在上传文件时,我们注意到一些重要的RAM使用情况。我很期待,但是内存释放的速度似乎很慢。显然,当RAM过低时,这会导致整个系统的速度减慢 除了添加更多RAM之外,还有什么可以做的,来帮助提高文件上传的一般性能和RAM使用率,或者在上传完成后GC对象的速率?Tomcat6中的服务器设置?Grails本身有什么吗?您是如何处理文件上传的,如Grails手册所述?如果您希望相当多的并发文件上载(相当大的大小)非常消耗内存,那么这对您来说可能不够好 在我看来,你想让你的应用程序将上传的内容保存在磁盘上,

在上传文件时,我们注意到一些重要的RAM使用情况。我很期待,但是内存释放的速度似乎很慢。显然,当RAM过低时,这会导致整个系统的速度减慢


除了添加更多RAM之外,还有什么可以做的,来帮助提高文件上传的一般性能和RAM使用率,或者在上传完成后GC对象的速率?Tomcat6中的服务器设置?Grails本身有什么吗?

您是如何处理文件上传的,如Grails手册所述?如果您希望相当多的并发文件上载(相当大的大小)非常消耗内存,那么这对您来说可能不够好

在我看来,你想让你的应用程序将上传的内容保存在磁盘上,而不是保存在内存中(在它将文件内容传递给你的控制器之前)


Grails在后台使用Commons文件上传。在您的例子中,编写一个控制器,以比常规grails方式更复杂的方式进行处理可能更实际。也许API是您想要的,或者(向下滚动到“资源清理”),但使用的是磁盘存储而不是内存。我认为您可以在控制器操作中使用该页面上的代码。Commons Fileupload已经在您的类路径上了

是的,我正在用“Grails”的方法进行上传,然后将文件保存到磁盘。所以在我的Grails控制器中,如果我只使用链接到的API,那么它将绕过Grails方式?我想我唯一不知道的是,在我的控制器执行时Grails完成了多少工作。另外,在调试请求时,文件似乎已经存储在磁盘上,而不是内存中。因此,我不清楚如何通过直接使用FileUpload API绕过Grails。需要澄清一下。另外,我的文件项列表使用您提供的链接中提供的代码示例返回为空。更多信息。我在搜索时遇到了这个问题:这表明Grails已经将文件保存到磁盘,而不是存储在内存中。似乎如果没有一个常规的旧Servlet,我无法改变它在Grails控制器中的工作方式。这意味着我也不能执行清理。奇怪的是,这些文件甚至没有那么大。最大12MB。Tomcat运行在4GB的机器上,并有2GB专用于它。Tomcat在一个人上传了几次之后就窒息了。除了@Hanswestbeek的回答之外,下面是你如何开始这样做的-