> On 十月 21, 2016, 8:23 p.m., Benjamin Mahler wrote:
> > Ship It!

Do you have any comments on the test result? Shall we use a small range to 
reduce the time of this? The `contains` for a boundry case is using 38+s.

```
[ RUN      ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/5
Took 38.23282secs to perform 1 'superset.contains(subset)' operations on 
superset resources ports(*):[1-1, 3-3, 5-5, 7-7, 9-9, 11-11, 13-13... contains 
subset resources ports(*):[1-1, 3-3, 5-5, 7-7, 9-9, 11-11, 13-13...
[       OK ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/5 
(38279 ms)
```

Checked the API of `operator<=` for `Value::Ranges`, and found it is already 
doing some optimization for this: return false if got one non matched range, 
but as my case is a boundry case, so the elapse time is a bit long.

```
bool operator<=(const Value::Ranges& _left, const Value::Ranges& _right)
{
  Value::Ranges left;
  coalesce(&left, {_left});

  Value::Ranges right;
  coalesce(&right, {_right});

  for (int i = 0; i < left.range_size(); i++) {
    // Make sure this range is a subset of a range in right.
    bool matched = false;
    for (int j = 0; j < right.range_size(); j++) {
      if (left.range(i).begin() >= right.range(j).begin() &&
          left.range(i).end() <= right.range(j).end()) {
        matched = true;
        break;
      }
    }
    if (!matched) {
      return false;
    }
  }

  return true;
}
```


- Guangya


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/50551/#review153595
-----------------------------------------------------------


On 十月 21, 2016, 11:27 p.m., Guangya Liu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/50551/
> -----------------------------------------------------------
> 
> (Updated 十月 21, 2016, 11:27 p.m.)
> 
> 
> Review request for mesos, Benjamin Mahler, Klaus Ma, and Jiang Yan Xu.
> 
> 
> Bugs: MESOS-5700
>     https://issues.apache.org/jira/browse/MESOS-5700
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Added benchmark test for `Resources::contains`.
> 
> 
> Diffs
> -----
> 
>   src/tests/resources_tests.cpp 27c52e72764fc6db0a510c367a9659596e723504 
> 
> Diff: https://reviews.apache.org/r/50551/diff/
> 
> 
> Testing
> -------
> 
> make
> make check
> 
> ```
> ./bin/mesos-tests.sh  --benchmark 
> --gtest_filter="*Resources_Contains_BENCHMARK_Test.Contains/*"
> [==========] Running 9 tests from 1 test case.
> [----------] Global test environment set-up.
> [----------] 9 tests from ResourcesContains/Resources_Contains_BENCHMARK_Test
> [ RUN      ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/0
> Took 16723us to perform 5000 'superset.contains(subset)' operations on 
> superset resources cpus(*):1; gpus(*):1; mem(*):128; disk(*):256 contains 
> subset resources cpus(*):1; mem(*):128
> [       OK ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/0 
> (17 ms)
> [ RUN      ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/1
> Took 9675us to perform 5000 'superset.contains(subset)' operations on 
> superset resources cpus(*):1; mem(*):128 contains subset resources cpus(*):1; 
> gpus(*):1; mem(*):128; disk(*):256
> [       OK ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/1 
> (9 ms)
> [ RUN      ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/2
> Took 10428us to perform 5000 'superset.contains(subset)' operations on 
> superset resources cpus(*):1; mem(*):128 contains subset resources cpus(*):1; 
> mem(*):128
> [       OK ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/2 
> (11 ms)
> [ RUN      ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/3
> Took 2.016892secs to perform 100 'superset.contains(subset)' operations on 
> superset resources ports(*):[1-64000] contains subset resources 
> ports(*):[1-1, 3-3, 5-5, 7-7, 9-9, 11-11, 13-13...
> [       OK ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/3 
> (2041 ms)
> [ RUN      ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/4
> Took 1.322314secs to perform 50 'superset.contains(subset)' operations on 
> superset resources ports(*):[1-1, 3-3, 5-5, 7-7, 9-9, 11-11, 13-13... 
> contains subset resources ports(*):[1-64000]
> [       OK ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/4 
> (1343 ms)
> [ RUN      ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/5
> Took 38.23282secs to perform 1 'superset.contains(subset)' operations on 
> superset resources ports(*):[1-1, 3-3, 5-5, 7-7, 9-9, 11-11, 13-13... 
> contains subset resources ports(*):[1-1, 3-3, 5-5, 7-7, 9-9, 11-11, 13-13...
> [       OK ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/5 
> (38279 ms)
> [ RUN      ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/6
> Took 2.087117secs to perform 100 'superset.contains(subset)' operations on 
> superset resources cpus(*):1; gpus(*):1; mem(*):128; disk(*):256; ... 
> contains subset resources cpus(*):1; mem(*):128; ports(*):[1-1, 3-3, 5-5,...
> [       OK ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/6 
> (2111 ms)
> [ RUN      ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/7
> Took 327807us to perform 50 'superset.contains(subset)' operations on 
> superset resources cpus(*):1; mem(*):128; ports(*):[1-1, 3-3, 5-5,... 
> contains subset resources cpus(*):1; gpus(*):1; mem(*):128; disk(*):256; ...
> [       OK ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/7 
> (351 ms)
> [ RUN      ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/8
> Took 38.7907secs to perform 1 'superset.contains(subset)' operations on 
> superset resources cpus(*):1; mem(*):128; ports(*):[1-1, 3-3, 5-5,... 
> contains subset resources cpus(*):1; mem(*):128; ports(*):[1-1, 3-3, 5-5,...
> [       OK ] ResourcesContains/Resources_Contains_BENCHMARK_Test.Contains/8 
> (38839 ms)
> [----------] 9 tests from ResourcesContains/Resources_Contains_BENCHMARK_Test 
> (83002 ms total)
> 
> [----------] Global test environment tear-down
> [==========] 9 tests from 1 test case ran. (83017 ms total)
> [  PASSED  ] 9 tests.
> ```
> 
> 
> Thanks,
> 
> Guangya Liu
> 
>

Reply via email to