aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bench/Main.hs20
-rw-r--r--ox-arrays.cabal11
2 files changed, 31 insertions, 0 deletions
diff --git a/bench/Main.hs b/bench/Main.hs
new file mode 100644
index 0000000..d8582fe
--- /dev/null
+++ b/bench/Main.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE NumericUnderscores #-}
+{-# LANGUAGE TypeApplications #-}
+module Main where
+
+import Test.Tasty.Bench
+
+import Data.Array.Nested
+
+
+main :: IO ()
+main = defaultMain
+ [bgroup "Num"
+ [bench "sum(+) Double [1e6]" $
+ let n = 1_000_000
+ in nf (\(a, b) -> runScalar (rsumOuter1 (a + b)))
+ (riota @Double n, riota n)
+ ,bench "sum(*) Double [1e6]" $
+ let n = 1_000_000
+ in nf (\(a, b) -> runScalar (rsumOuter1 (a + b)))
+ (riota @Double n, riota n)]]
diff --git a/ox-arrays.cabal b/ox-arrays.cabal
index d39d5e5..58fccf9 100644
--- a/ox-arrays.cabal
+++ b/ox-arrays.cabal
@@ -29,3 +29,14 @@ test-suite example
hs-source-dirs: example
default-language: Haskell2010
ghc-options: -Wall
+
+benchmark bench
+ type: exitcode-stdio-1.0
+ main-is: Main.hs
+ build-depends:
+ ox-arrays,
+ base,
+ tasty-bench
+ hs-source-dirs: bench
+ default-language: Haskell2010
+ ghc-options: -Wall