AWSS3から700KBのイメージファイルをダウンロードするのに約7.5秒かかります。
AWSS3からイメージをダウンロードするためにこのメソッドを作成しました。
+ (UIImage *)downloadImageFromPath:(NSString *)path
{
NSDate *methodStart = [NSDate date];
S3GetObjectRequest *getObjectRequest = [[S3GetObjectRequest alloc] initWithKey:path withBucket:AWS_BUCKET];
AmazonS3Client *s3 = [[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY_ID withSecretKey:SECRET_KEY];
S3GetObjectResponse *response;
@try
{
response = [s3 getObject:getObjectRequest];
}
@catch(NSException* ex)
{
return [UIImage imageNamed:@"blank.jpg"];
}
NSData *data = response.body;
UIImage *image = [UIImage imageWithData:data];
NSDate *methodFinish = [NSDate date];
NSTimeInterval executionTime = [methodFinish timeIntervalSinceDate:methodStart];
NSLog(@"executionTime = %f", executionTime);
return image;
}
メソッドの最初と最後にコードを追加しました。
上で述べたように、完了するまでに約7.5秒かかります。
優先度の高いGCDを使用してバックグラウンドで実行していDISPATCH_QUEUE_PRIORITY_HIGH
ますが、実行時にキューに他に何もありません。
なぜそんなに時間がかかるのか誰もが知っていますか?より多くの情報を提供させていただきます。