[PATCH v2] Implement the ability to set/unset environment variables to GDBserver when starting the inferior
Simon Marchi
simon.marchi@polymtl.ca
Sat Aug 12 08:11:00 GMT 2017
On 2017-08-12 06:33, Sergio Durigan Junior wrote:
>> Actually, if we expected the user to set thousands of environment
>> variables and needed it to be fast to set and unset variables, it
>> would be good to use std::set because of the O(log(N))
>> lookups/insertions/removals, which matters more when you have a lot of
>> elements. But when you just have a few elements, the constant cost is
>> more significant. A vector-based set would have O(N) complexity for
>> these operations (at least for insertions and removals, for lookups it
>> depends if it is sorted), which would be bad if we had thousands of
>> elements. But since we expect to have just a few, it would likely be
>> faster than std::set's constant cost.
>
> You mean std::vector's constant cost, right?
No, I meant std::set's constant cost, although it wasn't clear. I meant
the constant hidden by the big-O notation. The complexity of removing
from a set may be O(log(N)), but we could also write it as "C1 *
log(N)", where C1 is a constant. For a vector, it would take "C2 * N",
where C2 is a constant. If C1 is much larger than C2, then using a set
only starts being interesting with large Ns. That does a much better
job at explaining than I do:
http://lafstern.org/matt/col1.pdf
Thanks,
Simon
More information about the Gdb-patches
mailing list