Dav*_*d B 5 java benchmarking profiling hashcode hprof
我已经使用了多线程程序的基准测试,-agentlib:hprof=cpu=samples
并且惊讶地发现结果中有以下行:
rank self accum count trace method
1 52.88% 52.88% 8486 300050 java.lang.Object.hashCode
Run Code Online (Sandbox Code Playgroud)
我从未在程序中显式调用hashCode().这可能是什么原因?我如何理解这次"浪费"的来源以及它是否正常?
谢谢,大卫
很可能你正在非常密集地使用一个地图,比如HashMap.
HashMap使用它hashCode来分发对象.如果您使用具有此数据结构的许多对象,那么您.equals和您的.hashCode方法的正确实施非常重要.
请参阅:Effective Java Item 8:覆盖equals时始终覆盖hashCode
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |