Uploaded image for project: 'DeviceMap'
  1. DeviceMap
  2. DMAP-107

Performance optimizations for DeviceMapClient.classify()

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.1.0 Java
    • 1.2.0 Java
    • Java Client
    • 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

      Attachments

        1. classify.diff
          7 kB
          Volkan Yazici

        Activity

          People

            vy Volkan Yazici
            vy Volkan Yazici
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: