kadircet added inline comments.

================
Comment at: clang-tools-extra/clangd/ClangdLSPServer.cpp:46
 
+// Tracks end-to-end latency of high level lsp calls.
+constexpr trace::Metric LSPLatencies("lsp_latencies",
----------------
sammccall wrote:
> sammccall wrote:
> > comment should mention the label schema if it's not configured 
> > programmatically
> > 
> > (You could also do a trick of having a StringLiteral parameter for the 
> > label, even if all you store is `bool WantsLabel` or nothing at all)
> units. We should decide whether units go in the metric name or just a comment.
> (You could also do a trick of having a StringLiteral parameter for the label, 
> even if all you store is bool WantsLabel or nothing at all)

did that and put an assertion to ensure labels are provided when needed and 
vice versa.


================
Comment at: clang-tools-extra/clangd/ClangdServer.cpp:366
+// Tracks number of renamed symbols per invocation.
+constexpr trace::Metric RenamedSymbolCounts("renamed_symbol_counts",
+                                            trace::Metric::Distribution);
----------------
sammccall wrote:
> sammccall wrote:
> > We're not counting symbols, we're counting occurrences.
> > rename_occurrences?
> static? and below
why? i thought constexpr already enforced internal linkage(at least for top 
level decls).

are you suggesting moving it into the function body and marking static 
constexpr?


================
Comment at: clang-tools-extra/clangd/ClangdServer.cpp:475
         if (!Selections)
           return CB(Selections.takeError());
         llvm::Optional<llvm::Expected<Tweak::Effect>> Effect;
----------------
sammccall wrote:
> we return early here, skipping the metric increment, but not for 
> error-conditions below.
> 
> We should be either measuring attempts or successes, consistently.
> (For attempts, can do this at the top of applyTweak)
yes i was trying to record only the successful executions. but attempts sounds 
better.


================
Comment at: clang-tools-extra/clangd/TUScheduler.cpp:148
   /// return a null unique_ptr wrapped into an optional.
   llvm::Optional<std::unique_ptr<ParsedAST>> take(Key K) {
+    // Record metric after unlocking the mutex.
----------------
sammccall wrote:
> you could consider passing the metric in here so we can distinguish between 
> retrieval for diagnostics and retrieval for actions
did that. apart from tracking read/diag access it is also important to not 
track accesses when we are trying to evict the cache.


================
Comment at: clang-tools-extra/clangd/support/Trace.cpp:222
+  llvm::Optional<WithContextValue> WithLatency;
+  if (LatencyMetric) {
+    using Clock = std::chrono::high_resolution_clock;
----------------
sammccall wrote:
> don't we want a catch-all metric so we get the existing span latencies in 
> some form?
i put a metric to track all spans that wasn't created with an explicit metric.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D78429



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

Reply via email to