mirror of
https://github.com/gnustep/libs-performance.git
synced 2025-02-24 12:21:23 +00:00
Update to build on snow leopard
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/performance/trunk@29028 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
172dc5463d
commit
3763313448
11 changed files with 1930 additions and 104 deletions
15
GNUmakefile
15
GNUmakefile
|
@ -50,21 +50,6 @@ Performance_AGSDOC_FILES += \
|
||||||
# Optional Java wrappers for the library
|
# Optional Java wrappers for the library
|
||||||
JAVA_WRAPPER_NAME = Performance
|
JAVA_WRAPPER_NAME = Performance
|
||||||
|
|
||||||
#
|
|
||||||
# Assume that the use of the gnu runtime means we have the gnustep
|
|
||||||
# base library and can use its extensions to build Performance stuff.
|
|
||||||
#
|
|
||||||
ifeq ($(OBJC_RUNTIME_LIB),gnu)
|
|
||||||
APPLE=0
|
|
||||||
else
|
|
||||||
APPLE=1
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(APPLE),1)
|
|
||||||
ADDITIONAL_OBJC_LIBS += -lgnustep-baseadd
|
|
||||||
Performance_LIBRARIES_DEPEND_UPON = -lgnustep-baseadd
|
|
||||||
endif
|
|
||||||
|
|
||||||
Performance_HEADER_FILES_INSTALL_DIR = Performance
|
Performance_HEADER_FILES_INSTALL_DIR = Performance
|
||||||
|
|
||||||
-include GNUmakefile.preamble
|
-include GNUmakefile.preamble
|
||||||
|
|
34
GSCache.m
34
GSCache.m
|
@ -43,12 +43,10 @@
|
||||||
#import <Foundation/NSThread.h>
|
#import <Foundation/NSThread.h>
|
||||||
#import <Foundation/NSValue.h>
|
#import <Foundation/NSValue.h>
|
||||||
|
|
||||||
#import <GNUstepBase/GNUstep.h>
|
|
||||||
|
|
||||||
#import "GSCache.h"
|
#import "GSCache.h"
|
||||||
#import "GSTicker.h"
|
#import "GSTicker.h"
|
||||||
|
|
||||||
#if NeXT_RUNTIME
|
#if !defined(GNUSTEP)
|
||||||
#include <objc/objc-class.h>
|
#include <objc/objc-class.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -77,14 +75,14 @@
|
||||||
GSCacheItem *i;
|
GSCacheItem *i;
|
||||||
|
|
||||||
i = (GSCacheItem*)NSAllocateObject(self, 0, NSDefaultMallocZone());
|
i = (GSCacheItem*)NSAllocateObject(self, 0, NSDefaultMallocZone());
|
||||||
i->object = RETAIN(anObject);
|
i->object = [anObject retain];
|
||||||
i->key = [aKey copy];
|
i->key = [aKey copy];
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
- (void) dealloc
|
- (void) dealloc
|
||||||
{
|
{
|
||||||
RELEASE(key);
|
[key release];
|
||||||
RELEASE(object);
|
[object release];
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
@ -240,9 +238,9 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first)
|
||||||
[self shrinkObjects: 0 andSize: 0];
|
[self shrinkObjects: 0 andSize: 0];
|
||||||
NSFreeMapTable(my->contents);
|
NSFreeMapTable(my->contents);
|
||||||
}
|
}
|
||||||
RELEASE(my->exclude);
|
[my->exclude release];
|
||||||
RELEASE(my->name);
|
[my->name release];
|
||||||
RELEASE(my->lock);
|
[my->lock release];
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -530,7 +528,9 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first)
|
||||||
- (void) setName: (NSString*)name
|
- (void) setName: (NSString*)name
|
||||||
{
|
{
|
||||||
[my->lock lock];
|
[my->lock lock];
|
||||||
ASSIGN(my->name, name);
|
[name retain];
|
||||||
|
[my->name release];
|
||||||
|
my->name = name;
|
||||||
[my->lock unlock];
|
[my->lock unlock];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -599,7 +599,7 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first)
|
||||||
appendItem(item, &my->first);
|
appendItem(item, &my->first);
|
||||||
my->currentObjects += addObjects;
|
my->currentObjects += addObjects;
|
||||||
my->currentSize += addSize;
|
my->currentSize += addSize;
|
||||||
RELEASE(item);
|
[item release];
|
||||||
}
|
}
|
||||||
[my->lock unlock];
|
[my->lock unlock];
|
||||||
}
|
}
|
||||||
|
@ -732,7 +732,7 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first)
|
||||||
size += 3 * sizeof(void*) * count;
|
size += 3 * sizeof(void*) * count;
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
{
|
{
|
||||||
CREATE_AUTORELEASE_POOL(pool);
|
NSAutoreleasePool *pool = [NSAutoreleasePool new];
|
||||||
NSEnumerator *enumerator = [self keyEnumerator];
|
NSEnumerator *enumerator = [self keyEnumerator];
|
||||||
NSObject *k;
|
NSObject *k;
|
||||||
|
|
||||||
|
@ -742,7 +742,7 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first)
|
||||||
|
|
||||||
size += [k sizeInBytes: exclude] + [o sizeInBytes: exclude];
|
size += [k sizeInBytes: exclude] + [o sizeInBytes: exclude];
|
||||||
}
|
}
|
||||||
RELEASE(pool);
|
[pool release];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return size;
|
return size;
|
||||||
|
@ -757,7 +757,11 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
[exclude addObject: self];
|
[exclude addObject: self];
|
||||||
|
#if !defined(GNUSTEP)
|
||||||
|
return class_getInstanceSize(isa);
|
||||||
|
#else
|
||||||
return isa->instance_size;
|
return isa->instance_size;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@ -773,7 +777,7 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first)
|
||||||
size += 3 * sizeof(void*) * count;
|
size += 3 * sizeof(void*) * count;
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
{
|
{
|
||||||
CREATE_AUTORELEASE_POOL(pool);
|
NSAutoreleasePool *pool = [NSAutoreleasePool new];
|
||||||
NSEnumerator *enumerator = [self objectEnumerator];
|
NSEnumerator *enumerator = [self objectEnumerator];
|
||||||
NSObject *o;
|
NSObject *o;
|
||||||
|
|
||||||
|
@ -781,7 +785,7 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first)
|
||||||
{
|
{
|
||||||
size += [o sizeInBytes: exclude];
|
size += [o sizeInBytes: exclude];
|
||||||
}
|
}
|
||||||
RELEASE(pool);
|
[pool release];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return size;
|
return size;
|
||||||
|
|
|
@ -27,8 +27,6 @@
|
||||||
#import <Foundation/NSEnumerator.h>
|
#import <Foundation/NSEnumerator.h>
|
||||||
#import <Foundation/NSString.h>
|
#import <Foundation/NSString.h>
|
||||||
|
|
||||||
#import <GNUstepBase/GNUstep.h>
|
|
||||||
|
|
||||||
#import "GSSkipMutableArray.h"
|
#import "GSSkipMutableArray.h"
|
||||||
#import "GSIndexedSkipList.h"
|
#import "GSIndexedSkipList.h"
|
||||||
|
|
||||||
|
@ -112,7 +110,7 @@ static Class concreteClass = 0;
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) _raiseRangeExceptionWithIndex: (unsigned)index from: (SEL)sel
|
- (void) _raiseRangeExceptionWithIndex: (NSUInteger)index from: (SEL)sel
|
||||||
{
|
{
|
||||||
NSDictionary *info;
|
NSDictionary *info;
|
||||||
NSException *exception;
|
NSException *exception;
|
||||||
|
@ -136,7 +134,7 @@ static Class concreteClass = 0;
|
||||||
GSISLInitialize();
|
GSISLInitialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id) initWithObjects: (id *)objects count: (unsigned) count
|
- (id) initWithObjects: (id *)objects count: (NSUInteger) count
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
self = [super init];
|
self = [super init];
|
||||||
|
@ -147,7 +145,7 @@ static Class concreteClass = 0;
|
||||||
|
|
||||||
for (i = 0; i < count; i++)
|
for (i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
GSISLInsertItemAtIndex(l, RETAIN(objects[i]), i);
|
GSISLInsertItemAtIndex(l, [objects[i] retain], i);
|
||||||
}
|
}
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
|
@ -171,7 +169,7 @@ static Class concreteClass = 0;
|
||||||
while (p != GSISLNil)
|
while (p != GSISLNil)
|
||||||
{
|
{
|
||||||
q = p->forward[0].next;
|
q = p->forward[0].next;
|
||||||
RELEASE(p->value);
|
[p->value release];
|
||||||
NSZoneFree(l->zone,p);
|
NSZoneFree(l->zone,p);
|
||||||
p = q;
|
p = q;
|
||||||
}
|
}
|
||||||
|
@ -181,17 +179,17 @@ static Class concreteClass = 0;
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) insertObject: (id)object atIndex: (unsigned)index
|
- (void) insertObject: (id)object atIndex: (NSUInteger)index
|
||||||
{
|
{
|
||||||
if (index > l->count)
|
if (index > l->count)
|
||||||
{
|
{
|
||||||
[self _raiseRangeExceptionWithIndex: index from: _cmd];
|
[self _raiseRangeExceptionWithIndex: index from: _cmd];
|
||||||
}
|
}
|
||||||
|
|
||||||
GSISLInsertItemAtIndex(l, RETAIN(object), index);
|
GSISLInsertItemAtIndex(l, [object retain], index);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id) objectAtIndex: (unsigned)index
|
- (id) objectAtIndex: (NSUInteger)index
|
||||||
{
|
{
|
||||||
if (index >= l->count)
|
if (index >= l->count)
|
||||||
{
|
{
|
||||||
|
@ -201,29 +199,29 @@ static Class concreteClass = 0;
|
||||||
return GSISLItemAtIndex(l, index);
|
return GSISLItemAtIndex(l, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) removeObjectAtIndex: (unsigned) index
|
- (void) removeObjectAtIndex: (NSUInteger)index
|
||||||
{
|
{
|
||||||
if (index >= l->count)
|
if (index >= l->count)
|
||||||
{
|
{
|
||||||
[self _raiseRangeExceptionWithIndex: index from: _cmd];
|
[self _raiseRangeExceptionWithIndex: index from: _cmd];
|
||||||
}
|
}
|
||||||
|
|
||||||
RELEASE(GSISLRemoveItemAtIndex(l, index));
|
[GSISLRemoveItemAtIndex(l, index) release];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) addObject: (id)obj
|
- (void) addObject: (id)obj
|
||||||
{
|
{
|
||||||
GSISLInsertItemAtIndex(l, RETAIN(obj), l->count);
|
GSISLInsertItemAtIndex(l, [obj retain], l->count);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (unsigned) count
|
- (NSUInteger) count
|
||||||
{
|
{
|
||||||
return l->count;
|
return l->count;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) replaceObjectAtIndex: (unsigned)index withObject: (id)obj
|
- (void) replaceObjectAtIndex: (NSUInteger)index withObject: (id)obj
|
||||||
{
|
{
|
||||||
RELEASE(GSISLReplaceItemAtIndex(l, RETAIN(obj), index));
|
[GSISLReplaceItemAtIndex(l, [obj retain], index) release];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSEnumerator*) objectEnumerator
|
- (NSEnumerator*) objectEnumerator
|
||||||
|
@ -233,7 +231,7 @@ static Class concreteClass = 0;
|
||||||
e = [GSConcreteSkipArrayEnumerator
|
e = [GSConcreteSkipArrayEnumerator
|
||||||
allocWithZone: NSDefaultMallocZone()];
|
allocWithZone: NSDefaultMallocZone()];
|
||||||
e = [e initWithArray: self];
|
e = [e initWithArray: self];
|
||||||
return AUTORELEASE(e);
|
return [e autorelease];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* returns an in an NSString suitable for running through graphviz,
|
/* returns an in an NSString suitable for running through graphviz,
|
||||||
|
@ -242,7 +240,7 @@ static Class concreteClass = 0;
|
||||||
- (NSString *) _makeGraphOfInternalLayoutNamed: (NSString *)graphName
|
- (NSString *) _makeGraphOfInternalLayoutNamed: (NSString *)graphName
|
||||||
{
|
{
|
||||||
GSISLNode p;
|
GSISLNode p;
|
||||||
unsigned k, i;
|
NSUInteger k, i;
|
||||||
NSMutableDictionary *values;
|
NSMutableDictionary *values;
|
||||||
NSMutableArray *edges;
|
NSMutableArray *edges;
|
||||||
NSMutableString *graph;
|
NSMutableString *graph;
|
||||||
|
@ -287,7 +285,7 @@ static Class concreteClass = 0;
|
||||||
p, k, p->forward[k].next,
|
p, k, p->forward[k].next,
|
||||||
p->forward[k].next == GSISLNil ? 0 : k]];
|
p->forward[k].next == GSISLNil ? 0 : k]];
|
||||||
[values setObject: foo forKey: value];
|
[values setObject: foo forKey: value];
|
||||||
RELEASE(foo);
|
[foo release];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -317,9 +315,9 @@ static Class concreteClass = 0;
|
||||||
[graph appendString: [edges objectAtIndex: i]];
|
[graph appendString: [edges objectAtIndex: i]];
|
||||||
}
|
}
|
||||||
[graph appendString: @"}\n"];
|
[graph appendString: @"}\n"];
|
||||||
RELEASE(values);
|
[values release];
|
||||||
RELEASE(edges);
|
[edges release];
|
||||||
return AUTORELEASE(graph);
|
return [graph autorelease];
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -41,8 +41,6 @@
|
||||||
#import <Foundation/NSThread.h>
|
#import <Foundation/NSThread.h>
|
||||||
#import <Foundation/NSValue.h>
|
#import <Foundation/NSValue.h>
|
||||||
|
|
||||||
#import <GNUstepBase/GNUstep.h>
|
|
||||||
|
|
||||||
#import "GSThroughput.h"
|
#import "GSThroughput.h"
|
||||||
#import "GSTicker.h"
|
#import "GSTicker.h"
|
||||||
|
|
||||||
|
@ -64,7 +62,7 @@ static NSTimeInterval (*tiImp)(Class,SEL) = 0;
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned cnt; // Number of events.
|
unsigned cnt; // Number of events.
|
||||||
unsigned tick; // Start time
|
unsigned tick; // Start time
|
||||||
} CInfo;
|
} CountInfo;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned cnt; // Number of events.
|
unsigned cnt; // Number of events.
|
||||||
|
@ -72,7 +70,7 @@ typedef struct {
|
||||||
NSTimeInterval min; // Shortest duration
|
NSTimeInterval min; // Shortest duration
|
||||||
NSTimeInterval sum; // Total (sum of durations for event)
|
NSTimeInterval sum; // Total (sum of durations for event)
|
||||||
unsigned tick; // Start time
|
unsigned tick; // Start time
|
||||||
} DInfo;
|
} DurationInfo;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
void *seconds;
|
void *seconds;
|
||||||
|
@ -94,12 +92,12 @@ typedef struct {
|
||||||
} Item;
|
} Item;
|
||||||
#define my ((Item*)_data)
|
#define my ((Item*)_data)
|
||||||
|
|
||||||
#define cseconds ((CInfo*)my->seconds)
|
#define cseconds ((CountInfo*)my->seconds)
|
||||||
#define cminutes ((CInfo*)my->minutes)
|
#define cminutes ((CountInfo*)my->minutes)
|
||||||
#define cperiods ((CInfo*)my->periods)
|
#define cperiods ((CountInfo*)my->periods)
|
||||||
#define dseconds ((DInfo*)my->seconds)
|
#define dseconds ((DurationInfo*)my->seconds)
|
||||||
#define dminutes ((DInfo*)my->minutes)
|
#define dminutes ((DurationInfo*)my->minutes)
|
||||||
#define dperiods ((DInfo*)my->periods)
|
#define dperiods ((DurationInfo*)my->periods)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -163,7 +161,7 @@ typedef struct {
|
||||||
t = [GSThroughputThread new];
|
t = [GSThroughputThread new];
|
||||||
[[[NSThread currentThread] threadDictionary] setObject: t
|
[[[NSThread currentThread] threadDictionary] setObject: t
|
||||||
forKey: @"GSThroughput"];
|
forKey: @"GSThroughput"];
|
||||||
RELEASE(t);
|
[t release];
|
||||||
}
|
}
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
@ -206,14 +204,14 @@ typedef struct {
|
||||||
{
|
{
|
||||||
while (my->last < tick)
|
while (my->last < tick)
|
||||||
{
|
{
|
||||||
DInfo *info;
|
DurationInfo *info;
|
||||||
|
|
||||||
if (my->second++ == 59)
|
if (my->second++ == 59)
|
||||||
{
|
{
|
||||||
info = &dminutes[my->minute];
|
info = &dminutes[my->minute];
|
||||||
for (i = 0; i < 60; i++)
|
for (i = 0; i < 60; i++)
|
||||||
{
|
{
|
||||||
DInfo *from = &dseconds[i];
|
DurationInfo *from = &dseconds[i];
|
||||||
|
|
||||||
info->cnt += from->cnt;
|
info->cnt += from->cnt;
|
||||||
if (from->min < info->min)
|
if (from->min < info->min)
|
||||||
|
@ -258,7 +256,7 @@ typedef struct {
|
||||||
info = &dperiods[my->period];
|
info = &dperiods[my->period];
|
||||||
for (i = 0; i < my->minutesPerPeriod; i++)
|
for (i = 0; i < my->minutesPerPeriod; i++)
|
||||||
{
|
{
|
||||||
DInfo *from = &dminutes[i];
|
DurationInfo *from = &dminutes[i];
|
||||||
|
|
||||||
info->cnt += from->cnt;
|
info->cnt += from->cnt;
|
||||||
if (from->min > 0.0 && from->min < info->min)
|
if (from->min > 0.0 && from->min < info->min)
|
||||||
|
@ -305,7 +303,7 @@ typedef struct {
|
||||||
{
|
{
|
||||||
while (my->last < tick)
|
while (my->last < tick)
|
||||||
{
|
{
|
||||||
CInfo *info;
|
CountInfo *info;
|
||||||
|
|
||||||
if (my->second++ == 59)
|
if (my->second++ == 59)
|
||||||
{
|
{
|
||||||
|
@ -365,7 +363,7 @@ typedef struct {
|
||||||
my->second = 0;
|
my->second = 0;
|
||||||
if (my->supportDurations == YES)
|
if (my->supportDurations == YES)
|
||||||
{
|
{
|
||||||
DInfo *info = &dseconds[1];
|
DurationInfo *info = &dseconds[1];
|
||||||
|
|
||||||
if (my->notify == YES && my->last > 59)
|
if (my->notify == YES && my->last > 59)
|
||||||
{
|
{
|
||||||
|
@ -397,7 +395,7 @@ typedef struct {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CInfo *info = &cseconds[1];
|
CountInfo *info = &cseconds[1];
|
||||||
|
|
||||||
if (my->notify == YES && my->last > 59)
|
if (my->notify == YES && my->last > 59)
|
||||||
{
|
{
|
||||||
|
@ -537,7 +535,7 @@ typedef struct {
|
||||||
|
|
||||||
while (from <= to)
|
while (from <= to)
|
||||||
{
|
{
|
||||||
DInfo *info = &dseconds[from++];
|
DurationInfo *info = &dseconds[from++];
|
||||||
|
|
||||||
if (info->cnt == 0)
|
if (info->cnt == 0)
|
||||||
{
|
{
|
||||||
|
@ -581,7 +579,7 @@ typedef struct {
|
||||||
}
|
}
|
||||||
while (from <= to)
|
while (from <= to)
|
||||||
{
|
{
|
||||||
DInfo *info = &dseconds[from++];
|
DurationInfo *info = &dseconds[from++];
|
||||||
|
|
||||||
if (info->cnt++ == 0)
|
if (info->cnt++ == 0)
|
||||||
{
|
{
|
||||||
|
@ -632,7 +630,7 @@ typedef struct {
|
||||||
{
|
{
|
||||||
NSZoneFree(NSDefaultMallocZone(), my->seconds);
|
NSZoneFree(NSDefaultMallocZone(), my->seconds);
|
||||||
}
|
}
|
||||||
RELEASE(my->name);
|
[my->name release];
|
||||||
if (my->thread != nil)
|
if (my->thread != nil)
|
||||||
{
|
{
|
||||||
NSHashRemove(my->thread->instances, (void*)self);
|
NSHashRemove(my->thread->instances, (void*)self);
|
||||||
|
@ -646,7 +644,7 @@ typedef struct {
|
||||||
|
|
||||||
- (NSString*) description
|
- (NSString*) description
|
||||||
{
|
{
|
||||||
CREATE_AUTORELEASE_POOL(pool);
|
NSAutoreleasePool *pool = [NSAutoreleasePool new];
|
||||||
NSString *n = my->name;
|
NSString *n = my->name;
|
||||||
NSMutableString *m;
|
NSMutableString *m;
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
@ -666,7 +664,7 @@ typedef struct {
|
||||||
{
|
{
|
||||||
if (my->supportDurations == YES)
|
if (my->supportDurations == YES)
|
||||||
{
|
{
|
||||||
DInfo *info = &dseconds[0];
|
DurationInfo *info = &dseconds[0];
|
||||||
|
|
||||||
[m appendFormat: @": cnt %u, max %g, min %g, avg %g",
|
[m appendFormat: @": cnt %u, max %g, min %g, avg %g",
|
||||||
info->cnt, info->max,
|
info->cnt, info->max,
|
||||||
|
@ -675,7 +673,7 @@ typedef struct {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CInfo *info = &cseconds[0];
|
CountInfo *info = &cseconds[0];
|
||||||
|
|
||||||
[m appendFormat: @": cnt %u", info->cnt];
|
[m appendFormat: @": cnt %u", info->cnt];
|
||||||
}
|
}
|
||||||
|
@ -690,7 +688,7 @@ typedef struct {
|
||||||
tick = 0;
|
tick = 0;
|
||||||
for (i = 0; i < my->second; i++)
|
for (i = 0; i < my->second; i++)
|
||||||
{
|
{
|
||||||
DInfo *info = &dseconds[i];
|
DurationInfo *info = &dseconds[i];
|
||||||
NSTimeInterval ti = info->tick + baseTime;
|
NSTimeInterval ti = info->tick + baseTime;
|
||||||
|
|
||||||
if (info->tick != tick)
|
if (info->tick != tick)
|
||||||
|
@ -710,7 +708,7 @@ typedef struct {
|
||||||
tick = 0;
|
tick = 0;
|
||||||
for (i = 0; i < my->minute; i++)
|
for (i = 0; i < my->minute; i++)
|
||||||
{
|
{
|
||||||
DInfo *info = &dminutes[i];
|
DurationInfo *info = &dminutes[i];
|
||||||
NSTimeInterval ti = info->tick + baseTime;
|
NSTimeInterval ti = info->tick + baseTime;
|
||||||
|
|
||||||
if (info->tick != tick)
|
if (info->tick != tick)
|
||||||
|
@ -732,7 +730,7 @@ typedef struct {
|
||||||
*/
|
*/
|
||||||
for (i = my->period; i < my->numberOfPeriods; i++)
|
for (i = my->period; i < my->numberOfPeriods; i++)
|
||||||
{
|
{
|
||||||
DInfo *info = &dperiods[i];
|
DurationInfo *info = &dperiods[i];
|
||||||
NSTimeInterval ti = info->tick + baseTime;
|
NSTimeInterval ti = info->tick + baseTime;
|
||||||
|
|
||||||
if (info->tick != tick)
|
if (info->tick != tick)
|
||||||
|
@ -748,7 +746,7 @@ typedef struct {
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < my->period; i++)
|
for (i = 0; i < my->period; i++)
|
||||||
{
|
{
|
||||||
DInfo *info = &dperiods[i];
|
DurationInfo *info = &dperiods[i];
|
||||||
NSTimeInterval ti = info->tick + baseTime;
|
NSTimeInterval ti = info->tick + baseTime;
|
||||||
|
|
||||||
if (info->tick != tick)
|
if (info->tick != tick)
|
||||||
|
@ -770,7 +768,7 @@ typedef struct {
|
||||||
tick = 0;
|
tick = 0;
|
||||||
for (i = 0; i < my->second; i++)
|
for (i = 0; i < my->second; i++)
|
||||||
{
|
{
|
||||||
CInfo *info = &cseconds[i];
|
CountInfo *info = &cseconds[i];
|
||||||
NSTimeInterval ti = info->tick + baseTime;
|
NSTimeInterval ti = info->tick + baseTime;
|
||||||
|
|
||||||
if (info->tick != tick)
|
if (info->tick != tick)
|
||||||
|
@ -789,7 +787,7 @@ typedef struct {
|
||||||
tick = 0;
|
tick = 0;
|
||||||
for (i = 0; i < my->minute; i++)
|
for (i = 0; i < my->minute; i++)
|
||||||
{
|
{
|
||||||
CInfo *info = &cminutes[i];
|
CountInfo *info = &cminutes[i];
|
||||||
NSTimeInterval ti = info->tick + baseTime;
|
NSTimeInterval ti = info->tick + baseTime;
|
||||||
|
|
||||||
if (info->tick != tick)
|
if (info->tick != tick)
|
||||||
|
@ -810,7 +808,7 @@ typedef struct {
|
||||||
*/
|
*/
|
||||||
for (i = my->period; i < my->numberOfPeriods; i++)
|
for (i = my->period; i < my->numberOfPeriods; i++)
|
||||||
{
|
{
|
||||||
CInfo *info = &cperiods[i];
|
CountInfo *info = &cperiods[i];
|
||||||
NSTimeInterval ti = info->tick + baseTime;
|
NSTimeInterval ti = info->tick + baseTime;
|
||||||
|
|
||||||
if (info->tick != tick)
|
if (info->tick != tick)
|
||||||
|
@ -825,7 +823,7 @@ typedef struct {
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < my->period; i++)
|
for (i = 0; i < my->period; i++)
|
||||||
{
|
{
|
||||||
CInfo *info = &cperiods[i];
|
CountInfo *info = &cperiods[i];
|
||||||
NSTimeInterval ti = info->tick + baseTime;
|
NSTimeInterval ti = info->tick + baseTime;
|
||||||
|
|
||||||
if (info->tick != tick)
|
if (info->tick != tick)
|
||||||
|
@ -841,8 +839,8 @@ typedef struct {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DESTROY(pool);
|
[pool release];
|
||||||
return AUTORELEASE(m);
|
return [m autorelease];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) endDuration
|
- (void) endDuration
|
||||||
|
@ -916,9 +914,10 @@ typedef struct {
|
||||||
my->period = 0;
|
my->period = 0;
|
||||||
if (my->supportDurations == YES)
|
if (my->supportDurations == YES)
|
||||||
{
|
{
|
||||||
DInfo *ptr;
|
DurationInfo *ptr;
|
||||||
|
|
||||||
ptr = (DInfo*)NSZoneCalloc(NSDefaultMallocZone(), 2, sizeof(DInfo));
|
ptr = (DurationInfo*)NSZoneCalloc
|
||||||
|
(NSDefaultMallocZone(), 2, sizeof(DurationInfo));
|
||||||
my->seconds = ptr;
|
my->seconds = ptr;
|
||||||
my->minutes = 0;
|
my->minutes = 0;
|
||||||
my->periods = 0;
|
my->periods = 0;
|
||||||
|
@ -936,9 +935,10 @@ typedef struct {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CInfo *ptr;
|
CountInfo *ptr;
|
||||||
|
|
||||||
ptr = (CInfo*)NSZoneCalloc(NSDefaultMallocZone(), 2, sizeof(CInfo));
|
ptr = (CountInfo*)NSZoneCalloc
|
||||||
|
(NSDefaultMallocZone(), 2, sizeof(CountInfo));
|
||||||
my->seconds = ptr;
|
my->seconds = ptr;
|
||||||
my->minutes = 0;
|
my->minutes = 0;
|
||||||
my->periods = 0;
|
my->periods = 0;
|
||||||
|
@ -959,9 +959,10 @@ typedef struct {
|
||||||
i = 60 + minutesPerPeriod + numberOfPeriods;
|
i = 60 + minutesPerPeriod + numberOfPeriods;
|
||||||
if (my->supportDurations == YES)
|
if (my->supportDurations == YES)
|
||||||
{
|
{
|
||||||
DInfo *ptr;
|
DurationInfo *ptr;
|
||||||
|
|
||||||
ptr = (DInfo*)NSZoneCalloc(NSDefaultMallocZone(), i, sizeof(DInfo));
|
ptr = (DurationInfo*)NSZoneCalloc
|
||||||
|
(NSDefaultMallocZone(), i, sizeof(DurationInfo));
|
||||||
my->seconds = ptr;
|
my->seconds = ptr;
|
||||||
my->minutes = ptr + 60;
|
my->minutes = ptr + 60;
|
||||||
my->periods = ptr + 60 + minutesPerPeriod;
|
my->periods = ptr + 60 + minutesPerPeriod;
|
||||||
|
@ -984,9 +985,10 @@ typedef struct {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CInfo *ptr;
|
CountInfo *ptr;
|
||||||
|
|
||||||
ptr = (CInfo*)NSZoneCalloc(NSDefaultMallocZone(), i, sizeof(CInfo));
|
ptr = (CountInfo*)NSZoneCalloc
|
||||||
|
(NSDefaultMallocZone(), i, sizeof(CountInfo));
|
||||||
my->seconds = ptr;
|
my->seconds = ptr;
|
||||||
my->minutes = ptr + 60;
|
my->minutes = ptr + 60;
|
||||||
my->periods = ptr + 60 + minutesPerPeriod;
|
my->periods = ptr + 60 + minutesPerPeriod;
|
||||||
|
@ -995,7 +997,7 @@ typedef struct {
|
||||||
cperiods[my->period].tick = my->last;
|
cperiods[my->period].tick = my->last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RELEASE(c);
|
[c release];
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1006,7 +1008,9 @@ typedef struct {
|
||||||
|
|
||||||
- (void) setName: (NSString*)name
|
- (void) setName: (NSString*)name
|
||||||
{
|
{
|
||||||
ASSIGN(my->name, name);
|
[name retain];
|
||||||
|
[my->name release];
|
||||||
|
my->name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) startDuration: (NSString*)name
|
- (void) startDuration: (NSString*)name
|
||||||
|
|
12
GSTicker.m
12
GSTicker.m
|
@ -28,12 +28,11 @@
|
||||||
#import <Foundation/NSArray.h>
|
#import <Foundation/NSArray.h>
|
||||||
#import <Foundation/NSDate.h>
|
#import <Foundation/NSDate.h>
|
||||||
#import <Foundation/NSDictionary.h>
|
#import <Foundation/NSDictionary.h>
|
||||||
|
#import <Foundation/NSException.h>
|
||||||
#import <Foundation/NSThread.h>
|
#import <Foundation/NSThread.h>
|
||||||
#import <Foundation/NSString.h>
|
#import <Foundation/NSString.h>
|
||||||
#import <Foundation/NSTimer.h>
|
#import <Foundation/NSTimer.h>
|
||||||
|
|
||||||
#import <GNUstepBase/GNUstep.h>
|
|
||||||
|
|
||||||
#import "GSTicker.h"
|
#import "GSTicker.h"
|
||||||
|
|
||||||
static Class NSDateClass = 0;
|
static Class NSDateClass = 0;
|
||||||
|
@ -78,7 +77,8 @@ static NSDate *startDate = nil;
|
||||||
{
|
{
|
||||||
[theTimer invalidate];
|
[theTimer invalidate];
|
||||||
theTimer = nil;
|
theTimer = nil;
|
||||||
DESTROY(observers);
|
[observers release];
|
||||||
|
observers = nil;
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
- (id) init
|
- (id) init
|
||||||
|
@ -182,7 +182,7 @@ NSTimeInterval GSTickerTimeNow()
|
||||||
tt = [GSTickerThread new];
|
tt = [GSTickerThread new];
|
||||||
[[[NSThread currentThread] threadDictionary]
|
[[[NSThread currentThread] threadDictionary]
|
||||||
setObject: tt forKey: @"GSTickerThread"];
|
setObject: tt forKey: @"GSTickerThread"];
|
||||||
RELEASE(tt);
|
[tt release];
|
||||||
}
|
}
|
||||||
count = [tt->observers count];
|
count = [tt->observers count];
|
||||||
while (count-- > 0)
|
while (count-- > 0)
|
||||||
|
@ -198,7 +198,7 @@ NSTimeInterval GSTickerTimeNow()
|
||||||
to->observer = anObject;
|
to->observer = anObject;
|
||||||
to->userInfo = userInfo;
|
to->userInfo = userInfo;
|
||||||
[tt->observers addObject: to];
|
[tt->observers addObject: to];
|
||||||
RELEASE(to);
|
[to release];
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (NSDate*) start
|
+ (NSDate*) start
|
||||||
|
@ -326,7 +326,7 @@ NSTimeInterval GSTickerTimeNow()
|
||||||
NSLog(@"Problem firing ticker observers: %@", localException);
|
NSLog(@"Problem firing ticker observers: %@", localException);
|
||||||
}
|
}
|
||||||
NS_ENDHANDLER
|
NS_ENDHANDLER
|
||||||
RELEASE(a);
|
[a release];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
BIN
Performance/English.lproj/InfoPlist.strings
Normal file
BIN
Performance/English.lproj/InfoPlist.strings
Normal file
Binary file not shown.
26
Performance/Info.plist
Normal file
26
Performance/Info.plist
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>English</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string></string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.yourcompany.yourcocoaframework</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
317
Performance/Performance.xcodeproj/project.pbxproj
Normal file
317
Performance/Performance.xcodeproj/project.pbxproj
Normal file
|
@ -0,0 +1,317 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 44;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
795003CF10B333D000DB5EFC /* GSCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 795003C510B333D000DB5EFC /* GSCache.h */; };
|
||||||
|
795003D010B333D000DB5EFC /* GSCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 795003C610B333D000DB5EFC /* GSCache.m */; };
|
||||||
|
795003D110B333D000DB5EFC /* GSIndexedSkipList.h in Headers */ = {isa = PBXBuildFile; fileRef = 795003C710B333D000DB5EFC /* GSIndexedSkipList.h */; };
|
||||||
|
795003D210B333D000DB5EFC /* GSIndexedSkipList.m in Sources */ = {isa = PBXBuildFile; fileRef = 795003C810B333D000DB5EFC /* GSIndexedSkipList.m */; };
|
||||||
|
795003D310B333D000DB5EFC /* GSSkipMutableArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 795003C910B333D000DB5EFC /* GSSkipMutableArray.h */; };
|
||||||
|
795003D410B333D000DB5EFC /* GSSkipMutableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 795003CA10B333D000DB5EFC /* GSSkipMutableArray.m */; };
|
||||||
|
795003D510B333D000DB5EFC /* GSThroughput.h in Headers */ = {isa = PBXBuildFile; fileRef = 795003CB10B333D000DB5EFC /* GSThroughput.h */; };
|
||||||
|
795003D610B333D000DB5EFC /* GSThroughput.m in Sources */ = {isa = PBXBuildFile; fileRef = 795003CC10B333D000DB5EFC /* GSThroughput.m */; };
|
||||||
|
795003D710B333D000DB5EFC /* GSTicker.h in Headers */ = {isa = PBXBuildFile; fileRef = 795003CD10B333D000DB5EFC /* GSTicker.h */; };
|
||||||
|
795003D810B333D000DB5EFC /* GSTicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 795003CE10B333D000DB5EFC /* GSTicker.m */; };
|
||||||
|
8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
|
||||||
|
8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||||
|
0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||||
|
089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
|
1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
|
32DBCF5E0370ADEE00C91783 /* Performance_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Performance_Prefix.pch; sourceTree = "<group>"; };
|
||||||
|
795003C510B333D000DB5EFC /* GSCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GSCache.h; path = ../GSCache.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
795003C610B333D000DB5EFC /* GSCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GSCache.m; path = ../GSCache.m; sourceTree = SOURCE_ROOT; };
|
||||||
|
795003C710B333D000DB5EFC /* GSIndexedSkipList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GSIndexedSkipList.h; path = ../GSIndexedSkipList.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
795003C810B333D000DB5EFC /* GSIndexedSkipList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GSIndexedSkipList.m; path = ../GSIndexedSkipList.m; sourceTree = SOURCE_ROOT; };
|
||||||
|
795003C910B333D000DB5EFC /* GSSkipMutableArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GSSkipMutableArray.h; path = ../GSSkipMutableArray.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
795003CA10B333D000DB5EFC /* GSSkipMutableArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GSSkipMutableArray.m; path = ../GSSkipMutableArray.m; sourceTree = SOURCE_ROOT; };
|
||||||
|
795003CB10B333D000DB5EFC /* GSThroughput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GSThroughput.h; path = ../GSThroughput.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
795003CC10B333D000DB5EFC /* GSThroughput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GSThroughput.m; path = ../GSThroughput.m; sourceTree = SOURCE_ROOT; };
|
||||||
|
795003CD10B333D000DB5EFC /* GSTicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GSTicker.h; path = ../GSTicker.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
795003CE10B333D000DB5EFC /* GSTicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GSTicker.m; path = ../GSTicker.m; sourceTree = SOURCE_ROOT; };
|
||||||
|
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
8DC2EF5B0486A6940098B216 /* Performance.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Performance.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
D2F7E79907B2D74100F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
8DC2EF560486A6940098B216 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
034768DFFF38A50411DB9C8B /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
8DC2EF5B0486A6940098B216 /* Performance.framework */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
0867D691FE84028FC02AAC07 /* Performance */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
08FB77AEFE84172EC02AAC07 /* Classes */,
|
||||||
|
32C88DFF0371C24200C91783 /* Other Sources */,
|
||||||
|
089C1665FE841158C02AAC07 /* Resources */,
|
||||||
|
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
|
||||||
|
034768DFFF38A50411DB9C8B /* Products */,
|
||||||
|
);
|
||||||
|
name = Performance;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */,
|
||||||
|
1058C7B2FEA5585E11CA2CBB /* Other Frameworks */,
|
||||||
|
);
|
||||||
|
name = "External Frameworks and Libraries";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
089C1665FE841158C02AAC07 /* Resources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
8DC2EF5A0486A6940098B216 /* Info.plist */,
|
||||||
|
089C1666FE841158C02AAC07 /* InfoPlist.strings */,
|
||||||
|
);
|
||||||
|
name = Resources;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
08FB77AEFE84172EC02AAC07 /* Classes */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
795003C510B333D000DB5EFC /* GSCache.h */,
|
||||||
|
795003C610B333D000DB5EFC /* GSCache.m */,
|
||||||
|
795003C710B333D000DB5EFC /* GSIndexedSkipList.h */,
|
||||||
|
795003C810B333D000DB5EFC /* GSIndexedSkipList.m */,
|
||||||
|
795003C910B333D000DB5EFC /* GSSkipMutableArray.h */,
|
||||||
|
795003CA10B333D000DB5EFC /* GSSkipMutableArray.m */,
|
||||||
|
795003CB10B333D000DB5EFC /* GSThroughput.h */,
|
||||||
|
795003CC10B333D000DB5EFC /* GSThroughput.m */,
|
||||||
|
795003CD10B333D000DB5EFC /* GSTicker.h */,
|
||||||
|
795003CE10B333D000DB5EFC /* GSTicker.m */,
|
||||||
|
);
|
||||||
|
name = Classes;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */,
|
||||||
|
);
|
||||||
|
name = "Linked Frameworks";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
0867D6A5FE840307C02AAC07 /* AppKit.framework */,
|
||||||
|
D2F7E79907B2D74100F64583 /* CoreData.framework */,
|
||||||
|
0867D69BFE84028FC02AAC07 /* Foundation.framework */,
|
||||||
|
);
|
||||||
|
name = "Other Frameworks";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
32C88DFF0371C24200C91783 /* Other Sources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
32DBCF5E0370ADEE00C91783 /* Performance_Prefix.pch */,
|
||||||
|
);
|
||||||
|
name = "Other Sources";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXHeadersBuildPhase section */
|
||||||
|
8DC2EF500486A6940098B216 /* Headers */ = {
|
||||||
|
isa = PBXHeadersBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
795003CF10B333D000DB5EFC /* GSCache.h in Headers */,
|
||||||
|
795003D110B333D000DB5EFC /* GSIndexedSkipList.h in Headers */,
|
||||||
|
795003D310B333D000DB5EFC /* GSSkipMutableArray.h in Headers */,
|
||||||
|
795003D510B333D000DB5EFC /* GSThroughput.h in Headers */,
|
||||||
|
795003D710B333D000DB5EFC /* GSTicker.h in Headers */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXHeadersBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
8DC2EF4F0486A6940098B216 /* Performance */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Performance" */;
|
||||||
|
buildPhases = (
|
||||||
|
8DC2EF500486A6940098B216 /* Headers */,
|
||||||
|
8DC2EF520486A6940098B216 /* Resources */,
|
||||||
|
8DC2EF540486A6940098B216 /* Sources */,
|
||||||
|
8DC2EF560486A6940098B216 /* Frameworks */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = Performance;
|
||||||
|
productInstallPath = "$(HOME)/Library/Frameworks";
|
||||||
|
productName = Performance;
|
||||||
|
productReference = 8DC2EF5B0486A6940098B216 /* Performance.framework */;
|
||||||
|
productType = "com.apple.product-type.framework";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Performance" */;
|
||||||
|
compatibilityVersion = "Xcode 3.0";
|
||||||
|
hasScannedForEncodings = 1;
|
||||||
|
mainGroup = 0867D691FE84028FC02AAC07 /* Performance */;
|
||||||
|
productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
8DC2EF4F0486A6940098B216 /* Performance */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXResourcesBuildPhase section */
|
||||||
|
8DC2EF520486A6940098B216 /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
8DC2EF540486A6940098B216 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
795003D010B333D000DB5EFC /* GSCache.m in Sources */,
|
||||||
|
795003D210B333D000DB5EFC /* GSIndexedSkipList.m in Sources */,
|
||||||
|
795003D410B333D000DB5EFC /* GSSkipMutableArray.m in Sources */,
|
||||||
|
795003D610B333D000DB5EFC /* GSThroughput.m in Sources */,
|
||||||
|
795003D810B333D000DB5EFC /* GSTicker.m in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXVariantGroup section */
|
||||||
|
089C1666FE841158C02AAC07 /* InfoPlist.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
089C1667FE841158C02AAC07 /* English */,
|
||||||
|
);
|
||||||
|
name = InfoPlist.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXVariantGroup section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
1DEB91AE08733DA50010E9CD /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
FRAMEWORK_VERSION = A;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||||
|
GCC_MODEL_TUNING = G5;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
|
GCC_PREFIX_HEADER = Performance_Prefix.pch;
|
||||||
|
INFOPLIST_FILE = Info.plist;
|
||||||
|
INSTALL_PATH = "$(HOME)/Library/Frameworks";
|
||||||
|
PRODUCT_NAME = Performance;
|
||||||
|
WRAPPER_EXTENSION = framework;
|
||||||
|
ZERO_LINK = YES;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
1DEB91AF08733DA50010E9CD /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||||
|
DYLIB_CURRENT_VERSION = 1;
|
||||||
|
FRAMEWORK_VERSION = A;
|
||||||
|
GCC_MODEL_TUNING = G5;
|
||||||
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
|
GCC_PREFIX_HEADER = Performance_Prefix.pch;
|
||||||
|
INFOPLIST_FILE = Info.plist;
|
||||||
|
INSTALL_PATH = "$(HOME)/Library/Frameworks";
|
||||||
|
PRODUCT_NAME = Performance;
|
||||||
|
WRAPPER_EXTENSION = framework;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
1DEB91B208733DA50010E9CD /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
PREBINDING = NO;
|
||||||
|
SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
1DEB91B308733DA50010E9CD /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ARCHS = (
|
||||||
|
ppc,
|
||||||
|
i386,
|
||||||
|
);
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
PREBINDING = NO;
|
||||||
|
SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Performance" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
1DEB91AE08733DA50010E9CD /* Debug */,
|
||||||
|
1DEB91AF08733DA50010E9CD /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Performance" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
1DEB91B208733DA50010E9CD /* Debug */,
|
||||||
|
1DEB91B308733DA50010E9CD /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
|
||||||
|
}
|
1368
Performance/Performance.xcodeproj/richard.mode1v3
Normal file
1368
Performance/Performance.xcodeproj/richard.mode1v3
Normal file
File diff suppressed because it is too large
Load diff
117
Performance/Performance.xcodeproj/richard.pbxuser
Normal file
117
Performance/Performance.xcodeproj/richard.pbxuser
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||||
|
activeBuildConfigurationName = Debug;
|
||||||
|
activeTarget = 8DC2EF4F0486A6940098B216 /* Performance */;
|
||||||
|
addToTargets = (
|
||||||
|
8DC2EF4F0486A6940098B216 /* Performance */,
|
||||||
|
);
|
||||||
|
codeSenseManager = 795003C410B333B200DB5EFC /* Code sense */;
|
||||||
|
perUserDictionary = {
|
||||||
|
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||||
|
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||||
|
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||||
|
PBXFileTableDataSourceColumnWidthsKey = (
|
||||||
|
20,
|
||||||
|
341,
|
||||||
|
20,
|
||||||
|
48.16259765625,
|
||||||
|
43,
|
||||||
|
43,
|
||||||
|
20,
|
||||||
|
);
|
||||||
|
PBXFileTableDataSourceColumnsKey = (
|
||||||
|
PBXFileDataSource_FiletypeID,
|
||||||
|
PBXFileDataSource_Filename_ColumnID,
|
||||||
|
PBXFileDataSource_Built_ColumnID,
|
||||||
|
PBXFileDataSource_ObjectSize_ColumnID,
|
||||||
|
PBXFileDataSource_Errors_ColumnID,
|
||||||
|
PBXFileDataSource_Warnings_ColumnID,
|
||||||
|
PBXFileDataSource_Target_ColumnID,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||||
|
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||||
|
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||||
|
PBXFileTableDataSourceColumnWidthsKey = (
|
||||||
|
20,
|
||||||
|
301,
|
||||||
|
60,
|
||||||
|
20,
|
||||||
|
48.16259765625,
|
||||||
|
43,
|
||||||
|
43,
|
||||||
|
);
|
||||||
|
PBXFileTableDataSourceColumnsKey = (
|
||||||
|
PBXFileDataSource_FiletypeID,
|
||||||
|
PBXFileDataSource_Filename_ColumnID,
|
||||||
|
PBXTargetDataSource_PrimaryAttribute,
|
||||||
|
PBXFileDataSource_Built_ColumnID,
|
||||||
|
PBXFileDataSource_ObjectSize_ColumnID,
|
||||||
|
PBXFileDataSource_Errors_ColumnID,
|
||||||
|
PBXFileDataSource_Warnings_ColumnID,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
PBXPerProjectTemplateStateSaveDate = 280179604;
|
||||||
|
PBXWorkspaceStateSaveDate = 280179604;
|
||||||
|
};
|
||||||
|
perUserProjectItems = {
|
||||||
|
795003EC10B338F200DB5EFC /* XCBuildMessageTextBookmark */ = 795003EC10B338F200DB5EFC /* XCBuildMessageTextBookmark */;
|
||||||
|
795003ED10B338F200DB5EFC /* PBXTextBookmark */ = 795003ED10B338F200DB5EFC /* PBXTextBookmark */;
|
||||||
|
};
|
||||||
|
sourceControlManager = 795003C310B333B200DB5EFC /* Source Control */;
|
||||||
|
userBuildSettings = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
795003C310B333B200DB5EFC /* Source Control */ = {
|
||||||
|
isa = PBXSourceControlManager;
|
||||||
|
fallbackIsa = XCSourceControlManager;
|
||||||
|
isSCMEnabled = 0;
|
||||||
|
scmConfiguration = {
|
||||||
|
repositoryNamesForRoots = {
|
||||||
|
"" = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
795003C410B333B200DB5EFC /* Code sense */ = {
|
||||||
|
isa = PBXCodeSenseManager;
|
||||||
|
indexTemplatePath = "";
|
||||||
|
};
|
||||||
|
795003C610B333D000DB5EFC /* GSCache.m */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {565, 10569}}";
|
||||||
|
sepNavSelRange = "{17631, 0}";
|
||||||
|
sepNavVisRange = "{374, 820}";
|
||||||
|
sepNavWindowFrame = "{{391, -230}, {1167, 887}}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
795003CC10B333D000DB5EFC /* GSThroughput.m */ = {
|
||||||
|
uiCtxt = {
|
||||||
|
sepNavIntBoundsRect = "{{0, 0}, {516, 13338}}";
|
||||||
|
sepNavSelRange = "{0, 0}";
|
||||||
|
sepNavVisRange = "{0, 515}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
795003EC10B338F200DB5EFC /* XCBuildMessageTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
comments = "GNUstepBase/GNUstep.h: No such file or directory";
|
||||||
|
fRef = 795003C610B333D000DB5EFC /* GSCache.m */;
|
||||||
|
fallbackIsa = XCBuildMessageTextBookmark;
|
||||||
|
rLen = 1;
|
||||||
|
rLoc = 45;
|
||||||
|
rType = 1;
|
||||||
|
};
|
||||||
|
795003ED10B338F200DB5EFC /* PBXTextBookmark */ = {
|
||||||
|
isa = PBXTextBookmark;
|
||||||
|
fRef = 795003C610B333D000DB5EFC /* GSCache.m */;
|
||||||
|
name = "GSCache.m: 844";
|
||||||
|
rLen = 0;
|
||||||
|
rLoc = 17631;
|
||||||
|
rType = 0;
|
||||||
|
vrLen = 820;
|
||||||
|
vrLoc = 374;
|
||||||
|
};
|
||||||
|
8DC2EF4F0486A6940098B216 /* Performance */ = {
|
||||||
|
activeExec = 0;
|
||||||
|
};
|
||||||
|
}
|
7
Performance/Performance_Prefix.pch
Normal file
7
Performance/Performance_Prefix.pch
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
//
|
||||||
|
// Prefix header for all source files of the 'Performance' target in the 'Performance' project.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#endif
|
Loading…
Reference in a new issue