defmodule Mix.Tasks.Perf do use Mix.Task @moduledoc """ mix perf """ def run(_) do _cfg = Benchee.init(%{ print: %{ benchmarking: false, fast_warning: false, configuration: false } }) #test_vector_add(100_000) #test2() end #def test_vector_add(n) do # l = Enum.to_list(1..n) # v = Numy.Vector.new(l) # bv = Numy.BigVector.new(l) # lv = Numy.Lapack.Vector.new(l) # alias Numy.Vc, as: Vc # alias Numy.Vcm, as: Vcm # Benchee.run( # %{"Vector" => fn -> Vc.add(v,v) end, # "BigVector" => fn -> Vc.add(bv,bv) end, # "Lapack non-mutating" => fn -> Vc.add(lv,lv) end, # "Lapack mutating" => fn -> Vcm.add!(lv,lv) end, # }, # [ title: "Add vectors size #{n}", # print: %{benchmarking: false, fast_warning: false, configuration: false} # ] # ) #end #def test2() do # alias Numy.Vc, as: Vc # l = Enum.to_list(1..100_000) # v = Numy.Vector.new(l) # v2 = Vc.scale(v, 0.01) # bv = Numy.BigVector.new(l) # bv2 = Vc.scale(bv, 0.01) # Benchee.run( # %{"Vector" => fn -> Numy.Vector.mean_sq_err(v,v2) end, # "BigVector" => fn -> Numy.BigVector.mean_sq_err(bv,bv2) end # }, # [ title: "vector mean sq err", # print: %{benchmarking: false, fast_warning: false, configuration: false} # ] # ) #end end