java - 在 Java 中使用 TimeUnit 转换的性能下降
问题描述
我想知道使用 TimeUnit 转换是否有任何性能影响(即使它是最小的)。例如 TimeUnit.MINUTES.toMillis(5) 与 300000
如果这是一个将被频繁调用的方法,并且每次都必须运行 toMillis,它是否会影响性能?或者编译器可能已经设置了一次转换后的值并且再也不会被引用?
解决方案
这是 TimeUnit (JDK 10) 的源代码:http: //hg.openjdk.java.net/jdk10/jdk10/jdk/file/tip/src/java.base/share/classes/java/util/concurrent/时间单元.java
我不能说编译器会做什么,但你最好自己计算值,或者你最好计算和缓存这个值,或者你最好提前创建一个查找表。正如@Turing85 在对您的问题的评论中敏锐地指出的那样,“很难说 JIT 会做什么或不会做什么。或者可能只是有时会做。”
如果您发布一些示例代码来为您的问题提供上下文,而不是孤立地询问toMillis
,您可能会从答案中获得更多好处。可能有更好的方法来解决整体问题,因此在将分钟转换为毫秒时,您不必担心性能等小细节。
推荐阅读
- python - 可执行的python文件输出致命错误信息
- python - 如何计算一个班级的总人数
- web - 使用上传 XML 清单文件自动加载 Office 集中部署的自定义加载项
- javascript - 重新加载页面后如何提交表单
- r - 对具有特定模式的连续数据进行分组
- apache-spark - 针对 Cassandra 数据库获取 spark-submit 作业的 java.util.concurrent.TimeoutException
- bots - Discord.js 有没有办法创建一个循环来创建聊天室
- react-native - 延迟使用 React Native Camera / Expo Camera 捕获图像,设置“处理消息”?
- java - ElasticSeach Auto Complete 使用完成建议器返回完整文档
- python - Python如何修复年份超出范围错误