XINBlockTimer 0.1.0

XINBlockTimer 0.1.0

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Dec 2014

Maintained by Unclaimed.


Downloads

Total604
Week0
Month0

Installs

Apps3
powered by Segment

GitHub

Stars15
Watchers2
Forks0
Issues0
Contributors1
Pull Requests0

Code

Files2
LOCLines of Code 45


  • By
  • Jason Moore

Time blocks of code to identify performance bottlenecks.

Usage

Wrap the code you want to time in +[XINBlockTimer timeBlock:].

#import "XINBlockTimer.h"

[XINBlockTimer timeBlock:^{

    // For example: time creating an attributed string with HTML //
    NSString *html = @"<style>p {font: 12px HelveticaNeue; text-align: center;}</style><p>This is some <b>bold</b> text.</p>";

    NSAttributedString *text = [[NSAttributedString alloc] initWithData:[html dataUsingEncoding:NSUTF8StringEncoding]
                                                                options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                                                                          NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)}
                                                                          documentAttributes:nil
                                                                          error:nil];

    label2.attributedText = text;

} withName:@"attributed string from HTML"];

Output via NSLog:

attributed string from HTML: 0.174494 sec

If you track the returned NSTimeInterval, you can pass them to a reporting method that summarizes your findings.

NSTimeInterval t1 = [XINBlockTimer timeBlock:^{ ... }];
NSTimeInterval t2 = [XINBlockTimer timeBlock:^{ ... }];

[XINBlockTimer compareTimeInterval:t1 withTimeInterval:t2];

Sample Output:

First interval is 100.520548x faster
Difference between intervals is insignificant: 0.000002

See the enclosed example project for more usage examples.

License

XINBlockTimer is available under the MIT license. See the LICENSE file for more info.