如何在 Scala 中分析方法?

2023-12-03

分析 Scala 方法调用的标准方法是什么?

我需要的是一个方法的钩子,我可以用它来启动和停止计时器。

在Java中,我使用切面编程aspectJ来定义要分析的方法并注入字节码来实现相同的目的。

Scala 中是否有一种更自然的方法,我可以定义一堆在函数之前和之后调用的函数,而不会在过程中丢失任何静态类型?


您想在不更改要测量时序的代码的情况下执行此操作吗?如果您不介意更改代码,那么您可以执行以下操作:

def time[R](block: => R): R = {
    val t0 = System.nanoTime()
    val result = block    // call-by-name
    val t1 = System.nanoTime()
    println("Elapsed time: " + (t1 - t0) + "ns")
    result
}

// Now wrap your method calls, for example change this...
val result = 1 to 1000 sum

// ... into this
val result = time { 1 to 1000 sum }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Scala 中分析方法? 的相关文章

  • 错误:无法在 scala 中找到或加载主类

    安装 eclipse scala 插件和 eclipse maven scala 插件后 我是 scala 新手 所以我尝试确保在测试 scala hello world 项目后环境正常工作 它按预期工作 但我在尝试执行我从公司存储库中签出
  • Build.scala中%和%%符号含义

    我是新来玩的 Framework 2 1 java版本 并且没有scala经验 我不明白什么是以及什么是 and 在 Build scala 中表示 我用谷歌搜索了它们但找不到它们的含义 在我的 Build scala 文件中 我有 org
  • 在 C++ 中,当我将值传递给函数时,它是否总是转换为适当的类型?

    如果我有一个像这样的函数void func size t x 我称该函数为func 5 5 立即转换为size t类型 这通常适用于所有类型吗 我问这个问题是因为我发誓我见过人们编写代码 他们做类似的事情func 5 0 将 5 作为双精度
  • SBT 对 Scala 类型感到困惑

    SBT 抛出以下错误 value split is not a member of String String error filter arg gt arg split delimiter length gt 2 对于以下代码块 impl
  • 将当前类作为 scala 中的参数传递

    如何传递当前类作为参数 在java中我们这样做 mymethod this class or mymethod MyClass class 如何将 scala 当前类传递给此方法 this getClass or classOf MyCla
  • Scala 匿名函数中的 return 语句

    为什么显式 return 语句 使用return关键字 在匿名函数中从封闭的命名函数返回 而不仅仅是从匿名函数本身返回 例如 以下程序会导致类型错误 def foo String x Integer gt return x foo 我知道建
  • 如何在 Spark 数据帧 groupBy 中执行 count(*)

    我的目的是做相当于基本sql的事情 select shipgrp shipstatus count cnt from shipstatus group by shipgrp shipstatus 我见过的 Spark 数据帧的示例包括其他列
  • Scala:“递归值...需要类型”,但我只使用 Java 类型

    object Rec extends App val outStream new java io ByteArrayOutputStream val out new java io PrintStream new java io Buffe
  • 读取不同文件夹深度的多个 csv 文件

    我想递归地将给定文件夹中的所有 csv 文件读入 Spark SQLDataFrame如果可能的话 使用单一路径 我的文件夹结构如下所示 我想包含具有一个路径的所有文件 resources first csv resources subfo
  • Akka中有轻量级的actor吗?

    我的用例非常简单 在两个对象之间交换少量 现在我正在从 Scala Actors 迁移到 Akka 但是我再也找不到那些轻量级 Actors 使用Akka 我不仅需要为Actor创建创建ActorSystem Props 还需要照顾Acto
  • 使用“const cv::Mat &”、“cv::Mat &”、“cv::Mat”或“const cv::Mat”作为函数参数的区别?

    我已经彻底搜索过 但没有找到一个简单的答案 传递 opencv 矩阵 cv Mat 作为函数的参数 我们传递一个智能指针 我们对函数内部的输入矩阵所做的任何更改也会改变函数范围之外的矩阵 我读到 通过将矩阵作为 const 引用传递 它不会
  • Map 和 Set 的实际类(不是抽象类,也不是特征类)是什么?

    在 Scala 中 映射和集合文字可以通过以下方式创建 val m Map 1 gt a 以及引用的类型m字面意思都是Map Int String 然而 scala文档表明Map实际上是一个特征 具有需要实现才能实例化的抽象成员 scala
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co
  • 在 C# 中调用 C++ 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有很多用 C 编写的库 我想从 C 调用这些库 但是 我遇到了很多问题 我想知道是否有书籍或指南告诉我如何做到这一点 Dll导入 htt
  • 根据位置计算组合

    我在解决这个问题时遇到了麻烦 创建一个函数 给定字符集 C 可以生成第 N 个组合 或者返回给定起始位置 Ns 和结束位置 Ne 以及组合的最大长度 Mx 的一系列组合 一个具体的例子 令 C A B C 我们知道不同的组合将如下所示 假设
  • 如何通过数据框中数组列的索引计算平均值

    我正在使用 Spark 2 2 我有一个关于合作的基本问题ArrayType 我没有找到可以使用的内置聚合函数 Given a DataFrame有一个柱子id和一列values of ArrayType 我们想按 id 分组 然后按索引计
  • 一般处理枚举的 Scala 类

    我想创建一个通用类来保存枚举的值 并且还允许访问枚举的可能值 以属性编辑器为例 您需要知道属性的当前值 并且还需要能够知道该属性的其他合法值 并且枚举的类型不应该提前知道 您应该能够使用任何类型的枚举 我的第一个想法是这样的 class E
  • 如何从命令行执行 PHP 代码?

    我想执行单个 PHP 语句 例如if function exists my func echo function exists 直接使用命令行 无需使用单独的 PHP 文件 这怎么可能 如果您要在命令行中执行 PHP 我建议您安装phpsh
  • Spark 和 Scala 中的文本操作

    这是我的数据 review text The product picture and part number match but they together do not math the description review text A
  • 这种奇怪的 Scala 内存泄漏的原因是什么? [复制]

    这个问题在这里已经有答案了 即使有 7G 的堆空间 这也会耗尽内存 import scala collection mutable Set class Foo val anEmptySet Set Int Set def bar ints

