> On March 24, 2015, 9:32 p.m., Michael Park wrote:
> > src/common/http.cpp, lines 179-187
> > <https://reviews.apache.org/r/32419/diff/1/?file=903656#file903656line179>
> >
> > Just a suggestion for an alternative pattern here.
> >
> > Rather than
> >
> > ```
> > {
> > JSON::Array array;
> > array.values.reserve(size);
> > /* Fill in array... */
> > object.values["statuses"] = std::move(array);
> > }
> > ```
> >
> > How about:
> >
> > ```
> > {
> > JSON::Array &array = object.values["statuses"];
> > array.values.reserve(size);
> > /* Fill in array... */
> > }
> > ```
> >
> > Seems to me like this code is just as readable and doing no work is
> > better than doing some work.
>
> Ben Mahler wrote:
> `object.values["statuses"]` is a variant JSON::Value (defaults to
> JSON::Null IIUC), not a JSON::Array, does that compile..?
I see. I didn't try compiling it. To make it work I guess it would have to look
something like:
```
{
object.values["statuses"] = JSON::Array();
JSON::Array &array = object.values["statuses"].as<JSON::Array>();
array.values.reserve(size);
/* Fill in array... */
}
```
which I don't like either. Never mind.
- Michael
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/32419/#review77657
-----------------------------------------------------------
On March 24, 2015, 11:42 p.m., Ben Mahler wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/32419/
> -----------------------------------------------------------
>
> (Updated March 24, 2015, 11:42 p.m.)
>
>
> Review request for mesos and Jie Yu.
>
>
> Bugs: MESOS-2353
> https://issues.apache.org/jira/browse/MESOS-2353
>
>
> Repository: mesos
>
>
> Description
> -------
>
> This is a simple attempt at improvement for MESOS-2353 in the interim of
> writing a more comprehensive JSON benchmark.
>
> Per the discussion on [r/31700](https://reviews.apache.org/r/31700/), moves
> here avoid the very expensive copies of the large JSON objects so long as
> variant has move assignment defined (or generated) and our objects have move
> generated.
>
> It appears that variant has move assignment and our json classes can have
> move assignment generated, so this should help.
>
>
> Diffs
> -----
>
> src/common/http.cpp d3b7ca3727567ff252f978720f518ad0912e533b
> src/master/http.cpp e1a87d646e9690e39a9e84ae383622018ce80401
>
> Diff: https://reviews.apache.org/r/32419/diff/
>
>
> Testing
> -------
>
> make check
>
> No benchmarking performed given the analysis from Michael in
> [r/31700](https://reviews.apache.org/r/31700/). I will also be trying this
> out on our large production clusters.
>
>
> Thanks,
>
> Ben Mahler
>
>