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@> </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