这么做输入文字的网站,大型网站运维公司,网站平台建设的流程,网站建设与维护难不难对象池回收对象总览 在上一篇文章中#xff0c;我说过对象反序列化更快的原因是由于使用了回收对象。 由于两个原因#xff0c;这可能令人惊讶#xff1a;1#xff09;相信如今创建对象是如此之快#xff0c;无关紧要或与回收自己一样快#xff0c;2#xff09;默认情况… 对象池回收对象 总览 在上一篇文章中我说过对象反序列化更快的原因是由于使用了回收对象。 由于两个原因这可能令人惊讶1相信如今创建对象是如此之快无关紧要或与回收自己一样快2默认情况下任何序列化库都不使用回收。 本文探讨了有无回收对象的反序列化。 创建对象不仅较慢而且还会通过将数据从CPU缓存中推出来减慢程序的其余部分。 虽然这涉及反序列化但解析文本或读取二进制文件也是如此因为所执行的操作是相同的。 考试 在此测试中我对1000个Price对象进行反序列化而且还对复制一块数据花费了多长时间。 该副本表示反序列化后应用程序可能必须执行的工作。 测试定时进行一百万次并对结果进行排序。 X轴显示百分比计时。 例如90的值是90的最差值或10的值更高。 如您所见反序列化必须在创建对象时花费更长的时间但是有时会花费很多时间。 这也许并不令人惊讶因为创建对象意味着要做更多的工作并且可能被GC延迟。 但是令人惊讶的是复制数据块的时间增加了。 这表明不仅反序列化速度变慢而且需要数据缓存的任何工作也因此变慢。 这几乎是您在实际应用程序中可能会执行的任何操作 性能测试很少向您显示对应用程序其余部分的影响。 更详细 检查较高的百分位数最长的时间您可以看到如果反序列化必须等待GC则性能始终很差。 在最坏的情况下副本的性能也会大大提高。 代码 回收示例代码 参考 Vanilla Java博客上的JCG合作伙伴 Peter Lawrey 回收对象以提高性能 。 相关文章 Java Secret加载和卸载静态字段 C 或Java高频交易哪个更快 如何在Java中获得类似于C的性能 Java中的低GC使用原语而不是包装器 Java教程和Android教程列表 翻译自: https://www.javacodegeeks.com/2011/11/recycling-objects-to-improve.html对象池回收对象