1

しばらく前に書いたコードを高速化しようとしています。

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 オブジェクトを取り、それらをピクセルごとに比較して違いを探します。

コードまたはおそらく別のアプローチに関するアドバイスはありますか?

4

1 に答える 1