performance problem with EqualsBuilder.append() -----------------------------------------------
Key: LANG-340 URL: https://issues.apache.org/jira/browse/LANG-340 Project: Commons Lang Issue Type: Improvement Affects Versions: 2.3 Reporter: Ramil Israfilov We are using EqualsBuilder for construction of equals() method in our javabeans. For example we have a class: public class SimpleRecord{ String name; String label; ... public boolean equals(Object object) { return new EqualsBuilder().append(this.label, rhs.label).append( this.getName(), rhs.getName()).isEquals(); } So far so good. But one of our applications uses extensively Stack to push/pop SimpleRecord bean. And it was working very slow. After profiling of application we saw that most of the time JVM spent in equals() method of SimpleRecord. (it is called during peek() which is calling remove() from Stack) If we replace EqualsBuilder by following code our application worked 3 times faster ! Could you make some optimizations ? if (!(object instanceof SimpleRecord)) { return false; } SimpleRecord rhs = (SimpleRecord) object; if (this.getName() == null && rhs.getName() != null) { return false; } else if (rhs.getName() == null && this.getName() != null) { return false; } else if (this.label == null && rhs.label != null) { return false; } else if (rhs.label == null && this.label != null) { return false; } else if (this.label == null && rhs.label == null) { return this.getName().equals(rhs.getName()); } else return this.getName().equals(rhs.getName()) && this.label.equals(rhs.label); -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]