Skip to content

Instantly share code, notes, and snippets.

@nobusue
Created June 30, 2011 07:21
Show Gist options
  • Save nobusue/1055792 to your computer and use it in GitHub Desktop.
Save nobusue/1055792 to your computer and use it in GitHub Desktop.
SPECjEnterprise2010の結果一覧をTSVファイルに書き出すGroovyスクリプト
@Grab(group='net.sourceforge.nekohtml', module='nekohtml', version='1.9.14')
import org.cyberneko.html.parsers.SAXParser
def parser = new XmlParser(new SAXParser())
def html = parser.parse('http://www.spec.org/jEnterprise2010/results/jEnterprise2010.html')
//new XmlNodePrinter().print(html)
def result = []
def baseUrl = 'http://www.spec.org/jEnterprise2010/results/'
html.BODY.DIV.TABLE.TBODY.TR.each {
def r = []
def submitter_name = it.TD.find{it.@class == 'submitter_name'}?.text()
if(!submitter_name) return
r << submitter_name
r << it.TD.find{it.@class == 'system_title'}?.text()
r << it.TD.SPAN.find{it.@class == 'disclosures'}?.text().replaceAll(/\|/, '')
r << baseUrl + it.TD.SPAN.A.@href[0]
def metric = it.TD.find{it.@class == 'result_metric'}?.text()
r << metric
r << it.TD.find{it.@class == 'system_sw_JEE_nNode'}?.text()
def cores = it.TD.find{it.@class == 'system_sw_JEE_nCPU'}?.text()
r << cores
r << it.TD.find{it.@class == 'system_sw_DB_nNode'}?.text()
r << it.TD.find{it.@class == 'system_sw_DB_nCPU'}?.text()
def coresNum = (cores =~ /(\d+) cores,/)[0][1]
def resultPerCore = metric.replaceAll(/,/,'').toDouble() / coresNum.toInteger()
r << coresNum
r << resultPerCore
result << r
}
//println result.size()
println( ['Tested By','System Name','Date','URL','Result','JEE Nodes','JEE CPU','DB Nodes','DB CPU','Cores','jops/Core'].join('\t') )
result.each{ println it.join('\t') }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment