Home | History | Annotate | only in /system/netd/tests/benchmarks
Up to higher level directory
NameDateSize
Android.mk21-Aug-20181.6K
AndroidTest.xml21-Aug-20181.2K
connect_benchmark.cpp21-Aug-201813.1K
dns_benchmark.cpp21-Aug-20186.9K
main.cpp21-Aug-2018673
README.md21-Aug-20182.5K

README.md

      1 # NetD benchmarks
      2 
      3 These are benchmarks for libc **connect** and **gethostbyname** functions as hooked by netd.
      4 
      5 ## Infrastructure
      6 
      7 The benchmarks are powered by [google-benchmark](https://github.com/google/benchmark), which records
      8 four statistics:
      9 
     10 <table>
     11   <tr>
     12     <th>Statistic</th>
     13     <th>Meaning</th>
     14   </tr>
     15   <tr>
     16     <th>real_time</th>
     17     <td>Mean wall-clock time taken for each iteration of the function under test to complete. This
     18         includes any time spent in other processes.
     19         <p>
     20         Some of the **connect** benchmarks override this by implementing their own timings, but
     21         the semantics are roughly the same. See connect_benchmark.cpp for details.</td>
     22   </tr>
     23   <tr>
     24     <th>cpu_time</th>
     25     <td>Mean time spent in the current thread during each iteration of the function under test. This
     26         does not include any time spent in other processes or blocking on I/O.
     27         <p>
     28         Since almost all of the functionality we are testing here is in the netd server, not the
     29         client, these timings are not relevant and should be ignored for most purposes.</td>
     30   </tr>
     31   <tr>
     32     <th>iterations</th>
     33     <td>The number of runs of the test function that were executed, across all threads, in order for
     34         the test to reach the minimum amount of time run. Most tests here define 'minimum time run'
     35         in terms of real time or 'manual time', rather than CPU time, for the reasons above.
     36         <p>
     37         This should be roughly inversely proportional to **real_time** for single-threaded
     38         benchmarks and also somewhat proportional to the number of threads used.</td>
     39   </tr>
     40   <tr>
     41     <th>label</th>
     42     <td>Field that the benchmark can fill with an arbitrary string.
     43         <p>
     44         For graphing purposes, a few of the benchmarks in this directory store the 90th-percentile
     45         latency in this field for comparison against the mean latency
     46         (it's only possible to plot one other value apart from mean).
     47         <p>
     48         If the graphing ecosystem ever becomes advanced enough to plot multiple outputs from one
     49         label, it might be more useful to log every decile to get a better picture of how spiky
     50         things are.</td>
     51 </table>
     52 
     53 # Methods currently being benchmarked
     54 
     55 ## connect()
     56 
     57 - Documented in [connect\_benchmark.cpp](connect_benchmark.cpp)
     58 
     59 ## getaddrinfo()
     60 
     61 - Documented in [dns\_benchmark.cpp](dns_benchmark.cpp)
     62 
     63 
     64 <style type="text/css">
     65   tr:nth-child(2n+1) {
     66     background: lightgrey;
     67   }
     68   td,th {
     69     text-align: left;
     70     vertical-align: top;
     71   }
     72 </style>
     73