blob: 695cd4ae0d087b2434249d1b08a51cdb3bd8d9ef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
package cgeo.geocaching;
import cgeo.geocaching.utils.Log;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import org.apache.commons.lang3.StringEscapeUtils;
import android.os.SystemClock;
import android.test.AndroidTestCase;
import android.text.Html;
public class HtmlPerformanceTest extends AndroidTestCase {
private String input;
@Override
protected void setUp() throws Exception {
super.setUp();
input = "Weißer Tiger";
}
public void testUnescape() {
assert (unescapeAndroid().equals("Weißer Tiger"));
assert (unescapeApache().equals("Weißer Tiger"));
}
private String unescapeApache() {
return StringEscapeUtils.unescapeHtml4(input);
}
private String unescapeAndroid() {
return Html.fromHtml(input).toString();
}
public void testUnescapePerformance() {
final int runs = 100;
measure("unescape Apache", new Runnable() {
@Override
public void run() {
for (int i = 0; i < runs; i++) {
unescapeApache();
}
}
});
measure("unescape Android", new Runnable() {
@Override
public void run() {
for (int i = 0; i < runs; i++) {
unescapeAndroid();
}
}
});
}
@SuppressFBWarnings("DM_GC")
private static long measure(String label, Runnable runnable) {
System.gc();
final long start = SystemClock.elapsedRealtime();
runnable.run();
final long end = SystemClock.elapsedRealtime();
Log.d(label + ": " + (end - start) + " ms");
return end - start;
}
}
|