Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.1.0 Java
-
None
Description
This patch removes redundant DeviceType checks and User-Agent string normalization calls. Performance gain is more than 2x. Check out the devicemap-client-benchmark (introduced in issue DMAP-106) output:
$ export userAgentFile=/path/to/user-agents.txt $ wc -l $userAgentFile 195325 $ java \ -jar devicemap/java/classifier-benchmark/target/devicemap-client-benchmark.jar \ -jvmArgsAppend "-server -XX:+TieredCompilation -XX:+AggressiveOpts -Xms1024m -Xmx4096m -DuserAgentFile=$userAgentFile" \ -wi 5 -i 5 -bm avgt -tu ms -f 3 \ ".*DeviceMapClientBenchmark.*" # Using the most recent trunk. Result: 12079.408 ±(99.9%) 1240.628 ms/op [Average] Statistics: (min, avg, max) = (11232.424, 12079.408, 16011.000), stdev = 1160.484 Confidence interval (99.9%): [10838.781, 13320.036] # Using the enhanced classify(). Result: 5505.355 ±(99.9%) 441.748 ms/op [Average] Statistics: (min, avg, max) = (5060.269, 5505.355, 6508.699), stdev = 413.211 Confidence interval (99.9%): [5063.607, 5947.103]
JVM version: 1.8.0_25
OS: OS X 10.9.5
Processor: 2.6 GHz Intel Core i5