Created
October 17, 2012 13:40
-
-
Save jashkenas/3905579 to your computer and use it in GitHub Desktop.
Quick Benchmark vs. Haml vs. ERB. vs. Slim (http://news.ycombinator.com/item?id=4663724)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var http = require('http'); | |
var fs = require('fs'); | |
var _ = require('underscore'); | |
var items = { | |
"Headline 1": "Link1 Link2 Link3 Link4 Link5 Link6 Link7".split(' '), | |
"Headline 2": "Link1 Link2 Link3 Link4 Link5 Link6 Link7".split(' '), | |
"Headline 3": "Link1 Link2 Link3 Link4 Link5 Link6 Link7".split(' '), | |
"Headline 4": "Link1 Link2 Link3 Link4 Link5 Link6 Link7".split(' ') | |
}; | |
var template = _.template(fs.readFileSync('page.jst').toString()); | |
http.createServer(function(req, res) { | |
res.writeHead(200, {'Content-Type': 'text/html'}); | |
res.end(template({items: items})); | |
}).listen(1337, '127.0.0.1'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var fs = require('fs'); | |
var _ = require('underscore'); | |
var express = require('express'); | |
var items = { | |
"Headline 1": "Link1 Link2 Link3 Link4 Link5 Link6 Link7".split(' '), | |
"Headline 2": "Link1 Link2 Link3 Link4 Link5 Link6 Link7".split(' '), | |
"Headline 3": "Link1 Link2 Link3 Link4 Link5 Link6 Link7".split(' '), | |
"Headline 4": "Link1 Link2 Link3 Link4 Link5 Link6 Link7".split(' ') | |
}; | |
var template = _.template(fs.readFileSync('page.jst').toString()); | |
var app = express(); | |
app.get('/index.html', function(req, res) { | |
res.writeHead(200, {'Content-Type': 'text/html'}); | |
res.end(template({items: items})); | |
}); | |
app.listen(1337); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title> Testanwendung </title> | |
</head> | |
<body> | |
<div class="navbar navbar-inverse navbar-fixed-top"> | |
<div class="navbar-inner"> | |
<div class="container-fluid"> | |
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> | |
<span class="icon-bar"></span> | |
<span class="icon-bar"></span> | |
<span class="icon-bar"></span> | |
</a> | |
<a class="brand" href="#">Project name</a> | |
<div class="nav-collapse collapse"> | |
<p class="navbar-text pull-right"> | |
Logged in as <a href="#" class="navbar-link">Username</a> | |
</p> | |
<ul class="nav"> | |
<li class="active"><a href="#">Home</a></li> | |
<li><a href="#about">About</a></li> | |
<li><a href="#contact">Contact</a></li> | |
</ul> | |
</div><!--/.nav-collapse --> | |
</div> | |
</div> | |
</div> | |
<div class="container-fluid"> | |
<div class="row-fluid"> | |
<div class="span3"> | |
<div class="well sidebar-nav"> | |
<ul class="nav nav-list"> | |
<% for (var key in items) { %> | |
<li class="nav-header"><%= key %></li> | |
<% for (var i = 0, l = items[key].length; i < l; i++) { %> | |
<li><a href="#"><%= items[key][i] %></a></li> | |
<% } %> | |
<% } %> | |
</ul> | |
</div><!--/.well --> | |
</div><!--/span--> | |
<div class="span9"> | |
<div class="hero-unit"> | |
<h1>Hello, world!</h1> | |
<p>This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.</p> | |
<p><a class="btn btn-primary btn-large">Learn more »</a></p> | |
</div> | |
<div class="row-fluid"> | |
<div class="span4"> | |
<h2>Heading</h2> | |
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p> | |
<p><a class="btn" href="#">View details »</a></p> | |
</div><!--/span--> | |
<div class="span4"> | |
<h2>Heading</h2> | |
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p> | |
<p><a class="btn" href="#">View details »</a></p> | |
</div><!--/span--> | |
<div class="span4"> | |
<h2>Heading</h2> | |
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p> | |
<p><a class="btn" href="#">View details »</a></p> | |
</div><!--/span--> | |
</div><!--/row--> | |
<div class="row-fluid"> | |
<div class="span4"> | |
<h2>Heading</h2> | |
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p> | |
<p><a class="btn" href="#">View details »</a></p> | |
</div><!--/span--> | |
<div class="span4"> | |
<h2>Heading</h2> | |
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p> | |
<p><a class="btn" href="#">View details »</a></p> | |
</div><!--/span--> | |
<div class="span4"> | |
<h2>Heading</h2> | |
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p> | |
<p><a class="btn" href="#">View details »</a></p> | |
</div><!--/span--> | |
</div><!--/row--> | |
</div><!--/span--> | |
</div><!--/row--> | |
<hr> | |
<footer> | |
<p>© Company 2012</p> | |
</footer> | |
</div> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
~ > ab -n 1000 -c 1 http://127.0.0.1:1337/index.html | |
This is ApacheBench, Version 2.3 <$Revision: 655654 $> | |
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ | |
Licensed to The Apache Software Foundation, http://www.apache.org/ | |
Benchmarking 127.0.0.1 (be patient) | |
Completed 100 requests | |
Completed 200 requests | |
Completed 300 requests | |
Completed 400 requests | |
Completed 500 requests | |
Completed 600 requests | |
Completed 700 requests | |
Completed 800 requests | |
Completed 900 requests | |
Completed 1000 requests | |
Finished 1000 requests | |
Server Software: | |
Server Hostname: 127.0.0.1 | |
Server Port: 1337 | |
Document Path: /index.html | |
Document Length: 6445 bytes | |
Concurrency Level: 1 | |
Time taken for tests: 0.533 seconds | |
Complete requests: 1000 | |
Failed requests: 0 | |
Write errors: 0 | |
Total transferred: 6568000 bytes | |
HTML transferred: 6445000 bytes | |
Requests per second: 1876.81 [#/sec] (mean) | |
Time per request: 0.533 [ms] (mean) | |
Time per request: 0.533 [ms] (mean, across all concurrent requests) | |
Transfer rate: 12037.95 [Kbytes/sec] received | |
Connection Times (ms) | |
min mean[+/-sd] median max | |
Connect: 0 0 0.1 0 3 | |
Processing: 0 0 0.2 0 3 | |
Waiting: 0 0 0.2 0 3 | |
Total: 0 1 0.3 0 6 | |
ERROR: The median and mean for the total time are more than twice the standard | |
deviation apart. These results are NOT reliable. | |
Percentage of the requests served within a certain time (ms) | |
50% 0 | |
66% 0 | |
75% 0 | |
80% 0 | |
90% 1 | |
95% 1 | |
98% 1 | |
99% 2 | |
100% 6 (longest request) | |
~ > ab -n 1000 -c 10 http://127.0.0.1:1337/index.html | |
This is ApacheBench, Version 2.3 <$Revision: 655654 $> | |
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ | |
Licensed to The Apache Software Foundation, http://www.apache.org/ | |
Benchmarking 127.0.0.1 (be patient) | |
Completed 100 requests | |
Completed 200 requests | |
Completed 300 requests | |
Completed 400 requests | |
Completed 500 requests | |
Completed 600 requests | |
Completed 700 requests | |
Completed 800 requests | |
Completed 900 requests | |
Completed 1000 requests | |
Finished 1000 requests | |
Server Software: | |
Server Hostname: 127.0.0.1 | |
Server Port: 1337 | |
Document Path: /index.html | |
Document Length: 6445 bytes | |
Concurrency Level: 10 | |
Time taken for tests: 0.366 seconds | |
Complete requests: 1000 | |
Failed requests: 0 | |
Write errors: 0 | |
Total transferred: 6568000 bytes | |
HTML transferred: 6445000 bytes | |
Requests per second: 2730.46 [#/sec] (mean) | |
Time per request: 3.662 [ms] (mean) | |
Time per request: 0.366 [ms] (mean, across all concurrent requests) | |
Transfer rate: 17513.32 [Kbytes/sec] received | |
Connection Times (ms) | |
min mean[+/-sd] median max | |
Connect: 0 0 0.2 0 3 | |
Processing: 0 3 2.3 3 18 | |
Waiting: 0 3 2.2 3 17 | |
Total: 0 4 2.3 3 18 | |
Percentage of the requests served within a certain time (ms) | |
50% 3 | |
66% 4 | |
75% 5 | |
80% 5 | |
90% 6 | |
95% 7 | |
98% 8 | |
99% 15 | |
100% 18 (longest request) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
~ > ab -n 1000 -c 1 http://127.0.0.1:1337/index.html | |
This is ApacheBench, Version 2.3 <$Revision: 655654 $> | |
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ | |
Licensed to The Apache Software Foundation, http://www.apache.org/ | |
Benchmarking 127.0.0.1 (be patient) | |
Completed 100 requests | |
Completed 200 requests | |
Completed 300 requests | |
Completed 400 requests | |
Completed 500 requests | |
Completed 600 requests | |
Completed 700 requests | |
Completed 800 requests | |
Completed 900 requests | |
Completed 1000 requests | |
Finished 1000 requests | |
Server Software: | |
Server Hostname: 127.0.0.1 | |
Server Port: 1337 | |
Document Path: /index.html | |
Document Length: 6445 bytes | |
Concurrency Level: 1 | |
Time taken for tests: 0.577 seconds | |
Complete requests: 1000 | |
Failed requests: 0 | |
Write errors: 0 | |
Total transferred: 6545000 bytes | |
HTML transferred: 6445000 bytes | |
Requests per second: 1732.41 [#/sec] (mean) | |
Time per request: 0.577 [ms] (mean) | |
Time per request: 0.577 [ms] (mean, across all concurrent requests) | |
Transfer rate: 11072.85 [Kbytes/sec] received | |
Connection Times (ms) | |
min mean[+/-sd] median max | |
Connect: 0 0 0.1 0 2 | |
Processing: 0 0 0.7 0 18 | |
Waiting: 0 0 0.6 0 18 | |
Total: 0 1 0.7 0 19 | |
WARNING: The median and mean for the total time are not within a normal deviation | |
These results are probably not that reliable. | |
Percentage of the requests served within a certain time (ms) | |
50% 0 | |
66% 0 | |
75% 1 | |
80% 1 | |
90% 1 | |
95% 1 | |
98% 2 | |
99% 3 | |
100% 19 (longest request) | |
~ > | |
~ > | |
~ > ab -n 1000 -c 10 http://127.0.0.1:1337/index.html | |
This is ApacheBench, Version 2.3 <$Revision: 655654 $> | |
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ | |
Licensed to The Apache Software Foundation, http://www.apache.org/ | |
Benchmarking 127.0.0.1 (be patient) | |
Completed 100 requests | |
Completed 200 requests | |
Completed 300 requests | |
Completed 400 requests | |
Completed 500 requests | |
Completed 600 requests | |
Completed 700 requests | |
Completed 800 requests | |
Completed 900 requests | |
Completed 1000 requests | |
Finished 1000 requests | |
Server Software: | |
Server Hostname: 127.0.0.1 | |
Server Port: 1337 | |
Document Path: /index.html | |
Document Length: 6445 bytes | |
Concurrency Level: 10 | |
Time taken for tests: 0.422 seconds | |
Complete requests: 1000 | |
Failed requests: 0 | |
Write errors: 0 | |
Total transferred: 6545000 bytes | |
HTML transferred: 6445000 bytes | |
Requests per second: 2370.86 [#/sec] (mean) | |
Time per request: 4.218 [ms] (mean) | |
Time per request: 0.422 [ms] (mean, across all concurrent requests) | |
Transfer rate: 15153.59 [Kbytes/sec] received | |
Connection Times (ms) | |
min mean[+/-sd] median max | |
Connect: 0 0 0.6 0 10 | |
Processing: 0 4 4.3 3 30 | |
Waiting: 0 3 4.0 2 30 | |
Total: 0 4 4.4 3 31 | |
Percentage of the requests served within a certain time (ms) | |
50% 3 | |
66% 4 | |
75% 4 | |
80% 5 | |
90% 7 | |
95% 12 | |
98% 22 | |
99% 26 | |
100% 31 (longest request) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
That wasn't expected... Quite interesting though.