gpt4 book ai didi

function - 我们如何在 Elixir 中轻松地对函数调用进行计时?

转载 作者:行者123 更新时间:2023-12-03 08:54:55 24 4
gpt4 key购买 nike

怎样才能轻松时间 Elixir 中的函数调用?

IEx 中是否有任何隐藏开关来启用此功能?

最佳答案

您可以编写一个可以测量给定函数的模块1。以下函数以秒为单位返回给定函数的运行时间:

defmodule Benchmark do
def measure(function) do
function
|> :timer.tc
|> elem(0)
|> Kernel./(1_000_000)
end
end

像这样使用它:
iex> Benchmark.measure(fn -> 123456*654321 end)
9.0e-6

如果您想将其用于基准测试,那么还有另一个答案。

比测量单个运行执行时间更好的方法是测量每个时间帧的操作。这需要被测代码并在给定的时间范围内重复执行它。这种方法产生更准确的结果。

您可以使用一个名为 Benchwarmer 的库:

将 Benchwarmer 添加到您的 mix.exs
def deps do
[ { :benchwarmer, "~> 0.0.2" } ]
end

只需传递一个内联函数:
iex> Benchwarmer.benchmark fn -> 123456*654321 end
*** #Function<20.90072148/0 in :erl_eval.expr/5> ***
1.2 sec 2M iterations 0.61 μs/op

[%Benchwarmer.Results{...}]
  • [1]:代码取自 http://www.littlelines.com/blog/2014/06/27/elixir-vs-ruby-showdown-part-one/
  • 长凳https://github.com/bencheeorg/benchee
  • 关于function - 我们如何在 Elixir 中轻松地对函数调用进行计时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29668635/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com