美文网首页
工作经验总结

工作经验总结

作者: 洪兴掌管一代 | 来源:发表于2023-01-13 15:07 被阅读0次

文件上传

1.编写上传大文件的功能时, 不要将文件内容或者部分内容读到内存中,比如将流读入字节数组或字符串。应该直接作为请求参数。比如通过aws s3的presign url上传文件。

2.map用完了 及时清理,否则累积造成OOM。

3.大文件multipart上传时遇到问题(工作中目前最大挑战,上传超大文件)

一些part在上传时会抛异常“ java.net.SocketException: Broken pipe (Write failed)“,在重试几次后会成功。

根本原因:写代码粗心,给每一个线程创建了一个独有的线程池,导致有几个线程就需要有几个线程池(太蠢了)。我想,应该是jvm发现有很多持续活跃一定时间(因为part小、也就是线程很快会执行完时不会出错),并且又利用率不高的线程池时,会进行回收,然后导致线程没执行完成就被停掉。

我最初怀疑是part对象太多,触发了jvm垃圾回收。但是当part的大小很小(6MB)的时候,即使线程池很多也不会有问题。而part大时(128MB),我检测了GC,发现并没有full GC,所以应该对象会被放在老年代,不会被回收掉。但线程池却像是被回收了。不清楚JVM GC对于线程池的回收算法是否有特别之处。

4.方法的任何入参都应该是immutable的, 即都不应该在方法体内被修改。这是代码逻辑的设计原则

相关文章

  • 四十五(故土-总结)

    写于在故乡辞去工作后的某一天 工作经验总结工作七个月来的工作经验总结1.入职前尽可能的明确一切需知的信息,工作内容...

  • iOS开发经验总结

    iOS开发经验总结 iOS开发经验总结

  • iOS开发经验

    多年iOS开发经验总结(一) 多年iOS开发经验总结(二) 多年iOS开发经验总结(三)

  • 工作经验总结

    第一条:审核办法或者合同的时候,要看各合同的主体是否适格,权利授权以及违约责任的约定是否合法。 第二条:喝酒可以,...

  • 工作经验总结

    1. 老师为人师表,需要责任心,可是也不能自我捆绑,或者被学生家长社会道德捆绑,毕竟老师能做的也有限,所以不必太过...

  • 工作经验总结

    根据最近的一段时间对自己做一个小的总结: 项目进行中时: 1:对项目时间的预估要加一到两天的时间 2:坚持上帝模式...

  • 工作经验总结

    1.编写上传大文件的功能时, 不要将文件内容或者部分内容读到内存中,比如将流读入字节数组或字符串。应该直接作为请求...

  • 多年iOS开发经验总结

    多年iOS开发经验总结 多年iOS开发经验总结

  • ios 工作经验总结

    1 播放一张张连续的图片,例如刷新动画 2 tableView 使用总结 3 让导航控制器pop回指定的控制器 4...

  • 工作和学习经验总结

    从大学毕业到现在也已经有不少的时间了,这段时间个人感觉成长了很多。想分享一下,希望这些能够对需要的人有帮助。我是一...

网友评论

      本文标题:工作经验总结

      本文链接:https://www.haomeiwen.com/subject/adkwcdtx.html