在处理字符串时,charAt和toCharArray的选择。

没有通用的最佳性能方式。charAt进行边界检查(但是可以进行优化),而toCharArray则使用了临时空间。

当VM无法消除边界时,使用toCharArray可能会更快。

有关更多信息,请参见这里PPT74-78页。

在上面的文档中给出了测试和解释。

Q: Should I copy out the char[] array or not? 我是否应该复制char[]数组?

A: If you don’t need performance, both approaches are the question of style. 如果你不关心性能,两种方法只是风格问题。

Q: I care about performance, should I copy out the char[] array? 我关心性能,是否应该复制char[]数组?

A: You should, in non-trivial case. 是,在特殊情况下

Q: What is considered non-trivial case? 什么情况?

A: Non-local control flow, volatile reads, etc. that break commonning. 非本地控制流、易失性读取等会破坏通用性。

Q: This sucks. There is no universal best-performance way? 真糟糕,没有通用的最佳方法?

A: (silence was the answer, and Engineer left enligthened) (没有回复,并且离开 ) == 滚

关于JVM消除边界优化参考:JVM编译优化技术:数组边界检查消除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值