Tag: 性能

CLLocationManager响应

我有一个应用程序围绕着设备的GPS和来自它的信息。 位置数据准确和最新是非常重要的。 我知道设备受到GPS和GPS的限制,但是我想知道是否有什么可以调整/改善iPhone GPS的性能,特别是在速度方面。 由于位置更新滞后于设备实时位置约3-5秒,所以位置pipe理器报告的速度也落后于实时值。 就我而言,这太长了。 我明白,可能没有什么我可以做的,但有没有人在提高iPhone GPS的响应能力方面取得任何成功? 每一点点都有所作为 编辑1: 正如苹果推荐的,我的位置pipe理器是在单例类中。 在SingletonDataController.m里面: static CLLocationManager* locationManager; locationManager = [CLLocationManager new]; locationManager.distanceFilter = kCLDistanceFilterNone; locationManager.headingFilter = kCLHeadingFilterNone; if(([[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging) || ([[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateFull)) { locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation; } else { locationManager.desiredAccuracy = kCLLocationAccuracyBest; } [sharedSingleton setLocationManager:locationManager]; [locationManager release]; 在MapView.m中(实际使用位置pipe理器的地方): – (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil […]

如何分析线程的堆栈跟踪信息?

我试图监视我的应用程序的性能; 当CPU使用率超载时,我将可疑线程和主线程的堆栈跟踪转储为string,由两个libs: https : //github.com/bestswifter/BSBacktraceLogger https://github.com/plausiblelabs/plcrashreporter 以下是我logging的一个线程的堆栈跟踪,但它无法帮助我分析和定位性能问题。 我做错了,或者我该如何分析线程的堆栈跟踪?

如何在iPad中快速插入40000个logging到sqlite数据库

我想插入40000条logging,我从一个Web服务到我的iPad应用程序中的SQLite数据库。 我写了下面的代码,但大约需要20分钟,有没有更快的方法? – (NSArray *)insertPriceSQLWithPrice:(Price *) price { SQLiteManager *dbInfo = [SQLiteManager sharedSQLiteManagerWithDataBaseName:@"codefuel_catalogo.sqlite"]; sqlite3 *database; NSString *querySQL=[self formatStringQueryInsertWithTable:@"prices_list" andObject:price]; if(sqlite3_open([dbInfo.dataBasePath UTF8String], &database) == SQLITE_OK) { sqlite3_stmt * compiledStatement; const char *query_stmt = [querySQL UTF8String]; int result = sqlite3_prepare_v2(database, query_stmt, -1, &compiledStatement, NULL); if (result == SQLITE_OK) { int success = sqlite3_step(compiledStatement); NSLog(@"el numero de success […]

何时以及为什么要使用NSUserDefaults的synchronize()方法?

所以我看了一下NSUserDefaults的synchronize()方法的苹果文档。 请参阅下面的参考: https://developer.apple.com/reference/foundation/userdefaults/1414005-synchronize 该页面当前显示为: 因为此方法是定期自动调用的,所以只有当您不能等待自动同步(例如,如果您的应用程序即将退出),或者如果要将用户默认更新为磁盘上的内容你没有做任何改变。 但是,我还是不明白什么时候应该调用这个方法呢? 例如,每当用户更改应用程序的设置时,是否应该调用它? 或者我应该只相信背景api将要处理? 在内存更改设置后立即离开视图会导致更改丢失? 另外,什么时候调用synchronize()失败会导致用户设置没有正确更改? 此外,调用此方法的成本(性能,内存或其他)是多less? 我知道这涉及到从磁盘读写数据,但是真的要在手机上付出很多的努力吗?