aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/cgBase.java
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2011-12-18 11:42:19 +0100
committerBananeweizen <bananeweizen@gmx.de>2011-12-18 11:42:19 +0100
commit0ffc68892d75a9d6570354d0f04b0cfda7d978cd (patch)
tree1ad32112381b223a8974604021ba055b13f21c52 /main/src/cgeo/geocaching/cgBase.java
parent74967130b8eab2f957fa252bfa31aded93b941ef (diff)
downloadcgeo-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.java11
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) {