sebastien created MNG-7899:
------------------------------
Summary: Various memory usage improvements
Key: MNG-7899
URL: https://issues.apache.org/jira/browse/MNG-7899
Project: Maven
Issue Type: Improvement
Components: Design, Patterns & Best Practices, Embedding,
General, Logging
Affects Versions: 4.0.0-alpha-2
Reporter: sebastien
Some optimisations can be applied to the code to reduce the use of temporary
objects.
Typical improvements identified are:
* reduce scope of temporary objects creation to avoid creating when not
needed. Example :
{code:java}
public String toString() {
StringBuilder sb = new StringBuilder(512);
if (isEmpty()) {
return "empty";
}
for (MetadataGraphVertex v : vertices) {
.....{code}
can be replaced by
{code:java}
public String toString() {
if (isEmpty()) {
return "empty";
}
StringBuilder sb = new StringBuilder(512);
for (MetadataGraphVertex v : vertices) {
.....{code}
* Reuse StringBuilder objects in loops by setting its length to zero
* Use the StringBuilder.append() with index to avoid String.substring().
Example:
{code:java}
int idx = resourceName.lastIndexOf('/');
buffer.append(idx < 0 ? resourceName : resourceName.substring(idx + 1)); {code}
can be replaced by
{code:java}
int idx = resourceName.lastIndexOf('/');
if (idx < 0) {
buffer.append(resourceName);
} else {
buffer.append(resourceName, idx + 1, resourceName.length());
} {code}
* Replace dynamic string creation static constants when possible
* Avoid creating temporary strings with + operator when the final destination
can be used instead, like PrintStream.print() method
* Avoir using StringBuilder.append() method and util method MessageUtils.a()
when the final destination can be used instead, like PrintStream.print() method
--
This message was sent by Atlassian Jira
(v8.20.10#820010)