Grâce aux répondants à cette question (This loop is very slow, I think because I create a lot of intermediate strings. How can I speed it up?), j'ai été en mesure d'accélérer mon code de plusieurs ordres de grandeur.Une autre augmentation de vitesse possible?
Je pense que je peux probablement faire un peu mieux cependant. Est-il possible d'éviter la création d'un groupe de NSString ici, et à la place diviser le grand NSString (routeGeom) en un tas de tampons char et itérer à travers ceux-ci?
Je n'ai jamais fait de programmation en C, donc si vous savez comment y arriver, ce serait très apprécié!
NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];
NSString *routeGeom = [pieces objectAtIndex:1];
NSArray *splitPoints = [routeGeom componentsSeparatedByString:@"],["];
routePoints = malloc(sizeof(CLLocationCoordinate2D) * ([splitPoints count] + 1));
int i=0;
for (NSString* coordStr in splitPoints) {
char *buf = [coordStr UTF8String];
sscanf(buf, "%f,%f,", &routePoints[i].latitude, &routePoints[i].longitude);
i++;
}
Avez-vous profilé et déterminé que le fractionnement de la chaîne prend beaucoup de temps? – Chuck
Maintenant que [neutrinos pourrait aller encore plus vite que c] (http://science.slashdot.org/story/11/09/22/1841217/cern-experiment-indicates-faster-than-light-neutrinos), pourrait vouloir essayer une implémentation en utilisant ceux-ci. –