पर 25 बार धीमी परीक्षण विधि मेरे पास एक विधि है जो सिम्युलेटर की तुलना में डिवाइस (आईफोन 3 जी) में अविश्वसनीय रूप से धीमी परीक्षण चलाती है।आईओएस: डिवाइस बनाम सिम्युलेटर
जबकि सिम्युलेटर विधि के लगभग 100 निष्पादन को 1 सेकंड में संभाल सकता है, डिवाइस केवल 4 बार एक सेकंड में विधि को सोचा जा सकता है।
क्या यह इतना sloooow बना सकता है?
कोड: नोट: विधि दो तारीखों (किसी ईवेंट की आरंभ तिथि और समाप्ति तिथि) से मानव अनुकूल स्ट्रिंग की गणना करती है।
-(void)calculateDiaDeInicioYFinTexto
{
NSLog(@"inicio");
NSAutoreleasePool *localPool = [[NSAutoreleasePool alloc] init];
NSMutableString *auxString = [NSMutableString string];
NSLocale *currLocale = [NSLocale currentLocale];
NSString *stringFormatDay = [NSDateFormatter dateFormatFromTemplate:@"d"
options:0
locale:currLocale];
NSString *stringFormatDayMonth = [NSDateFormatter dateFormatFromTemplate:@"dMMMM"
options:0
locale:currLocale];
NSString *stringFormatDayMonthYear = [NSDateFormatter dateFormatFromTemplate:@"dMMMMYYYY"
options:0
locale:currLocale];
NSDateFormatter *formatterDay = [[NSDateFormatter alloc] init];
[formatterDay setDateFormat:stringFormatDay];
[formatterDay setLocale:currLocale];
NSDateFormatter *formatterDayMonth = [[NSDateFormatter alloc] init];
[formatterDayMonth setDateFormat:stringFormatDayMonth];
[formatterDayMonth setLocale:currLocale];
NSDateFormatter *formatterDayMonthYear = [[NSDateFormatter alloc] init];
[formatterDayMonthYear setDateFormat:stringFormatDayMonthYear];
[formatterDayMonthYear setLocale:currLocale];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponentsNow = [calendar components:(NSYearCalendarUnit |
NSMonthCalendarUnit |
NSDayCalendarUnit)
fromDate:[NSDate date]];
NSDateComponents *dateComponentsInicio = [calendar components:(NSYearCalendarUnit |
NSMonthCalendarUnit |
NSDayCalendarUnit)
fromDate:self.diaDeInicio];
NSDate *diaDeInicioTimeless = [calendar dateFromComponents:dateComponentsInicio];
NSDateComponents *dateComponentsFin = [calendar components:(NSYearCalendarUnit |
NSMonthCalendarUnit |
NSDayCalendarUnit)
fromDate:self.diaDeFin];
NSDate *diaDeFinTimeless = [calendar dateFromComponents:dateComponentsFin];
if ([diaDeInicioTimeless isEqualToDate:diaDeFinTimeless]) {
// dates are the same
if (dateComponentsInicio.year == dateComponentsNow.year) {
// date is in the current year
[auxString appendFormat:@"%@", [formatterDayMonth stringFromDate:self.diaDeInicio]];
} else {
// date is in another year
[auxString appendFormat:@"%@", [formatterDayMonthYear stringFromDate:self.diaDeInicio]];
}
} else {
// dates are different
if (dateComponentsInicio.year == dateComponentsFin.year) {
// years are the same
if (dateComponentsInicio.month == dateComponentsFin.month) {
// Months are the same
if (dateComponentsInicio.year == dateComponentsNow.year) {
// date is in the current year
[auxString appendFormat:@"%@ - %@",
[formatterDay stringFromDate:self.diaDeInicio],
[formatterDayMonth stringFromDate:self.diaDeFin]];
} else {
// date is in another year
[auxString appendFormat:@"%@ - %@",
[formatterDay stringFromDate:self.diaDeInicio],
[formatterDayMonthYear stringFromDate:self.diaDeFin]];
}
} else {
// Months are different
if (dateComponentsInicio.year == dateComponentsNow.year) {
// date is in the current year
[auxString appendFormat:@"%@ - %@",
[formatterDayMonth stringFromDate:self.diaDeInicio],
[formatterDayMonth stringFromDate:self.diaDeFin]];
} else {
// date is in another year
[auxString appendFormat:@"%@ - %@",
[formatterDayMonth stringFromDate:self.diaDeInicio],
[formatterDayMonthYear stringFromDate:self.diaDeFin]];
}
}
} else {
// Years are different
[auxString appendFormat:@"%@ - %@",
[formatterDayMonthYear stringFromDate:self.diaDeInicio],
[formatterDayMonthYear stringFromDate:self.diaDeFin]];
}
}
self.diaDeInicioYFinTexto = auxString;
[formatterDay release];
[formatterDayMonth release];
[formatterDayMonthYear release];
[localPool release];
NSLog(@"Fin");
}
डिवाइस सिम्युलेटर के बाद बहुत धीमा है ... इस प्रकार नाम सिम्युलेटर और एम्यूलेटर नहीं है। क्या यह एक उल्लेखनीय प्रदर्शन मुद्दा है? क्या आपने टाइम प्रोफाइलर (डिवाइस के साथ) चलाया है? –