diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2011-12-18 11:42:19 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2011-12-18 11:42:19 +0100 |
| commit | 0ffc68892d75a9d6570354d0f04b0cfda7d978cd (patch) | |
| tree | 1ad32112381b223a8974604021ba055b13f21c52 /main/src/cgeo/geocaching/cgBase.java | |
| parent | 74967130b8eab2f957fa252bfa31aded93b941ef (diff) | |
| download | cgeo-0ffc68892d75a9d6570354d0f04b0cfda7d978cd.zip cgeo-0ffc68892d75a9d6570354d0f04b0cfda7d978cd.tar.gz cgeo-0ffc68892d75a9d6570354d0f04b0cfda7d978cd.tar.bz2 | |
performance: faster opening of lists (~20%), better scrolling
* avoid duplicate distance calculation in distance sorter
* avoid String.format() wherever possible
* avoid lookups with constant values in database
* avoid reinitializing database all the time
Diffstat (limited to 'main/src/cgeo/geocaching/cgBase.java')
| -rw-r--r-- | main/src/cgeo/geocaching/cgBase.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java index c8f7a9c..3656694 100644 --- a/main/src/cgeo/geocaching/cgBase.java +++ b/main/src/cgeo/geocaching/cgBase.java @@ -1674,13 +1674,13 @@ public class cgBase { if (Settings.isUseMetricUnits()) { if (distanceKilometers > 100) { - return String.format("%.0f", Double.valueOf(Math.round(distanceKilometers))) + " km"; + return String.format("%d", Math.round(distanceKilometers)) + " km"; } else if (distanceKilometers > 10) { return String.format("%.1f", Double.valueOf(Math.round(distanceKilometers * 10.0) / 10.0)) + " km"; } else if (distanceKilometers > 1) { return String.format("%.2f", Double.valueOf(Math.round(distanceKilometers * 100.0) / 100.0)) + " km"; } else if (distanceKilometers > 0.1) { - return String.format("%.0f", Double.valueOf(Math.round(distanceKilometers * 1000.0))) + " m"; + return String.format("%d", Math.round(distanceKilometers * 1000.0)) + " m"; } else if (distanceKilometers > 0.01) { return String.format("%.1f", Double.valueOf(Math.round(distanceKilometers * 1000.0 * 10.0) / 10.0)) + " m"; } else { @@ -1689,13 +1689,13 @@ public class cgBase { } else { final float miles = distanceKilometers / IConversion.miles2km; if (distanceKilometers > 100) { - return String.format("%.0f", Double.valueOf(Math.round(miles))) + " mi"; + return String.format("%d", Math.round(miles)) + " mi"; } else if (distanceKilometers > 0.5) { return String.format("%.1f", Double.valueOf(Math.round(miles * 10.0) / 10.0)) + " mi"; } else if (distanceKilometers > 0.1) { return String.format("%.2f", Double.valueOf(Math.round(miles * 100.0) / 100.0)) + " mi"; } else if (distanceKilometers > 0.05) { - return String.format("%.0f", Double.valueOf(Math.round(miles * 5280.0))) + " ft"; + return String.format("%d", Math.round(miles * 5280.0)) + " ft"; } else if (distanceKilometers > 0.01) { return String.format("%.1f", Double.valueOf(Math.round(miles * 5280 * 10.0) / 10.0)) + " ft"; } else { @@ -2554,7 +2554,8 @@ public class cgBase { } static private String formatTimeSpan(final long before) { - return String.format(" (%d ms) ", System.currentTimeMillis() - before); + // don't use String.format in a pure logging routine, it has very bad performance + return " (" + (System.currentTimeMillis() - before) + " ms) "; } static public boolean isSuccess(final HttpResponse response) { |
