我從命令行運行Netlogo時有點生疏,從未使用過基準測試功能。看起來很有希望。 =)Netlogo基準測試
我完全是在開始,因爲它似乎NetLogo 6.0可能有點不同於5. *。
我試圖讓基準套件運行:https://github.com/NetLogo/NetLogo/wiki/Benchmarking
現在,我下載了一些文件從http://ccl.northwestern.edu/netlogo/models/models/test/benchmarks/
,並在我的NetLogo 6.0目錄中創建2個目錄
NetLogo 6.0 /型號/測試
and
的NetLogo 6.0 /模型/基準
,並把從http://ccl.northwestern.edu/netlogo/models/models/test/benchmarks/文件放到我的基準目錄。
在網站上,它說運行./sbt
,然後run-main org.nlogo.headless.HeadlessBenchmarker Bureaucrats
但是,我是n00bish,沒有命令./sbt setup。我看到這是一個普通的擴展安裝程序命令在線,但不知道該怎麼辦...對不起。所以我現在的問題是,接下來我要做些什麼才能讓它啓動並運行?
從文檔方面來看,我認爲可能需要清理一下,/models/test/benchmarks/
中應該有一個文件,名爲"Bureaucrats Benchmark.nlogo"
我沒有意識到驅動程序將" Benchmark.nlogo"
添加到提供的名稱中。如果文件被稱爲"<name> Benchmark.nlogo"
我沒有得到它但它可能是說提供<name>
到org.nlogo.headless.HeadlessBenchmarker有用的,但有什麼辦法讓我們打電話給所有的基準測試在基準目錄中?文檔中提到了它,但我沒有看到任何命令。
讓我知道你的想法和任何幫助表示讚賞!
編輯:從git下載repo後,正如Bryan建議的那樣,我運行了./sbt並得到了以下錯誤。
[錯誤](運行主-0)拋出java.lang.ClassNotFoundException: org.nlogo.headless.HeadlessBenchmarker 拋出java.lang.ClassNotFoundException: org.nlogo.headless.HeadlessBenchmarker在 java.lang中.ClassLoader.findClass(ClassLoader.java:530) java.lang.ClassLoader.loadClass(ClassLoader.java:424)[trace] Stack trace suppress:運行最後一個root/compile:runMain獲取完整輸出。 java.lang.RuntimeException:非零退出代碼:1 at scala.sys.package $ .error(package.scala:27)[trace]堆棧跟蹤 已抑制:運行最後一個根/編譯:runMain輸出全部內容。[錯誤] (根/編譯:runMain)非零的退出代碼:1 [錯誤]總時間:2秒, 完成2017年4月10日下午2時16分21秒
我正在計劃基準化一些基本原理,與Netlogo方面的一些替代實現進行比較。例如,半徑內拉出一個正方形並通過它進行過濾。現在有更多的算法可以計算pi * r^2和Netlogo的4r^2結果。我認爲通過使用您提供的代碼(設置一個計時器)可能不足以滿足JVM的要求 - 通常,您將有一個預熱階段並丟棄最初的幾個結果。我不應該這樣做嗎?如果是這樣,我不想小心我如何設計基準來測試性能。思考? – mattsap
我確實想看看低級別的實現和一些高級概念。我給出了半徑範圍內的示例,但我也將使用A *與IDA *進行比較,以便在網格中搜索一些示例。 – mattsap
在我看來,使用基準框架是一個好主意,因爲你陳述的原因。正確的基準測試是很難的,我們的基準測試代碼比'timer'更好。可悲的是,我們的基準框架早於JMH的存在;理想情況下,它將被重寫爲基於JMH的。 –