diff --git a/MTDemo/MTDemo.xcodeproj/xcshareddata/xcbaselines/A4DB9EEB1FA709A400826A8F.xcbaseline/911AE3C1-0374-4D8D-86ED-1B16997177D6.plist b/MTDemo/MTDemo.xcodeproj/xcshareddata/xcbaselines/A4DB9EEB1FA709A400826A8F.xcbaseline/911AE3C1-0374-4D8D-86ED-1B16997177D6.plist index 9d6b7f6..d801dab 100644 --- a/MTDemo/MTDemo.xcodeproj/xcshareddata/xcbaselines/A4DB9EEB1FA709A400826A8F.xcbaseline/911AE3C1-0374-4D8D-86ED-1B16997177D6.plist +++ b/MTDemo/MTDemo.xcodeproj/xcshareddata/xcbaselines/A4DB9EEB1FA709A400826A8F.xcbaseline/911AE3C1-0374-4D8D-86ED-1B16997177D6.plist @@ -11,7 +11,7 @@ com.apple.XCTPerformanceMetric_WallClockTime baselineAverage - 1.17 + 0.118 baselineIntegrationDisplayName Local Baseline diff --git a/MTDemo/MTDemo/SuperStub.m b/MTDemo/MTDemo/SuperStub.m index b6238dc..3cc1697 100644 --- a/MTDemo/MTDemo/SuperStub.m +++ b/MTDemo/MTDemo/SuperStub.m @@ -11,8 +11,8 @@ @implementation SuperStub - (void)foo:(NSDate *)arg { -// NSLog(@"SuperStub foo: %@", arg); - [NSThread sleepForTimeInterval:0.001]; + NSLog(@"SuperStub foo: %@", arg); +// [NSThread sleepForTimeInterval:0.0001]; } + (void)foo:(NSDate *)arg { diff --git a/MessageThrottle.podspec b/MessageThrottle.podspec index aa42bec..68348a2 100644 --- a/MessageThrottle.podspec +++ b/MessageThrottle.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "MessageThrottle" -s.version = "1.2.1" +s.version = "1.2.2" s.summary = "A lightweight Objective-C message throttle and debounce library." s.description = <<-DESC MessageThrottle is a lightweight, simple library for controlling frequency of forwarding Objective-C messages. You can choose to control existing methods per instance or per class. It's an implementation of function throttle/debounce developed with Objective-C runtime. diff --git a/MessageThrottle/MessageThrottle.m b/MessageThrottle/MessageThrottle.m index dee55b7..6c74d0f 100644 --- a/MessageThrottle/MessageThrottle.m +++ b/MessageThrottle/MessageThrottle.m @@ -159,7 +159,7 @@ - (instancetype)init self = [super init]; if (self) { _targetSELs = [NSMapTable weakToStrongObjectsMapTable]; - _aliasSelectorCache = [NSMapTable mapTableWithKeyOptions:NSPointerFunctionsOpaqueMemory | NSMapTableObjectPointerPersonality valueOptions:NSPointerFunctionsOpaqueMemory | NSMapTableObjectPointerPersonality]; + _aliasSelectorCache = [NSMapTable mapTableWithKeyOptions:NSPointerFunctionsOpaqueMemory | NSMapTableObjectPointerPersonality valueOptions:NSPointerFunctionsOpaqueMemory | NSMapTableObjectPointerPersonality]; pthread_mutex_init(&mutex, NULL); pthread_mutex_init(&alias_selector_mutex, NULL); } diff --git a/README.md b/README.md index db34cf3..31deb77 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ MessageThrottle is a lightweight, simple library for controlling frequency of fo - [Objective-C Message Throttle and Debounce](http://yulingtianxia.com/blog/2017/11/05/Objective-C-Message-Throttle-and-Debounce/) - [Associated Object and Dealloc](http://yulingtianxia.com/blog/2017/12/15/Associated-Object-and-Dealloc/) +- [MessageThrottle Performance Benchmark and Optimization](http://yulingtianxia.com/blog/2018/05/31/MessageThrottle-Performance-Benchmark-and-Optimization/) ## 🌟 Features