From: Adam M. <ama...@us...> - 2005-06-17 18:56:15
|
Update of /cvsroot/bibdesk/bibdesk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9466 Modified Files: Tag: TRY_CMH_CROSSREF_BR_1x BibItem.m Log Message: Minor speed increase when loading large files by keeping a static locale dictionary. The real speed hit appears to come from parsing the natural language strings, and that occurs three times for each item when loading a file. This is why we beachball when loading tugboat.bib, for instance. Index: BibItem.m =================================================================== RCS file: /cvsroot/bibdesk/bibdesk/BibItem.m,v retrieving revision 1.221.2.2.2.19 retrieving revision 1.221.2.2.2.20 diff -C2 -d -r1.221.2.2.2.19 -r1.221.2.2.2.20 *** BibItem.m 16 Jun 2005 05:24:51 -0000 1.221.2.2.2.19 --- BibItem.m 17 Jun 2005 18:55:49 -0000 1.221.2.2.2.20 *************** *** 809,812 **** --- 809,818 ---- } + static NSDictionary *locale = nil; + if(locale = nil) + locale = [[NSDictionary alloc] dictionaryWithObjectsAndKeys:@"MDYH", NSDateTimeOrdering, + [NSArray arrayWithObjects:@"January", @"February", @"March", @"April", @"May", @"June", @"July", @"August", @"September", @"October", @"November", @"December", nil], NSMonthNameArray, + [NSArray arrayWithObjects:@"Jan", @"Feb", @"Mar", @"Apr", @"May", @"Jun", @"Jul", @"Aug", @"Sep", @"Oct", @"Nov", @"Dec", nil], NSShortMonthNameArray, nil]; + if (key == nil || [BDSKYearString isEqualToString:key] || [BDSKMonthString isEqualToString:key]) { NSString *yearValue = [pubFields objectForKey:BDSKYearString usingLock:bibLock]; *************** *** 817,823 **** if (!monthValue) monthValue = @""; NSString *dateStr = [NSString stringWithFormat:@"%@ 1 %@", monthValue, [pubFields objectForKey:BDSKYearString usingLock:bibLock]]; - NSDictionary *locale = [NSDictionary dictionaryWithObjectsAndKeys:@"MDYH", NSDateTimeOrdering, - [NSArray arrayWithObjects:@"January", @"February", @"March", @"April", @"May", @"June", @"July", @"August", @"September", @"October", @"November", @"December", nil], NSMonthNameArray, - [NSArray arrayWithObjects:@"Jan", @"Feb", @"Mar", @"Apr", @"May", @"Jun", @"Jul", @"Aug", @"Sep", @"Oct", @"Nov", @"Dec", nil], NSShortMonthNameArray, nil]; [self setDate:[NSCalendarDate dateWithNaturalLanguageString:dateStr locale:locale]]; }else{ --- 823,826 ---- |