Skip to content

Commit

Permalink
Take autoreleased objects destruction in account
Browse files Browse the repository at this point in the history
  • Loading branch information
groue committed Nov 15, 2012
1 parent 7207f5f commit 8846896
Show file tree
Hide file tree
Showing 9 changed files with 125 additions and 97 deletions.
61 changes: 42 additions & 19 deletions GRMustacheBenchmark/main.m
Expand Up @@ -140,16 +140,16 @@ int main (int argc, char * const argv[])
// outputs parsing time
double time = 0;
for (NSUInteger i=0; i<sampleCount; i++) {
@autoreleasepool {
NSString *templateString = [producer randomTemplateStringWithComplexity:complexity allowingText:YES];
time += cpu_time_elapsed(^{
NSString *templateString = [producer randomTemplateStringWithComplexity:complexity allowingText:YES];
time += cpu_time_elapsed(^{
@autoreleasepool {
#if GRMUSTACHE_MAJOR_VERSION < 2 && GRMUSTACHE_MINOR_VERSION < 11
[GRMustacheTemplate parseString:templateString error:NULL];
#else
[GRMustacheTemplate templateFromString:templateString error:NULL];
#endif
});
}
}
});
}
printf("%g\n", time/sampleCount);

Expand All @@ -159,21 +159,21 @@ int main (int argc, char * const argv[])
id randomData = [RandomData new];
double time = 0;
for (NSUInteger i=0; i<sampleCount; i++) {
@autoreleasepool {
NSString *templateString = [producer randomTemplateStringWithComplexity:complexity allowingText:YES];
NSString *templateString = [producer randomTemplateStringWithComplexity:complexity allowingText:YES];
#if GRMUSTACHE_MAJOR_VERSION < 2 && GRMUSTACHE_MINOR_VERSION < 11
GRMustacheTemplate *template = [GRMustacheTemplate parseString:templateString error:NULL];
GRMustacheTemplate *template = [GRMustacheTemplate parseString:templateString error:NULL];
#else
GRMustacheTemplate *template = [GRMustacheTemplate templateFromString:templateString error:NULL];
GRMustacheTemplate *template = [GRMustacheTemplate templateFromString:templateString error:NULL];
#endif
time += cpu_time_elapsed(^{
time += cpu_time_elapsed(^{
@autoreleasepool {
#if GRMUSTACHE_MAJOR_VERSION < 6
[template renderObject:randomData];
#else
[template renderObject:randomData error:NULL];
#endif
});
}
}
});
}
printf("%g\n", time/sampleCount);

