Skip to content

Commit b020a1b

Browse files
author
Robert Bartoszewski
committed
Tracer refactor: removed dead code and excessive logging
1 parent 3b62bce commit b020a1b

File tree

7 files changed

+5
-263
lines changed

7 files changed

+5
-263
lines changed

Sources/BugsnagPerformance/Private/EarlyConfiguration.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ NS_ASSUME_NONNULL_BEGIN
3030

3131
@property(nonatomic, readonly) BOOL enableSwizzling;
3232
@property(nonatomic, readonly) BOOL swizzleViewLoadPreMain;
33-
@property(nonatomic, readwrite) BOOL appWasLaunchedPreWarmed;
3433

3534
@end
3635

Sources/BugsnagPerformance/Private/EarlyConfiguration.mm

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,8 @@ - (instancetype) initWithBundleDictionary:(NSDictionary *)dict {
1818
}
1919
id swizzleViewLoadPreMain = [dict valueForKeyPath:@"bugsnag.performance.swizzleViewLoadPreMain"];
2020
_swizzleViewLoadPreMain = swizzleViewLoadPreMain != nil && [swizzleViewLoadPreMain boolValue];
21-
_appWasLaunchedPreWarmed = [NSProcessInfo.processInfo.environment[@"ActivePrewarm"] isEqualToString:@"1"];
2221
}
2322

24-
BSGLogDebug(@"BSGEarlyConfiguration.enableSwizzling = %d", self.enableSwizzling);
25-
BSGLogDebug(@"BSGEarlyConfiguration.swizzleViewLoadPreMain = %d", self.swizzleViewLoadPreMain);
26-
BSGLogDebug(@"BSGEarlyConfiguration.appWasLaunchedPreWarmed = %d", self.appWasLaunchedPreWarmed);
27-
2823
return self;
2924
}
3025

Sources/BugsnagPerformance/Private/SpanFactory/ViewLoad/ViewLoadSpanFactoryCallbacks.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@
1111

1212
typedef BugsnagPerformanceSpan *_Nullable(^GetViewLoadParentSpanCallback)(void);
1313
typedef BOOL (^IsViewLoadInProgressCallback)(void);
14-
typedef void (^OnViewLoadSpanStarted)(BugsnagPerformanceSpan * _Nonnull, NSString * _Nonnull);
14+
typedef void (^OnViewLoadSpanStarted)(NSString * _Nonnull);
1515

1616
@interface ViewLoadSpanFactoryCallbacks: NSObject
1717

1818
@property (nonatomic, nullable) GetViewLoadParentSpanCallback getViewLoadParentSpan;
1919
@property (nonatomic, nullable) IsViewLoadInProgressCallback isViewLoadInProgress;
2020
@property (nonatomic, nullable) OnViewLoadSpanStarted onViewLoadSpanStarted;
21-
@property (nonatomic, nullable) SpanLifecycleCallback onViewLoadPhaseSpanStarted;
2221

2322
@end

Sources/BugsnagPerformance/Private/SpanFactory/ViewLoad/ViewLoadSpanFactoryImpl.mm

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@
116116
spanAttributes,
117117
conditionsToEndOnClose);
118118
if (callbacks_.onViewLoadSpanStarted != nil) {
119-
callbacks_.onViewLoadSpanStarted(span, className);
119+
callbacks_.onViewLoadSpanStarted(className);
120120
}
121121
return span;
122122
}
@@ -136,9 +136,6 @@
136136
BSGTriStateUnset,
137137
attributes,
138138
conditionsToEndOnClose);
139-
if (callbacks_.onViewLoadPhaseSpanStarted != nil) {
140-
callbacks_.onViewLoadPhaseSpanStarted(span);
141-
}
142139
return span;
143140
}
144141

