129
129
i = NSClassFromString (@"NSMutableDictionary");
132
PRINT_TIMER("Function: 10 NSClassFromStr");
135
myZone = NSCreateZone(2048, 2048, 1);
136
for (i = 0; i < MAX_COUNT; i++)
138
void *mem = NSZoneMalloc(myZone, 32);
139
NSZoneFree(myZone, mem);
141
NSRecycleZone(myZone);
143
PRINT_TIMER("Function: 1 zone alloc/free");
146
myZone = NSCreateZone(2048, 2048, 0);
147
for (i = 0; i < MAX_COUNT; i++)
149
void *mem = NSZoneMalloc(myZone, 32);
150
NSZoneFree(myZone, mem);
152
NSRecycleZone(myZone);
154
PRINT_TIMER("Function: 1 zone2alloc/free");
156
myZone = NSDefaultMallocZone();
158
for (i = 0; i < MAX_COUNT; i++)
160
void *mem = NSZoneMalloc(myZone, 32);
161
NSZoneFree(myZone, mem);
164
PRINT_TIMER("Function: 1 def alloc/free");
167
myZone = NSCreateZone(2048, 2048, 1);
168
for (i = 0; i < MAX_COUNT; i++)
170
obj = [[rootClass allocWithZone: myZone] init];
173
NSRecycleZone(myZone);
175
PRINT_TIMER("NSObject: 1 zone all/init/rel");
178
myZone = NSCreateZone(2048, 2048, 0);
179
for (i = 0; i < MAX_COUNT; i++)
181
obj = [[rootClass allocWithZone: myZone] init];
184
NSRecycleZone(myZone);
186
PRINT_TIMER("NSObject: 1 zone2all/init/rel");
188
myZone = NSDefaultMallocZone();
190
for (i = 0; i < MAX_COUNT; i++)
192
obj = [[rootClass allocWithZone: myZone] init];
196
PRINT_TIMER("NSObject: 1 def all/init/rel");
132
PRINT_TIMER("Function: 10 NSClassFromStr\t\t");
135
myZone = NSCreateZone(2048, 2048, 1);
136
for (i = 0; i < MAX_COUNT; i++)
138
void *mem = NSZoneMalloc(myZone, 32);
139
NSZoneFree(myZone, mem);
141
NSRecycleZone(myZone);
143
PRINT_TIMER("Function: 1 zone alloc/free\t\t");
146
myZone = NSCreateZone(2048, 2048, 0);
147
for (i = 0; i < MAX_COUNT; i++)
149
void *mem = NSZoneMalloc(myZone, 32);
150
NSZoneFree(myZone, mem);
152
NSRecycleZone(myZone);
154
PRINT_TIMER("Function: 1 zone2alloc/free\t\t");
156
myZone = NSDefaultMallocZone();
158
for (i = 0; i < MAX_COUNT; i++)
160
void *mem = NSZoneMalloc(myZone, 32);
161
NSZoneFree(myZone, mem);
164
PRINT_TIMER("Function: 1 def alloc/free\t\t");
167
myZone = NSCreateZone(2048, 2048, 1);
168
for (i = 0; i < MAX_COUNT; i++)
170
obj = [[rootClass allocWithZone: myZone] init];
173
NSRecycleZone(myZone);
175
PRINT_TIMER("NSObject: 1 zone all/init/rel\t\t");
178
myZone = NSCreateZone(2048, 2048, 0);
179
for (i = 0; i < MAX_COUNT; i++)
181
obj = [[rootClass allocWithZone: myZone] init];
184
NSRecycleZone(myZone);
186
PRINT_TIMER("NSObject: 1 zone2all/init/rel\t\t");
188
myZone = NSDefaultMallocZone();
190
for (i = 0; i < MAX_COUNT; i++)
192
obj = [[rootClass allocWithZone: myZone] init];
196
PRINT_TIMER("NSObject: 1 def all/init/rel\t\t");
198
198
obj = [rootClass new];
342
342
for (j = 0; j < 10; j++)
344
id dummy = [dict objectForKey: keys[i/10]];
344
[dict objectForKey: keys[i/10]];
348
PRINT_TIMER("NSDict (10 objectFor:) ");
348
PRINT_TIMER("NSDict (10 objectFor:) \t\t");
351
351
for (i = 0; i < MAX_COUNT*10; i++)
353
int dummy = [dict count];
356
PRINT_TIMER("NSDictionary (10 count)");
356
PRINT_TIMER("NSDictionary (10 count)\t\t");
358
358
obj2 = [dict copy];
360
360
for (i = 0; i < 10; i++)
362
BOOL dummy = [dict isEqual: obj2];
362
[dict isEqual: obj2];
365
PRINT_TIMER("NSDict (ten times isEqual:)");
365
PRINT_TIMER("NSDict (ten times isEqual:)\t\t");
405
407
[NSData dataWithBytes: "hello" length: 5], @"Key8",
407
409
plstr = [plist description];
409
411
printf("NSString\n");
414
for (i = 0; i < MAX_COUNT; i++)
416
str = [[stringClass alloc] initWithFormat: @"Hello %d", i];
420
PRINT_TIMER("NSString (1 initWithFormat:) \t");
422
ms = [NSMutableString stringWithCapacity: 0];
424
for (i = 0; i < MAX_COUNT; i++)
426
[ms appendFormat: @"%d", i];
429
PRINT_TIMER("NSString (1 appendFormat:) \t\t");
411
432
for (i = 0; i < MAX_COUNT; i++)
413
434
str = [stringClass stringWithCString: "hello world"];
416
PRINT_TIMER("NSString (1 cstring:) ");
419
for (i = 0; i < MAX_COUNT*10; i++)
421
int dummy = [str length];
424
PRINT_TIMER("NSString (10 length) ");
437
PRINT_TIMER("NSString (1 cstring:) \t\t");
440
for (i = 0; i < MAX_COUNT*10; i++)
445
PRINT_TIMER("NSString (10 length) \t\t");
448
for (i = 0; i < MAX_COUNT*10; i++)
453
PRINT_TIMER("NSString (10 copy) <initWithCString:> ");
455
str = @"ConstantString";
457
for (i = 0; i < MAX_COUNT*10; i++)
462
PRINT_TIMER("NSString (10 copy) <@'ConstantString'> ");
464
str = [[NSString alloc] initWithCStringNoCopy: (char *)[str cString]
468
for (i = 0; i < MAX_COUNT*10; i++)
473
PRINT_TIMER("NSString (10 copy) <NoCopy:free:NO> ");
475
str = [[NSString alloc] initWithCStringNoCopy: (char *)[str cString]
479
for (i = 0; i < MAX_COUNT*10; i++)
484
PRINT_TIMER("NSString (10 copy) <NoCopy:free:YES> ");
486
str = [stringClass stringWithCString: "hello world"];
488
for (i = 0; i < MAX_COUNT*10; i++)
493
PRINT_TIMER("NSString (10 hash) <initWithCString:> ");
495
str = @"ConstantString";
497
for (i = 0; i < MAX_COUNT*10; i++)
502
PRINT_TIMER("NSString (10 hash) <@'ConstantString'> ");
427
505
for (i = 0; i < MAX_COUNT/100; i++)
429
507
id arp = [NSAutoreleasePool new];
430
NSString *s = [plist description];
434
PRINT_TIMER("NSString (1/100 mkplist) ");
512
PRINT_TIMER("NSString (1/100 mkplist) \t\t");
437
515
for (i = 0; i < MAX_COUNT/1000; i++)
439
id p = [plstr propertyList];
517
[plstr propertyList];
442
PRINT_TIMER("NSString (1/1000 plparse)");
520
PRINT_TIMER("NSString (1/1000 plparse)\t\t");
445
523
for (i = 0; i < MAX_COUNT/1000; i++)
457
PRINT_TIMER("NSString (1/1000 plcomp)");
535
PRINT_TIMER("NSString (1/1000 plcomp)\t\t");
460
538
for (i = 0; i < MAX_COUNT/100; i++)
462
540
NSData *d = [ser serializePropertyList: plist];
463
id p = [des deserializePropertyListFromData: d
464
mutableContainers: NO];
541
[des deserializePropertyListFromData: d mutableContainers: NO];
467
PRINT_TIMER("NSString (1/100 ser/des)");
544
PRINT_TIMER("NSString (1/100 ser/des)\t\t");
469
546
[NSDeserializer uniquing: YES];
471
548
for (i = 0; i < MAX_COUNT/100; i++)
473
550
NSData *d = [ser serializePropertyList: plist];
474
id p = [des deserializePropertyListFromData: d
475
mutableContainers: NO];
551
[des deserializePropertyListFromData: d mutableContainers: NO];
478
PRINT_TIMER("NSString (1/100 ser/des - uniquing)");
554
PRINT_TIMER("NSString (1/100 ser/des - uniquing)\t");
479
555
[NSDeserializer uniquing: NO];
482
558
for (i = 0; i < MAX_COUNT/100; i++)
484
560
NSData *d = [arc archivedDataWithRootObject: plist];
485
id p = [una unarchiveObjectWithData: d];
488
PRINT_TIMER("NSString (1/100 arc/una)");
561
[una unarchiveObjectWithData: d];
564
PRINT_TIMER("NSString (1/100 arc/una)\t\t");
575
Class dateClass = [NSCalendarDate class];
577
printf("NSCalendarDate\n");
579
for (i = 0; i < MAX_COUNT/10; i++)
581
d = [[dateClass alloc] init];
588
PRINT_TIMER("NSCalendarDate (various)\t\t");