Expand All @@ -183,16 +183,39 @@ int main (int argc, char * const argv[])
double time = 0;
id randomData = [RandomData new];
for (NSUInteger i=0; i<sampleCount; i++) {
@autoreleasepool {
NSString *templateString = [producer randomTemplateStringWithComplexity:complexity allowingText:YES];
time += cpu_time_elapsed(^{
NSString *templateString = [producer randomTemplateStringWithComplexity:complexity allowingText:YES];
time += cpu_time_elapsed(^{
@autoreleasepool {
#if GRMUSTACHE_MAJOR_VERSION < 6
[GRMustacheTemplate renderObject:randomData fromString:templateString error:NULL];
[GRMustacheTemplate renderObject:randomData fromString:templateString error:NULL];
#else
[[GRMustacheTemplate templateFromString:templateString error:NULL] renderObject:randomData error:NULL];
[[GRMustacheTemplate templateFromString:templateString error:NULL] renderObject:randomData error:NULL];
#endif
});
}
}
});
}
printf("%g\n", time/sampleCount);

} else if ([verb isEqualToString:@"custom"]) {
// custom template for Instruments profiling

double time = 0;
id data = @{@"name" : @"Arthur", @"items" : @[@{@"name" : @"Ham"}, @{@"name" : @"Jam"}]};
#if GRMUSTACHE_MAJOR_VERSION < 2 && GRMUSTACHE_MINOR_VERSION < 11
GRMustacheTemplate *template = [GRMustacheTemplate parseString:@"{{{name}}} has {{#items}}{{{name}}},{{/items}}" error:NULL];
#else
GRMustacheTemplate *template = [GRMustacheTemplate templateFromString:@"{{{name}}} has {{#items}}{{{name}}},{{/items}}" error:NULL];
#endif
for (NSUInteger i=0; i<sampleCount; i++) {
time += cpu_time_elapsed(^{
@autoreleasepool {
#if GRMUSTACHE_MAJOR_VERSION < 6
[template renderObject:data];
#else
[template renderObject:data error:NULL];
#endif
}
});
}
printf("%g\n", time/sampleCount);

Expand Down
13 changes: 9 additions & 4 deletions INFO.md
Expand Up @@ -13,10 +13,15 @@ Edit Makefile, add a GRMustache git tag to the VERSIONS variable, update LATEST

### After a GRMustacheBenchmark implementation change

make clean_build
make clean_samples
make

make clean_build
make clean_samples
make

### Install LOCAL GRMustache into GRMustacheBenchmark project

make clean_version_LOCAL
Product/build/LOCAL/Release/GRMustacheBenchmark

### Compare LOCAL GRMustache to LATEST version

Local GRMustache is the GRMustache repository located in the same folder as this GRMustacheBenchmark repository.
Expand Down
Binary file modified Plots/10-parse.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Plots/10-render.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Plots/100-parse.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Plots/100-render.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Plots/2-parse.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Plots/2-render.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
148 changes: 74 additions & 74 deletions README.md
Expand Up @@ -12,84 +12,84 @@ Those benchmarks are relative, not absolute: numbers have no unit. They are all
## Rendering task

2 10 100
v6.1.0 1.8e+00 5.2e+00 5.2e+01
v6.0.1 1.7e+00 5.1e+00 5.0e+01
v6.0.0 1.8e+00 5.3e+00 5.0e+01
v5.5.2 1.5e+00 4.2e+00 3.5e+01
v5.5.1 1.5e+00 4.2e+00 3.5e+01
v5.5.0 1.5e+00 4.1e+00 3.4e+01
v5.4.4 1.1e+00 3.3e+00 2.4e+01
v5.4.3 1.2e+00 3.3e+00 2.4e+01
v5.4.2 1.2e+00 3.3e+00 2.4e+01
v5.4.1 1.1e+00 3.2e+00 2.4e+01
v5.4.0 1.2e+00 3.3e+00 2.4e+01
v5.3.0 1.2e+00 3.3e+00 2.4e+01
v5.2.0 1.1e+00 3.0e+00 2.2e+01
v5.1.0 1.1e+00 3.0e+00 2.1e+01
v5.0.1 1.0e+00 2.7e+00 1.9e+01
v5.0.0 1.0e+00 2.7e+00 1.8e+01
v4.3.4 1.5e+00 4.0e+00 3.2e+01
v4.3.3 1.5e+00 4.1e+00 3.3e+01
v4.3.2 1.5e+00 4.0e+00 3.2e+01
v4.3.1 1.5e+00 3.8e+00 3.1e+01
v4.3.0 1.5e+00 4.6e+00 3.2e+01
v4.2.0 1.5e+00 4.9e+00 4.4e+01
v4.1.1 1.4e+00 4.7e+00 4.0e+01
v4.1.0 1.4e+00 4.6e+00 3.9e+01
v4.0.0 1.4e+00 4.7e+00 3.9e+01
v3.0.1 1.5e+00 4.8e+00 4.1e+01
v3.0.0 1.4e+00 4.8e+00 4.1e+01
v2.0.0 1.5e+00 4.8e+00 4.1e+01
v1.13.0 1.6e+00 5.4e+00 4.5e+01
v1.12.2 1.6e+00 5.3e+00 4.6e+01
v1.12.1 1.6e+00 5.4e+00 4.7e+01
v1.12.0 1.6e+00 5.4e+00 4.7e+01
v1.11.2 1.6e+00 5.3e+00 4.7e+01
v1.11.1 1.6e+00 5.3e+00 4.6e+01
v1.11.0 1.6e+00 5.3e+00 4.7e+01
v1.10.3 1.6e+00 5.3e+00 4.7e+01
v1.10.2 1.6e+00 5.3e+00 4.7e+01
v6.1.0 1.7e+00 4.7e+00 4.4e+01
v6.0.1 1.6e+00 4.7e+00 4.4e+01
v6.0.0 1.6e+00 4.6e+00 4.3e+01
v5.5.2 1.5e+00 4.3e+00 3.9e+01
v5.5.1 1.6e+00 4.3e+00 3.9e+01
v5.5.0 1.5e+00 4.2e+00 3.8e+01
v5.4.4 1.1e+00 3.0e+00 2.1e+01
v5.4.3 1.1e+00 3.0e+00 2.2e+01
v5.4.2 1.1e+00 3.0e+00 2.1e+01
v5.4.1 1.1e+00 3.0e+00 2.1e+01
v5.4.0 1.1e+00 3.0e+00 2.2e+01
v5.3.0 1.1e+00 3.0e+00 2.1e+01
v5.2.0 1.1e+00 2.8e+00 2.0e+01
v5.1.0 1.1e+00 2.8e+00 1.9e+01
v5.0.1 1.0e+00 2.6e+00 1.8e+01
v5.0.0 1.0e+00 2.5e+00 1.7e+01
v4.3.4 1.2e+00 3.3e+00 2.5e+01
v4.3.3 1.2e+00 3.2e+00 2.5e+01
v4.3.2 1.2e+00 3.2e+00 2.6e+01
v4.3.1 1.2e+00 3.1e+00 2.5e+01
v4.3.0 1.2e+00 3.1e+00 2.5e+01
v4.2.0 1.2e+00 3.8e+00 3.3e+01
v4.1.1 1.2e+00 3.7e+00 3.0e+01
v4.1.0 1.2e+00 3.7e+00 3.0e+01
v4.0.0 1.3e+00 3.8e+00 3.0e+01
v3.0.1 1.3e+00 3.9e+00 3.1e+01
v3.0.0 1.3e+00 3.9e+00 3.1e+01
v2.0.0 1.3e+00 3.8e+00 3.1e+01
v1.13.0 1.3e+00 4.2e+00 3.5e+01
v1.12.2 1.4e+00 4.2e+00 3.6e+01
v1.12.1 1.3e+00 4.3e+00 3.7e+01
v1.12.0 1.3e+00 4.2e+00 3.6e+01
v1.11.2 1.4e+00 4.4e+00 3.8e+01
v1.11.1 1.4e+00 4.3e+00 3.7e+01
v1.11.0 1.4e+00 4.3e+00 3.7e+01
v1.10.3 1.4e+00 4.3e+00 3.7e+01
v1.10.2 1.4e+00 4.4e+00 3.8e+01

## Parsing task

2 10 100
v6.1.0 3.8e+00 1.4e+01 1.3e+02
v6.0.1 3.8e+00 1.4e+01 1.3e+02
v6.0.0 4.5e+00 1.4e+01 1.3e+02
v5.5.2 4.5e+00 1.5e+01 1.4e+02
v5.5.1 4.4e+00 1.5e+01 1.4e+02
v5.5.0 4.4e+00 1.5e+01 1.4e+02
v5.4.4 4.5e+00 1.5e+01 1.4e+02
v5.4.3 4.4e+00 1.5e+01 1.4e+02
v5.4.2 4.3e+00 1.5e+01 1.4e+02
v5.4.1 4.4e+00 1.5e+01 1.4e+02
v5.4.0 4.4e+00 1.5e+01 1.4e+02
v5.3.0 4.4e+00 1.5e+01 1.4e+02
v5.2.0 4.4e+00 1.5e+01 1.4e+02
v5.1.0 4.5e+00 1.5e+01 1.4e+02
v5.0.1 5.1e+00 1.5e+01 1.4e+02
v5.0.0 4.4e+00 1.5e+01 1.4e+02
v4.3.4 4.4e+00 1.5e+01 1.4e+02
v4.3.3 4.4e+00 1.5e+01 1.4e+02
v4.3.2 4.2e+00 1.5e+01 1.4e+02
v4.3.1 4.3e+00 1.5e+01 1.4e+02
v4.3.0 4.4e+00 1.5e+01 1.4e+02
v4.2.0 4.0e+00 1.3e+01 1.2e+02
v4.1.1 4.1e+00 1.3e+01 1.2e+02
v4.1.0 3.9e+00 1.3e+01 1.1e+02
v4.0.0 4.1e+00 1.3e+01 1.1e+02
v3.0.1 3.9e+00 1.3e+01 1.1e+02
v3.0.0 4.0e+00 1.3e+01 1.1e+02
v2.0.0 4.1e+00 1.3e+01 1.2e+02
v1.13.0 4.2e+00 1.3e+01 1.2e+02
v1.12.2 3.8e+00 1.2e+01 1.1e+02
v1.12.1 4.7e+00 1.6e+01 1.5e+02
v1.12.0 3.8e+00 1.2e+01 1.0e+02
v1.11.2 3.8e+00 1.2e+01 1.0e+02
v1.11.1 3.7e+00 1.2e+01 1.0e+02
v1.11.0 3.7e+00 1.2e+01 1.0e+02
v1.10.3 3.7e+00 1.2e+01 1.0e+02
v1.10.2 3.7e+00 1.2e+01 1.0e+02
v6.1.0 3.5e+00 1.2e+01 1.2e+02
v6.0.1 3.6e+00 1.2e+01 1.2e+02
v6.0.0 3.4e+00 1.2e+01 1.1e+02
v5.5.2 3.5e+00 1.2e+01 1.1e+02
v5.5.1 3.4e+00 1.2e+01 1.1e+02
v5.5.0 3.4e+00 1.2e+01 1.1e+02
v5.4.4 3.4e+00 1.2e+01 1.1e+02
v5.4.3 3.4e+00 1.2e+01 1.2e+02
v5.4.2 3.4e+00 1.2e+01 1.1e+02
v5.4.1 3.4e+00 1.2e+01 1.2e+02
v5.4.0 3.4e+00 1.2e+01 1.2e+02
v5.3.0 3.4e+00 1.2e+01 1.2e+02
v5.2.0 3.4e+00 1.2e+01 1.1e+02
v5.1.0 3.4e+00 1.2e+01 1.1e+02
v5.0.1 3.4e+00 1.2e+01 1.2e+02
v5.0.0 3.4e+00 1.2e+01 1.2e+02
v4.3.4 3.3e+00 1.2e+01 1.2e+02
v4.3.3 3.4e+00 1.2e+01 1.2e+02
v4.3.2 3.5e+00 1.2e+01 1.1e+02
v4.3.1 3.5e+00 1.2e+01 1.1e+02
v4.3.0 3.5e+00 1.2e+01 1.1e+02
v4.2.0 3.2e+00 1.1e+01 1.0e+02
v4.1.1 3.2e+00 1.1e+01 1.0e+02
v4.1.0 3.2e+00 1.1e+01 1.0e+02
v4.0.0 3.2e+00 1.1e+01 1.0e+02
v3.0.1 3.3e+00 1.1e+01 1.0e+02
v3.0.0 3.3e+00 1.1e+01 1.0e+02
v2.0.0 3.3e+00 1.1e+01 1.0e+02
v1.13.0 3.3e+00 1.2e+01 1.1e+02
v1.12.2 3.3e+00 1.2e+01 1.1e+02
v1.12.1 4.1e+00 1.5e+01 1.4e+02
v1.12.0 3.3e+00 1.1e+01 1.0e+02
v1.11.2 3.2e+00 1.1e+01 1.0e+02
v1.11.1 3.2e+00 1.1e+01 1.0e+02
v1.11.0 3.2e+00 1.1e+01 1.0e+02
v1.10.3 3.3e+00 1.1e+01 1.0e+02
v1.10.2 3.3e+00 1.1e+01 1.0e+02

-----

Expand Down

0 comments on commit 8846896

Please sign in to comment.