随机推荐

  • 在 scala 中重定向 stdin 和 stdout

    如何将 STDIN 和 STDOUT 重定向到文件 在 C 语言中 可以像这样完成 freopen file in r stdin 我正在寻找与 Scala 相当的东西 您可以使用 Java 系统 api 来完成此操作 Java 和 Sca
  • Java:实例双数组元素值修改问题

    我是 Java 新手 我有一个可以为其创建实例的类 在类中我定义了两个实例变量 double array1 double array2 数组的长度相等 在类中 我有一个首先填充的 method1array1然后是另一种方法2 我想在其中设置
  • 使用 KSOAP2 序列化要发送的整数数组

    我在尝试将整数数组发送到 NET Web 服务时遇到问题 该服务需要参数之一包含数组 至少这是我从 Web 服务上的 API 描述中了解到的
  • 颠倒的文字

    您将如何设计一个程序来接收一串小写字母并颠倒产生该字符串 所以如果我输入home i get o 倒挂 我尝试在书中寻找入门内容 但一无所获 试试这个 有点暴力的方法 但对于大写 小写和数字字符非常有效 所有其他字符都按原样显示 defin
  • SQL 将 2 个表连接到 1 个表

    我的任务是连接 3 个表 任务 单位和建筑物 任务表有一列表示单位 一列表示建筑物 任何单一任务仅分配给一座建筑物或一个单元 而不是两者 因此 每条记录中的一列始终为空 任务表中有6100条记录 当我使用这个连接时 select from
  • 如何使用dll?

    我知道如果我有一个 a 或 so 文件以及该库的头文件 例如 SystemC 我应该 1 包含头文件 2 链接适当的库 但我无法仅处理 dll 文件 因为我也可以链接它 但没有要包含和使用命令的侦听器文件 有人可以解释一下存在什么样的 dl
  • 结束 NSTableView 上的编辑(基于视图)

    当用户正在编辑表格视图上的文本字段并决定单击窗口的关闭按钮时 他 她所做的更改不会保存 如何强制表格视图 基于视图 结束编辑 而不是中止编辑 最简单的方法是为您的窗口分配一个委托并响应NSWindow s 窗口应该关闭 委托方法 在其中调用
  • 单击 UIBarButton 显示 toast 并双击返回操作需要执行

    我在导航栏中有一个 UIBarButton 当单击后退按钮 第一次点击 时 我需要显示 toast 如警告 双击时我需要快速退出页面 以下用于显示 toast 的代码 其工作正常 let toastLabel UILabel frame C
  • 以“MMMyyyy”为键对地图进行排序

    我有一张地图 其键采用 MMMyyyy 格式 我需要根据月份进行排序 输入 unsorted Dec2010 1 Apr2010 1 Feb2010 0 Nov2010 2 Mar2010 0 Jun2010 2 Sep2010 1 May
  • 在 Azure DevOps 中跨构建管道共享变量

    我的 azure devops 项目中有 2 个构建管道 一个用于构建源代码 另一个用于构建 进行设置 我希望将编译代码的第一个管道生成的内部版本号传递到创建安装文件的下一个管道 因为我希望安装文件采用相同的版本 所以我添加了一个变量组 其
  • 在android中创建给定形状的图像视图

    我需要在 Android 中创建这个特定形状的图像视图 如果可以以这种形状裁剪图像 那么也很好 请帮我解决一下 这将是完整的套装
  • Select 语句中的 PHP 变量

    我已经编写了这个正在运行的 PHP 脚本 现在我想将行名称更改为变量 不确定行是否正确 我的意思是来自select name 这容易多了不是吗 sql insert INSERT INTO customers name address em
  • 如何在 C++ 中杀死进程,只知道其名称的一部分

    前段时间我需要编写 C 代码来终止某些进程 在我的主程序中 我使用 system 运行大型 CAE 系统包 并在输入上使用不同的文件名字符串 CAE 软件创建许多进程 其中包含进程名称字符串filename 一些CAE过程worktime
  • 如何有效地将我的@KafkaListener绑定到ConcurrentKafkaListenerContainerFactory?

    我遇到了这个对我来说似乎很奇怪的场景 所以基本上我定义了两个 KafkaListener在一堂课中 KafkaListener id listener1 idIsGroup false topics data1 containerFacto
  • 如何在 Google 测量协议中使用广告 ID

    这个帖子很好地回答了 How to get Advertising ID in android 这个问题 but not how使用它 我想知道what is the 范围用于 Google 测量协议 将该广告 ID 传输到 Google
  • Python 的 argparse 选择限制打印

    目前我希望Python的argparse模块只打印出 1 65535 而不是 1 2 3 65535 但文档似乎没有提供任何方法 有什么建议么 您可以通过设置来更改默认格式的方式formatter class option 我会子类化帮助格
  • 未能在单元测试中包含 system.web.http?

    我目前正在尝试进行单元测试ApiController我创造了 我绊倒的是 由于某种原因我无法 使用 System Web Http 在我的主要项目中 虽然我可以使用using没有任何问题 因此使用IHttpActionResult 现在我不
  • 用于可视化或过滤 P 值的整洁 chisq.test 输出的函数

    对于数据 library productplots library ggmosaic 对于代码 library tidyverse library broom 我正在尝试创建整洁的 chisq test 输出 以便我可以轻松过滤或可视化 p
  • ProgressDialog 直到函数完成后才显示

    我试图在加载一些数据时显示旋转进度 但直到加载数据后才显示 我正在尝试这样做 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState
  • 如何在 Scala 中分析方法?

    分析 Scala 方法调用的标准方法是什么 我需要的是一个方法的钩子 我可以用它来启动和停止计时器 在Java中 我使用切面编程aspectJ来定义要分析的方法并注入字节码来实现相同的目的 Scala 中是否有一种更自然的方法 我可以定义一