Sources/BugsnagPerformance/Private/Tracer.h

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ class Tracer: public PhasedStartup {
4949
void (^onSpanStarted)()) noexcept
5050
: spanStackingHandler_(spanStackingHandler)
5151
, sampler_(sampler)
52-
, prewarmSpans_([NSMutableArray new])
5352
, blockedSpans_([NSMutableArray new])
5453
, potentiallyOpenSpans_(std::make_shared<WeakSpansList>())
5554
, batch_(batch)
@@ -69,7 +68,7 @@ class Tracer: public PhasedStartup {
6968

7069
~Tracer() {};
7170

72-
void earlyConfigure(BSGEarlyConfiguration *) noexcept;
71+
void earlyConfigure(BSGEarlyConfiguration *) noexcept {}
7372
void earlySetup() noexcept {}
7473
void configure(BugsnagPerformanceConfiguration *config) noexcept {
7574
plainSpanFactory_->setAttributeCountLimit(config.attributeCountLimit);
@@ -102,16 +101,12 @@ class Tracer: public PhasedStartup {
102101
NSArray<BugsnagPerformanceSpanCondition *> *conditionsToEndOnClose) noexcept;
103102

104103
void cancelQueuedSpan(BugsnagPerformanceSpan *span) noexcept;
105-
106-
void onPrewarmPhaseEnded(void) noexcept;
107104

108105
void abortAllOpenSpans() noexcept;
109106

110107
// Sweep must be called periodically to avoid a buildup of dead pointers.
111108
void sweep() noexcept;
112109

113-
void callOnSpanEndCallbacks(BugsnagPerformanceSpan *span);
114-
115110
private:
116111
Tracer() = delete;
117112
std::shared_ptr<Sampler> sampler_;
@@ -122,10 +117,7 @@ class Tracer: public PhasedStartup {
122117
std::shared_ptr<ViewLoadSpanFactoryImpl> viewLoadSpanFactory_;
123118
std::shared_ptr<NetworkSpanFactoryImpl> networkSpanFactory_;
124119

125-
std::atomic<bool> willDiscardPrewarmSpans_{false};
126120
BugsnagPerformanceEnabledMetrics *enabledMetrics_{[BugsnagPerformanceEnabledMetrics withAllEnabled]};
127-
std::mutex prewarmSpansMutex_;
128-
NSMutableArray<BugsnagPerformanceSpan *> *prewarmSpans_;
129121
NSMutableArray<BugsnagPerformanceSpan *> *blockedSpans_;
130122
BSGPrioritizedStore<BugsnagPerformanceSpanStartCallback> *onSpanStartCallbacks_;
131123
BSGPrioritizedStore<BugsnagPerformanceSpanEndCallback> *onSpanEndCallbacks_;
@@ -142,13 +134,13 @@ class Tracer: public PhasedStartup {
142134
PlainSpanFactoryCallbacks *createPlainSpanFactoryCallbacks() noexcept;
143135
ViewLoadSpanFactoryCallbacks *createViewLoadSpanFactoryCallbacks() noexcept;
144136
void createFrozenFrameSpan(NSTimeInterval startTime, NSTimeInterval endTime, BugsnagPerformanceSpanContext *parentContext) noexcept;
145-
void markPrewarmSpan(BugsnagPerformanceSpan *span) noexcept;
146137
void onSpanEndSet(BugsnagPerformanceSpan *span);
147138
void onSpanClosed(BugsnagPerformanceSpan *span);
148139
BugsnagPerformanceSpanCondition *onSpanBlocked(BugsnagPerformanceSpan *blocked, NSTimeInterval timeout);
149140
void reprocessEarlySpans(void);
150141
void processFrameMetrics(BugsnagPerformanceSpan *span) noexcept;
151142
bool shouldInstrumentRendering(BugsnagPerformanceSpan *span) noexcept;
152143
void callOnSpanStartCallbacks(BugsnagPerformanceSpan *span);
144+
void callOnSpanEndCallbacks(BugsnagPerformanceSpan *span);
153145
};
154146
}

Sources/BugsnagPerformance/Private/Tracer.mm

Lines changed: 1 addition & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -18,39 +18,27 @@
1818

1919
using namespace bugsnag;
2020

21-
void
22-
Tracer::earlyConfigure(BSGEarlyConfiguration *config) noexcept {
23-
willDiscardPrewarmSpans_ = config.appWasLaunchedPreWarmed;
24-
}
25-
2621
void
2722
Tracer::preStartSetup() noexcept {
28-
BSGLogDebug(@"Tracer::preStartSetup()");
2923
reprocessEarlySpans();
3024
}
3125

3226
void Tracer::reprocessEarlySpans(void) {
33-
BSGLogDebug(@"Tracer::reprocessEarlySpans()");
3427
// Up until now nothing was configured, so all early spans have been kept.
3528
// Now that configuration is complete, force-drain all early spans and re-process them.
3629
auto toReprocess = batch_->drain(true);
37-
BSGLogDebug(@"Tracer::reprocessEarlySpans: Reprocessing %zu early spans", toReprocess.count);
3830
for (BugsnagPerformanceSpan *span in toReprocess) {
39-
BSGLogDebug(@"Tracer::reprocessEarlySpans: Try to re-add span (%@) to batch", span.name);
4031
if (span.state != SpanStateEnded) {
41-
BSGLogDebug(@"Tracer::reprocessEarlySpans: span %@ has state %d, so ignoring", span.name, span.state);
4232
continue;
4333
}
4434
if (!sampler_->sampled(span)) {
45-
BSGLogDebug(@"Tracer::reprocessEarlySpans: span %@ was not sampled (P=%f), so dropping", span.name, sampler_->getProbability());
4635
[span abortUnconditionally];
4736
continue;
4837
}
4938
[span forceMutate:^() {
5039
callOnSpanEndCallbacks(span);
5140
}];
5241
if (span.state == SpanStateAborted) {
53-
BSGLogDebug(@"Tracer::reprocessEarlySpans: span %@ was rejected in the OnEnd callbacks, so dropping", span.name);
5442
[span abortUnconditionally];
5543
continue;
5644
}
@@ -61,13 +49,11 @@
6149

6250
void
6351
Tracer::abortAllOpenSpans() noexcept {
64-
BSGLogDebug(@"Tracer::abortAllOpenSpans()");
6552
potentiallyOpenSpans_->abortAllOpen();
6653
}
6754

6855
void
6956
Tracer::sweep() noexcept {
70-
BSGLogDebug(@"Tracer::sweep()");
7157
constexpr unsigned minEntriesBeforeCompacting = 10000;
7258
if (potentiallyOpenSpans_->count() >= minEntriesBeforeCompacting) {
7359
potentiallyOpenSpans_->compact();
@@ -83,16 +69,12 @@
8369
}
8470

8571
void Tracer::onSpanEndSet(BugsnagPerformanceSpan *span) {
86-
BSGLogTrace(@"Tracer::onSpanEndSet: for span %@", span.name);
87-
8872
if (shouldInstrumentRendering(span)) {
8973
span.endFramerateSnapshot = [frameMetricsCollector_ currentSnapshot];
9074
}
9175
}
9276

9377
void Tracer::onSpanClosed(BugsnagPerformanceSpan *span) {
94-
BSGLogTrace(@"Tracer::onSpanClosed: for span %@", span.name);
95-
9678
@synchronized (span) {
9779
for (BugsnagPerformanceSpanCondition *condition in span.conditionsToEndOnClose) {
9880
[condition closeWithEndTime:span.endTime];
@@ -102,30 +84,25 @@
10284
spanStackingHandler_->onSpanClosed(span.spanId);
10385

10486
if(span.state == SpanStateAborted) {
105-
BSGLogTrace(@"Tracer::onSpanClosed: span %@ has been aborted, so ignoring", span.name);
10687
return;
10788
}
10889

10990
if (!sampler_->sampled(span)) {
110-
BSGLogTrace(@"Tracer::onSpanClosed: span %@ was not sampled (P=%f), so dropping", span.name, sampler_->getProbability());
11191
[span abortUnconditionally];
11292
return;
11393
}
11494

11595
if (span != nil && span.state == SpanStateEnded) {
11696
callOnSpanEndCallbacks(span);
11797
if (span.state == SpanStateAborted) {
118-
BSGLogTrace(@"Tracer::onSpanClosed: span %@ was rejected in the OnEnd callbacks, so dropping", span.name);
11998
return;
12099
}
121100
}
122101

123102
if (shouldInstrumentRendering(span)) {
124-
BSGLogTrace(@"Tracer::onSpanClosed: Processing framerate metrics for span %@", span.name);
125103
processFrameMetrics(span);
126104
}
127105

128-
BSGLogTrace(@"Tracer::onSpanClosed: Adding span %@ to batch", span.name);
129106
batch_->add(span);
130107
}
131108

@@ -134,7 +111,6 @@
134111
return nil;
135112
}
136113
if (span.state != SpanStateOpen && !span.isBlocked) {
137-
BSGLogDebug(@"Tracer::onSpanBlocked: span %@ has state %d, so ignoring", span.name, span.state);
138114
return nil;
139115
}
140116
BugsnagPerformanceSpanCondition *condition = [BugsnagPerformanceSpanCondition conditionWithSpan:span onClosedCallback:^(BugsnagPerformanceSpanCondition *c, CFAbsoluteTime endTime) {
@@ -157,7 +133,6 @@
157133
[condition addOnDeactivatedCallback:^(BugsnagPerformanceSpanCondition *c) {
158134
__strong BugsnagPerformanceSpan *strongSpan = c.span;
159135
if (strongSpan.state == SpanStateEnded && !strongSpan.isBlocked) {
160-
BSGLogTrace(@"Tracer::onSpanBlocked: Processing unblocked span %@", span.name);
161136
@synchronized (this->blockedSpans_) {
162137
[this->blockedSpans_ removeObject:strongSpan];
163138
this->conditionTimeoutExecutor_->cancelTimeout(c);
@@ -166,7 +141,6 @@
166141
}
167142
}];
168143
this->conditionTimeoutExecutor_->sheduleTimeout(condition, timeout);
169-
BSGLogTrace(@"Tracer::onSpanBlocked: Blocked span %@ with timeout %f", span.name, timeout);
170144
return condition;
171145
}
172146

@@ -189,7 +163,6 @@
189163
return;
190164
}
191165
if (span.state != SpanStateEnded) {
192-
BSGLogDebug(@"Tracer::callOnSpanEndCallbacks: span %@ has state %d, so ignoring", span.name, span.state);
193166
return;
194167
}
195168

@@ -204,13 +177,11 @@
204177
shouldDiscardSpan = false;
205178
}
206179
if(shouldDiscardSpan) {
207-
BSGLogDebug(@"Tracer::callOnSpanEndCallbacks: span %@ OnEnd callback returned false. Dropping...", span.name);
208180
[span abortUnconditionally];
209181
return;
210182
}
211183
}
212184
CFAbsoluteTime callbacksEndTime = CFAbsoluteTimeGetCurrent();
213-
BSGLogDebug(@"Tracer::callOnSpanEndCallbacks: Adding span %@ to batch", span.name);
214185
[span internalSetAttribute:@"bugsnag.span.callbacks_duration" withValue:@(intervalToNanoseconds(callbacksEndTime - callbacksStartTime))];
215186
}
216187

@@ -273,22 +244,13 @@
273244
}
274245

275246
void Tracer::cancelQueuedSpan(BugsnagPerformanceSpan *span) noexcept {
276-
BSGLogTrace(@"Tracer::cancelQueuedSpan(%@)", span.name);
277247
if (span) {
278248
[span abortUnconditionally];
279249
batch_->removeSpan(span.traceIdHi, span.traceIdLo, span.spanId);
280250
[blockedSpans_ removeObject:span];
281251
}
282252
}
283253

284-
void Tracer::markPrewarmSpan(BugsnagPerformanceSpan *span) noexcept {
285-
BSGLogTrace(@"Tracer::markPrewarmSpan(%@)", span.name);
286-
std::lock_guard<std::mutex> guard(prewarmSpansMutex_);
287-
if (willDiscardPrewarmSpans_) {
288-
[prewarmSpans_ addObject:span];
289-
}
290-
}
291-
292254
PlainSpanFactoryCallbacks *
293255
Tracer::createPlainSpanFactoryCallbacks() noexcept {
294256
__block auto blockThis = this;
@@ -345,21 +307,13 @@
345307
return blockThis->spanStackingHandler_->hasSpanWithAttribute(@"bugsnag.span.category", @"view_load");
346308
};
347309

348-
auto onSpanStarted = ^(BugsnagPerformanceSpan * _Nonnull span) {
349-
if (blockThis->willDiscardPrewarmSpans_) {
350-
blockThis->markPrewarmSpan(span);
351-
}
352-
};
353-
354-
auto onViewLoadSpanStarted = ^(BugsnagPerformanceSpan * _Nonnull span, NSString * _Nonnull className) {
310+
auto onViewLoadSpanStarted = ^(NSString * _Nonnull className) {
355311
if (onViewLoadSpanStarted_ != nil) {
356312
onViewLoadSpanStarted_(className);
357313
}
358-
onSpanStarted(span);
359314
};
360315

361316
callbacks.onViewLoadSpanStarted = onViewLoadSpanStarted;
362-
callbacks.onViewLoadPhaseSpanStarted = onSpanStarted;
363317

364318
return callbacks;
365319
}
@@ -376,20 +330,6 @@
376330
[span endWithAbsoluteTime:endTime];
377331
}
378332

379-
void
380-
Tracer::onPrewarmPhaseEnded(void) noexcept {
381-
BSGLogDebug(@"Tracer::onPrewarmPhaseEnded()");
382-
std::lock_guard<std::mutex> guard(prewarmSpansMutex_);
383-
willDiscardPrewarmSpans_ = false;
384-
for (BugsnagPerformanceSpan *span: prewarmSpans_) {
385-
// Only cancel unfinished prewarm spans
386-
if (span.state == SpanStateOpen) {
387-
cancelQueuedSpan(span);
388-
}
389-
}
390-
[prewarmSpans_ removeAllObjects];
391-
}
392-
393333
bool
394334
Tracer::shouldInstrumentRendering(BugsnagPerformanceSpan *span) noexcept {
395335
switch (span.metricsOptions.rendering) {

0 commit comments

Comments
 (0)