1#!/usr/bin/env io
2
3
4
5write("""
6<html>
7<head>
8    <link rel="stylesheet" href="http://www.iolanguage.com/site.css">
9</head>
10<body>
11<ul>
12""")
13
14
15template := """
16<table cellpadding=3 cellspacing=0 border=0>
17<tr>
18<td bgcolor=@color@ width=@length@><font color=@fontColor@>@name@ @time@</font></td>
19</tr>
20</table>
21"""
22
23template := """
24<table cellpadding=3 cellspacing=0 border=0>
25<tr>
26<td bgcolor=@color@ width=45><font color=@fontColor@>@name@</td>
27<td bgcolor=@color@ width=30 align=right><font color=@fontColor@>@time@</td>
28<td bgcolor=@color@ width=@length@>&nbsp;</td>
29</tr>
30</table>
31"""
32//<td><font color=#f2f2f2>@time@</td>
33
34
35slotNames := list(
36	"localAccesses",
37	"localSets",
38	"slotAccesses",
39	"slotSets",
40	"blockActivations",
41	"instantiations")
42
43SpeedTestResult := Object clone do(
44    name ::= ""
45    color ::= "#888888"
46    fontColor ::= "#aaaaaa"
47
48    showBarFor := method(slotName, scale,
49	value := self getSlot(slotName)
50	t := template asBuffer
51	t replaceSeq("@name@", name)
52	t replaceSeq("@time@", value asString(0, 1) )
53	t replaceSeq("@length@",  ((value * 300 / scale) - 75) asString(0, 0))
54	t replaceSeq("@color@",  color)
55	t replaceSeq("@fontColor@",  fontColor)
56	write(t, "\n\n")
57    )
58)
59
60Io := SpeedTestResult clone setName("Io")
61Io setColor("#9999cc")
62Io setFontColor("#bbbbee")
63
64Python := SpeedTestResult clone setName("Python")
65Ruby   := SpeedTestResult clone setName("Ruby")
66languages := list(Io, Python, Ruby)
67
68doFile(Path with(System launchPath, "SpeedResults"))
69
70write("<br>Values are in millions of operations per second, so larger values are better.")
71
72slotNames foreach(slotName,
73    write("<p>", slotName, "<ul><table cellspacing=1 cellpadding=0 border=0>")
74    languages foreach(language,
75	write("<tr><td>")
76	language showBarFor(slotName, languages at(1) getSlot(slotName))
77	write("</td></tr>")
78    )
79    write("</table></ul>")
80)
81
82write("<p>versions<p><ul>")
83
84languages foreach(language,
85  write(language name, " ", language version, "<br>")
86)
87
88write("</ul>")
89
90
91
92write("</ul>")
93
94
95//System system("machine")
96
97
98