saugustine added a comment.

In D150805#4397940 <https://reviews.llvm.org/D150805#4397940>, @rupprecht wrote:

> In D150805#4350849 <https://reviews.llvm.org/D150805#4350849>, @JDevlieghere 
> wrote:
>
>> I also like Jordan's rate limiting idea. In my mind that should be a 
>> property of the broadcaster. Different tools (e.g. vscode vs the command 
>> line) could specify different values when register a listener.
>
> This makes sense: we could augment `lldb_private::Listener` with additional 
> members that keep track of when the last broadcast time was, and if we're 
> rate limiting. Then we could change the implementation of 
> `Listener::GetEvent(lldb::EventSP &event_sp, const Timeout<std::micro> 
> &timeout)` to continuously churn through `m_events`, returning the most 
> recent one by the time the rate limiting window is over, and discarding any 
> intermediate ones in between.
>
> One thing I'm not sure of though is how we'll avoid an unnecessary pause for 
> rate limiting on the last item. This patch avoids that because it checks 
> `data->GetCompleted() != data->GetTotal()` to decide if we should actually 
> rate limit. In the generic case, how does the listener know that an event it 
> returns is the final one, and that it should ignore the rate limiting delay?
>
> I think we could address that by adding a `bool m_important` member to 
> `lldb::Event`, and then it would be up to the broadcaster to set that to true 
> for the last one (or any intermediate ones that are similarly important & 
> should be immediately shown, e.g. warnings/errors). Would that be reasonable?

The later a decision the decision not to update is made, the more work is 
wasted. Even the fairly simple solution that checked time in a somewhat 
expensive way (via the misnamed getCurrentTime that also gets memory used) 
ended up being slower overall. In my opinion, the problem is that a single-die 
is too small a unit of work to be worth reporting on.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D150805/new/

https://reviews.llvm.org/D150805

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to