Remove redundant calls of toString() (original) (raw)
Andrew Haley aph at redhat.com
Tue Apr 29 10:03:40 UTC 2014
- Previous message: Remove redundant calls of toString()
- Next message: Remove redundant calls of toString()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 04/29/2014 10:58 AM, David Holmes wrote:
On 29/04/2014 7:40 PM, Andrew Haley wrote:
On 04/28/2014 07:57 AM, David Holmes wrote:
On 28/04/2014 1:05 PM, Otávio Gonçalves de Santana wrote:
In my opinion not, because Objects.requireNonNull is more readable than just string.toString. This way is more understandable which field is required and doesn't impact on performance.
An invocation of requireNonNull is potentially more expensive than the implicit null check that happens with foo.toString(). It's also potentially cheaper: a cbnz versus a fetch from memory with a few cycles pipeline delay. Can you elaborate please? AFAIK implicit null checks have no overhead when the object reference is not null.
I'm sorry, that remark was too simplistic.
If you have to read the data at that time, I agree. And it might do some useful prefetching. But if you're just checking the object is non-null it may be cheaper to do (o != null) . I have noticed that some Java code does (o.getClass()) or something similar to get an implicit check rather than if (o != null)...
Interpreted it is slower and the bytecode footprint is larger.
IIRC the guidelines for use of requireNonNull in the JDK code was for replacing explicit null checks in precondition checking, not implicit ones. Anyway I don't find these changes compelling.
I agree.
Andrew.
- Previous message: Remove redundant calls of toString()
- Next message: Remove redundant calls of toString()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]