しばらく前に書いたコードを高速化しようとしています。
Xcode でインストゥルメントを使用すると、主なボトルネックはこのメソッド、特に getPixel 呼び出しにあることがわかりました。
- (BOOL)fasterCompareImage:(NSBitmapImageRep *)imageRepA IdenticalTo:(NSBitmapImageRep *)imageRepB {
// look for obvious differences ie: width and height differences...
NSSize imageASize = [imageRepA size];
NSSize imageBSize = [imageRepB size];
if( (imageASize.width != imageBSize.width) || (imageASize.height != imageBSize.height) ) {
return NO;
}
// now start looking at each point
NSUInteger pixelOfA[3];
NSUInteger pixelOfB[3];
for (int row = 0; row < (imageASize.height); row = row +1) {
for(int col = 0; col < (imageASize.width); col = col +1) {
[imageRepA getPixel:pixelOfA atX:row y:col];
[imageRepB getPixel:pixelOfB atX:row y:col];
if(pixelOfA[1] != pixelOfB[1]) {
return NO;
}
}
}
return YES;
}
基本的に、私のメソッドは 2 つの NSBitmapImageRep オブジェクトを取り、それらをピクセルごとに比較して違いを探します。
コードまたはおそらく別のアプローチに関するアドバイスはありますか?