Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions GDPerformanceView.podspec
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
Pod::Spec.new do |s|
s.name = "GDPerformanceView"
s.version = "1.3.1"
s.version = "1.3.2"
s.summary = "Shows FPS, CPU usage, app and iOS versions above the status bar and report FPS and CPU usage via delegate."
s.homepage = "https://github.com/dani-gavrilov/GDPerformanceView"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "Gavrilov Daniil" => "daniilmbox@gmail.com" }
s.platform = :ios, "8.0"
s.ios.deployment_target = "8.0"
s.source = { :git => "https://github.com/dani-gavrilov/GDPerformanceView.git", :tag => "1.3.1" }
s.source = { :git => "https://github.com/dani-gavrilov/GDPerformanceView.git", :tag => "1.3.2" }
s.source_files = "GDPerformanceView/GDPerformanceMonitoring/*"
s.frameworks = "UIKit", "Foundation", "QuartzCore"
s.requires_arc = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@
*/
@property (nonatomic, getter=isDeviceVersionHidden) BOOL deviceVersionHidden;

/**
Change it to update the time interval between each report. Default is 1 sec.
Minimum value is 0.5 sec.
*/
@property (nonatomic) NSTimeInterval updateTimeInterval;

/**
Creates and returns instance of GDPerformanceMonitor, as singleton.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ + (instancetype)sharedInstance {
- (instancetype)init {
self = [super init];
if (self) {
self.updateTimeInterval = 1.0f;
[self subscribeToNotifications];
}
return self;
Expand Down Expand Up @@ -175,6 +176,7 @@ - (void)setupPerformanceView {
[self.performanceView setAppVersionHidden:self.appVersionHidden];
[self.performanceView setDeviceVersionHidden:self.deviceVersionHidden];
[self.performanceView setPerformanceDelegate:self.delegate];
[self.performanceView setUpdateTimeInterval:self.updateTimeInterval];
[self checkAndApplyStatusBarAppearanceWithPrefersStatusBarHidden:self.prefersStatusBarHidden preferredStatusBarStyle:self.preferredStatusBarStyle];

if (self.isPerformanceViewPaused) {
Expand Down Expand Up @@ -225,4 +227,11 @@ - (void)setDeviceVersionHidden:(BOOL)deviceVersionHidden {
}
}

- (void)setUpdateTimeInterval:(NSTimeInterval)updateTimeInterval {
_updateTimeInterval = updateTimeInterval;

if (self.performanceView) {
[self.performanceView setUpdateTimeInterval:updateTimeInterval];
}
}
@end
6 changes: 6 additions & 0 deletions GDPerformanceView/GDPerformanceMonitoring/GDPerformanceView.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@
*/
@property (nonatomic, getter=isDeviceVersionHidden) BOOL deviceVersionHidden;

/**
Change it to update the time interval between each report. Default is 1 sec.
Minimum value is 0.5 sec.
*/
@property (nonatomic) NSTimeInterval updateTimeInterval;

/**
Override this properties to return the desired status bar attributes.

Expand Down
13 changes: 3 additions & 10 deletions GDPerformanceView/GDPerformanceMonitoring/GDPerformanceView.m
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ - (void)setupWindowAndDefaultVariables {
self.screenUpdatesCount = 0;
self.screenUpdatesBeginTime = 0.0f;
self.averageScreenUpdatesTime = 0.017f;
self.updateTimeInterval = 1.0f;

GDWindowViewController *rootViewController = [[GDWindowViewController alloc] init];

Expand Down Expand Up @@ -193,22 +194,14 @@ - (void)displayLinkAction:(CADisplayLink *)displayLink {

CFTimeInterval screenUpdatesTime = self.displayLink.timestamp - self.screenUpdatesBeginTime;

if (screenUpdatesTime >= 1.0) {
CFTimeInterval updatesOverSecond = screenUpdatesTime - 1.0f;
int framesOverSecond = updatesOverSecond / self.averageScreenUpdatesTime;

self.screenUpdatesCount -= framesOverSecond;
if (self.screenUpdatesCount < 0) {
self.screenUpdatesCount = 0;
}

if (screenUpdatesTime >= self.updateTimeInterval) {
[self takeReadings];
}
}
}

- (void)takeReadings {
int fps = self.screenUpdatesCount;
int fps = self.screenUpdatesCount / (self.displayLink.timestamp - self.screenUpdatesBeginTime);
float cpu = [self cpuUsage];

self.screenUpdatesCount = 0;
Expand Down