关于MultipartConfig fileSizeThreshold的建议



我有一个Servlet,带有以下注释,非常基本。

@MultipartConfig
 (
      fileSizeThreshold = 1024 * 1024 * 1, // 1 MB
      maxFileSize = 1024 * 1024 * 30, // 30 MB
      maxRequestSize = 1024 * 1024 * 35, // 35 MB
      location = "/somewhere"
  )

我发布这篇文章的原因是设置fileSizeThreshold。据我所知,fileSizeThreshold设置了在将文件写入磁盘之前将其保存在内存中的阈值。我知道默认值是0,在上面的代码片段中,一旦传入文件达到1mb,就会开始将其写入磁盘。

这种设置有什么意义?在写入之前增加内存中的文件量有好处吗?

我有一个应用程序,80%的文件上传是<5mb,但在25-30mb0mb

我在MultipartConfig上找到的每一篇文章都描述了fileSizeThreshold的功能,但没有描述如何/何时使用它……有人对上一段中的文件要求有什么建议吗?如果有区别的话,我们在ubuntu盒子上运行glassfish4。

提前感谢!

fileSizeThreshold的想法有点误导,因为它是一种简单的机制,但它的实际用例似乎非常罕见,这会让您怀疑是否正确理解了属性。

您所说的这是一个文件将被持久化到磁盘的点,这是正确的。请注意,默认情况下,这是0,因此默认情况下文件将被写入磁盘,这可能是您99%的时间都想要的。

当您的文件使用寿命较短并且以较高的速率进入时,fileSizeThreshold就派上了用场,因此将文件持久化到磁盘会带来显著的性能开销。您可以将此参数设置为0以上,以节省一些磁盘i/o。

与总是将文件保存在内存中的布尔值相比,阈值之所以重要,是为了给自己一个安全网,让自己不在内存中保存太大的文件(原因显而易见)。

相关内容

  • 没有找到相关文章

最新更新