答案 0 :(得分:0)
因为您指的是 JavaScript 实用程序,所以用 JS 编写测试将是最简单的。
您可以在单独的 js
文件(根据您的测试模块名称命名)中编写性能测试,并通过 Foreign Function Interface 从 purescript 调用它。
假设您想比较 f
和 g
函数的性能,可以通过以下模板描述代码方案:
-- File PerfTest.purs
module PerfTest where
f :: Args -> Result
f args = ...
g :: Args -> Result
g args = ...
foreign import performanceTestImpl
:: forall a. (Unit -> a) -> (Unit -> a) -> Unit
main :: Effect Unit
main =
pure $ performanceTestImpl (\_ -> f args) (\_ -> g args)
// File PerfTest.js
"use static";
exports.performanceTestImpl =
function(runF) {
return function(runG) {
// run jsPerf tests as you would normally do
};
};
这会将 performanceTestImpl
实现委托给带有两个回调的 JavaScript,这两个回调的性能应该被测量和比较。请注意,您需要传递未计算的 lambda 以推迟计算,因为 PureScript 不像 Haskell 那样懒惰。 PureScript 应该负责链接。请注意,这两个文件需要具有匹配的名称并放在同一目录中。