2018-10-19 15:25:29 -04:00
|
|
|
<!-- Copyright 2018 the Deno authors. All rights reserved. MIT license. -->
|
2018-09-21 12:06:59 -04:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
|
|
|
<head>
|
2018-11-15 19:06:03 -05:00
|
|
|
<title>Deno</title>
|
2018-09-21 12:06:59 -04:00
|
|
|
<link rel="stylesheet" href="https://unpkg.com/c3@0.6.7/c3.min.css">
|
2018-10-18 06:23:26 -04:00
|
|
|
<link rel="stylesheet" href="style.css">
|
|
|
|
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />
|
2018-09-21 12:06:59 -04:00
|
|
|
</head>
|
|
|
|
<body>
|
2018-10-18 06:23:26 -04:00
|
|
|
<main>
|
2018-12-20 15:09:44 -05:00
|
|
|
<img src="deno_logo.png" width=150 />
|
|
|
|
|
2018-11-15 19:06:03 -05:00
|
|
|
<h1>Deno</h1>
|
|
|
|
|
2018-12-12 17:40:48 -05:00
|
|
|
<p>Deno is a program for executing JavaScript and TypeScript outside of the
|
2018-11-15 19:06:03 -05:00
|
|
|
web browser.
|
2018-10-18 06:23:26 -04:00
|
|
|
|
|
|
|
<p> <a href="https://github.com/denoland/deno">github.com/denoland/deno</a>
|
|
|
|
|
2018-11-15 19:06:03 -05:00
|
|
|
<p> <a href="https://github.com/denoland/deno/blob/master/Docs.md">Documentation</a>
|
|
|
|
|
|
|
|
<p> <a href="typedoc/index.html">API Reference</a>
|
2018-10-18 06:23:26 -04:00
|
|
|
|
2018-12-20 15:09:44 -05:00
|
|
|
<p><a href="https://github.com/denoland/deno_std">Deno standard modules</a>
|
|
|
|
|
2018-12-18 18:13:01 -05:00
|
|
|
<p>Install Deno into ~/.deno/bin
|
|
|
|
<pre>
|
|
|
|
curl -L https://deno.land/x/install/install.py | python
|
|
|
|
export PATH=$HOME/.deno/bin:$PATH
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
Try a Deno program. Install by bash alias.
|
|
|
|
This one serves a local directory in HTTP.
|
|
|
|
<pre>
|
|
|
|
alias file_server="deno \
|
|
|
|
https://deno.land/x/net/file_server.ts --allow-net"
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
Run it:
|
|
|
|
<pre>
|
|
|
|
% file_server .
|
|
|
|
Downloading https://deno.land/x/net/file_server.ts...
|
|
|
|
[...]
|
|
|
|
HTTP server listening on http://0.0.0.0:4500/
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
And if you ever want to upgrade to the latest published version:
|
|
|
|
<pre>
|
|
|
|
file_server --reload
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
2018-10-18 06:23:26 -04:00
|
|
|
<h2>Execution time</h2>
|
|
|
|
This shows how much time total it takes to run a few simple deno programs:
|
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tests/002_hello.ts">tests/002_hello.ts</a>
|
|
|
|
and
|
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tests/003_relative_import.ts">tests/003_relative_import.ts</a>.
|
|
|
|
For deno to execute typescript, it must first compile it to JS.
|
|
|
|
A warm startup is when deno has a cached JS output already, so
|
|
|
|
it should be fast because it bypasses the TS compiler.
|
|
|
|
A cold startup is when deno must compile from scratch.
|
|
|
|
<div id="exec-time-chart"></div>
|
|
|
|
|
|
|
|
<h2>Throughput</h2>
|
2018-12-13 16:28:49 -05:00
|
|
|
Time it takes to pipe a certain amount of data through Deno.
|
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tests/echo_server.ts">echo_server.ts</a>
|
|
|
|
and
|
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tests/cat.ts">cat.ts</a>
|
|
|
|
Smaller is better.
|
|
|
|
|
2018-10-18 06:23:26 -04:00
|
|
|
<div id="throughput-chart"></div>
|
|
|
|
|
|
|
|
<h2>Req/Sec</h2>
|
2018-12-13 16:28:49 -05:00
|
|
|
Tests HTTP server performance. 10 keep-alive connections
|
|
|
|
do as many hello-world requests as possible. Bigger is better.
|
|
|
|
<ul>
|
|
|
|
<!-- TODO rename "deno" to "deno_tcp". -->
|
|
|
|
<li><a
|
|
|
|
href="https://github.com/denoland/deno/blob/master/tests/http_bench.ts">deno</a>
|
|
|
|
is a fake http server that doesn't parse HTTP. It is comparable to <a
|
|
|
|
href="https://github.com/denoland/deno/blob/master/tools/node_tcp.js">node_tcp</a>.
|
|
|
|
<li><a
|
|
|
|
href="https://github.com/denoland/deno_net/blob/master/http_bench.ts">deno_net_http</a>
|
|
|
|
is a web server written in TypeScript. It
|
|
|
|
is comparable to <a
|
|
|
|
href="https://github.com/denoland/deno/blob/master/tools/node_http.js">node_http</a>.
|
|
|
|
<li><a
|
|
|
|
href="https://github.com/denoland/deno/blob/master/tools/hyper_hello.rs">hyper</a>
|
|
|
|
is a Rust HTTP server and represents an upper bound.
|
|
|
|
</ul>
|
|
|
|
|
2018-10-18 06:23:26 -04:00
|
|
|
<div id="req-per-sec-chart"></div>
|
|
|
|
|
|
|
|
<h2>Executable size</h2>
|
|
|
|
deno ships only a single binary. We track its size here.
|
|
|
|
<div id="binary-size-chart"></div>
|
|
|
|
|
|
|
|
<h2>Thread count</h2>
|
|
|
|
How many threads various programs use.
|
|
|
|
<div id="thread-count-chart"></div>
|
|
|
|
|
|
|
|
<h2>Syscall count</h2>
|
|
|
|
How many total syscalls are performed when executing a given script.
|
|
|
|
<div id="syscall-count-chart"></div>
|
|
|
|
|
|
|
|
<h2>Travis</h2>
|
|
|
|
How long for Travis CI to return a green status for pull requests.
|
|
|
|
<div id="travis-compile-time-chart"></div>
|
2018-10-20 03:56:24 -04:00
|
|
|
|
|
|
|
<h2>References</h2>
|
|
|
|
<p> <a href="./all_benchmark.html">All benchmark data</a>
|
|
|
|
|
2018-10-18 06:23:26 -04:00
|
|
|
</main>
|
2018-09-21 12:06:59 -04:00
|
|
|
<script src="https://unpkg.com/d3@5.7.0/dist/d3.min.js"></script>
|
|
|
|
<script src="https://unpkg.com/c3@0.6.7/c3.min.js"></script>
|
2018-09-26 20:41:23 -04:00
|
|
|
|
2018-09-24 11:31:14 -04:00
|
|
|
<script type="module">
|
2018-10-20 03:56:24 -04:00
|
|
|
import { drawCharts } from "./app.js";
|
2018-11-14 09:38:42 -05:00
|
|
|
|
|
|
|
drawCharts("recent.json");
|
2018-09-24 11:31:14 -04:00
|
|
|
</script>
|
2018-09-21 12:06:59 -04:00
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
|