可以监控 STM 的争用级别吗?

2023-12-22

有没有办法轮询 Clojure 的 STM 事务是否正在重试,以及重试的速率是多少?


您可以观察history count一个 ref 将表明存在争用:

user=> (def my-ref (ref 0 :min-history 1))
#'user/my-ref
user=> (ref-history-count my-ref)
0
user=> (dosync (alter my-ref inc))
1
user=> (ref-history-count my-ref)
1

历史计数并不直接代表争用。相反,它表示为了服务并发读取而维护的过去值的数量。

历史记录的大小受限于min and max价值观。默认情况下这些是0 and 10分别,但您可以在创建时更改它们ref(往上看)。自从min-history is 0默认情况下,您通常不会看到ref-history-count返回非零值,除非引用存在争用。

查看更多讨论history count here: https://groups.google.com/forum/?fromgroups#!topic/clojure/n_MKCoa870o https://groups.google.com/forum/?fromgroups#!topic/clojure/n_MKCoa870o

我认为没有任何办法,由clojure.core,观察此时STM交易的速率。你当然可以做类似@Chouser 在他的作品中所做的事情历史压力测试 https://gist.github.com/Chouser/456326:

(dosync
    (swap! try-count inc)
    ...)

即在交易内增加一个计数器。每次尝试交易时都会发生增量。如果try-count大于1,事务已重试。

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

可以监控 STM 的争用级别吗? 的相关文章

  • Clojure:将哈希映射键字符串转换为关键字?

    我使用 Aleph 从 Redis 提取数据 apply hash map r hgetall key medication id 问题是这些数据返回时带有键字符串 例如 name Tylenol how instructions 当我需要
  • 懒惰的 juxt 函数有什么优点吗?

    在回答中一个问题 https stackoverflow com questions 10044254 is there a reverse map function关于一个使用相同参数映射多个函数的函数 A juxt 我想出了一个基本上采
  • seq 和 list 之间的区别

    Clojure 语言中的 seq 和列表有什么区别 list 1 2 3 gt 1 2 3 seq 1 2 3 gt 1 2 3 这两种形式似乎被评估为相同的结果 首先 它们可能看起来相同 但实际上并非如此 class list 1 2 3
  • 无法使用 Leiningen 构建 jar

    我正在尝试使用 Intellij 的 Cursive 中的 Leiningen 插件从我的基本 Clojure 项目中制作一个独立的 jar 为了创建项目 我刚刚创建了 project clj 文件 将其打开 Cursive 提出将其导入为
  • clojure 的 emacs slime-connect 版本不会查找 $CLASSPATH

    我需要将 clojure 函数与 slime connect 一起使用 我将所有库都放在 CLASSPATH 中 据我了解这个问题 https stackoverflow com questions 3376840 clojure clas
  • 在环形应用程序中捕获异常的惯用方法

    处理环形应用程序中的异常的惯用方法是什么 我想捕获异常并返回 500 页 我怎么做 我在下面的代码中使用了 Mustache 但是它不起作用 def my app try app wrap logger true wrap keyword
  • 如何创建 Clojure 拉链

    我如何使用 Clojure Zipper 创建以下图表 vector zip A B C D E F 我努力了 vector zip A B C D E F 它返回 A B C D E F nil 这样对吗 是的这是对的 对您的代码的一些测
  • 如何将 CORS 添加到 compojure-api 应用程序?

    如何将 CORS 添加到此代码片段 def app api swagger ui docs spec swagger json GET route a a GET route b b GET route c c 我想用https githu
  • Clojure 函数 - 返回最后一条语句之前计算的值

    我有一些用 Clojure 编写的测试 这是一个简单的例子 defn test1 start server run pvt and expect PVT 0 stop server 我想返回 run pvt and expect 的结果 但
  • 如何使用 core.async 在 Clojure 中写入日志文件?

    我想使用 core async 作为写入文件的记录器 因此我创建了一个 test txt 文件 将其粘贴在我的资源文件夹中并编写了以下代码 use clojure java io use clojure core async def pri
  • Clojure/Java:用于声音频谱分析的 Java 库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以接受大量音频数据并返回给定频带内随时间变化的平均幅度的库 我已经在 comp dsp
  • 为什么这个 Clojure 减速器 r/fold 没有提供任何性能优势?

    我想知道为什么下面的代码在 r fold 的情况下没有提供加速 我对减速器有什么误解吗 我在一个相当慢的 尽管有 2 个核心 Ubuntu 12 04 开发盒上运行它 通过 emacs 和 lein 运行 每个都有相同的结果 require
  • 为什么leiningen启动时那么慢?

    我在用着lein repl在控制台中执行 clojure repl 当我运行它时 需要超过15秒 当我跑步时java cp clojure 1 6 0 jar clojure main 只需几秒钟 Why is lein repl太慢了 有
  • Clojure Web 应用程序 - 我从哪里开始?

    最近我一直在研究 Clojure 我喜欢这门语言 我想看看我是否可以在其中制作一个小型网络应用程序 只是为了挑战自己 但是 我完全没有设置任何与 Java 相关的 Web 应用程序的经验 事实上 我对 Java 并没有太多的经验 我从哪说起
  • Emacs/Swank/Paredit for Clojure 的温和教程

    我要转向 Emacs 来工作Clojure http en wikipedia org wiki Clojure Lisp 为了能够执行以下操作 我需要在 Emacs 上设置哪些信息 自动匹配 生成相应的右括号 自动缩进 Lisp Cloj
  • 可以混合使用 JVM 语言吗?即:Groovy 和 Clojure

    我知道你可以轻松地混合groovy java clojure java 无论什么JvmLang java 这是否也意味着我也可以让 clojure 和 groovy 代码进行交互 如果我使用 Grails 或 jRoR 我也可以在该环境中使
  • Clojure:让作用域和函数返回值

    我在弄清楚如何使用 let 形式时遇到了一些麻烦 在下面的示例中 我想在本地绑定值 cols 以便稍后在函数中处理它 然而 我注意到 如果我使用 let 函数 sel opt tmp 将返回 nil 值而不是列表 defn sel opt
  • 无法删除 IntelliJ/Cursive 中的括号

    我正在使用 IntelliJ Cursive 编写 Clojure 我发现 删除括号的唯一方法就是将其中的内容完全删除 然后才能将括号删除 例如 假设我有以下代码 list 我只想删除左括号 一旦我在左括号上按退格键 IDE 就会忽略此行为
  • 将数据库与 Clojure 结合使用

    有哪些使用 Clojure 数据库的方法 我从 Clojure 知道你可以用 Java 做任何事情 但这意味着我最终可能会使用一些过于复杂的东西 比如 Hibernate 这与 Clojure 的简单性相冲突 有什么建议或意见吗 Cloju
  • 使用 Compojure、Hiccup 和 Ring 上传文件

    要将文件上传到我用 Clojure 编写的服务器 我需要一个如下所示的客户端表单

随机推荐

  • 预授权在控制器上不起作用

    我试图在方法级别定义访问规则 但它不起作用 安全配置 Configuration EnableWebSecurity EnableGlobalMethodSecurity prePostEnabled true public class S
  • 仅客户端与 Meteor 的反应?

    我在服务器上发布了一个集合 并在客户端上自动订阅 我想在会话上设置 选定 项目 并更新模板以仅显示选定项目 但似乎这只能通过往返服务器来完成 这是完全没有必要的 Common var Missions new Meteor Collecti
  • 有没有办法在 PHP 中检查 cookie 是否为 httponly

    有没有办法检查 cookie 是否是 httponly 在 php 中 我认为这是不可能的 因为此信息不包含在浏览器发送的原始标头中 事实上 将这样的标志发送回服务器是没有意义的 因为它们对服务器来说没有意义 只会浪费带宽
  • Objective-C:如何为异步方法正确使用内存管理

    我需要调用一个启动一些异步代码的方法 MyClass myClass MyClass alloc init myClass startAsynchronousCode 现在我不能简单地释放它 因为这会导致错误 因为代码仍在运行 myClas
  • Python TypeError:^ 不支持的操作数类型:“float”和“int”

    我编写了一个简单的程序 它使用数值积分来近似计算定积分 然而 当谈到为什么我在标题中收到错误时 我感到很困惑 请记住 我已经一年半没有接触过Python了 所以这可能是我错过的一些非常明显的东西 但是如果你能帮助我 我仍然会很感激 这是代码
  • 如何升级gtk2hsC2hs?

    我在尝试cabal install glib 0 12 3在我的 Ubuntu 11 10 下使用 cabal install 0 10 2 但是 它显示以下错误消息 setup The program gtk2hsC2hs version
  • 如何在 Microsoft Access 2010 中设置与 SQL Server 2008 的 ADODB 连接?

    我刚刚在笔记本电脑上安装了 SQL Server 2008 我还安装了 Microsoft Access 2010 使用 VBA 我尝试在 SQL Server 上创建到我自己的数据库的 ADODB 连接 但我无法找到正确的代码行 当我在下
  • Xcode 在创建机器人时无法单击“下一步”?

    我正在尝试为测试项目设置一个机器人 我有一台运行服务器应用程序的 mac mini 该服务器对本地网络和所有人都是可见的 共享方案后 我进入 Xcode 并创建一个机器人 问题是 我无法启用右下角的 下一步 按钮 因此 我无法继续创建机器人
  • CoreBluetooth 无法找到设备,但 iOS 可以

    我有一个蓝牙条形码扫描仪 其规格说明它是蓝牙 2 0 2 类 这很奇怪 因为我的 iPhone 5 iOS7 可以找到并连接它 我以为iOS只能连接BLE设备 但在我的应用程序中 我无法扫描该设备 我不知道这是否是因为它的蓝牙规格 我希望有
  • 在 Spray 中发送发布请求

    我需要使用以下命令发出一个简单的 HTTP 请求spray框架 我在他们的网站上找到了一些示例 但结果证明它们很复杂并且涉及 Akka 这对我来说不是必需的 此外 我需要能够填写请求的标头 例如X Application content t
  • R 中的 strsplit 与元字符

    我有大量数据 其中分隔符是反斜杠 我正在 R 中处理它 并且很难找到如何分割字符串 因为反斜杠是一个元字符 例如 一个字符串看起来像这样 1128 0019 XA5 E2R 366 00 15 我想把它分成 字符 但是当我运行 strspl
  • Python Pillow:制作透明度渐变

    我有在图像上添加渐变的代码 def st path gradient magnitude 2 im Image open path if im mode RGBA im im convert RGBA width height im siz
  • 如何使用以编程方式创建的按钮在 WPF MVVM 中创建 OnClick 命令?

    我正在编写一个 WPF 应用程序 它以编程方式创建一些按钮 如何为 ViewModel 中的按钮创建 OnClick 命令 我想添加一个命令来使用 ResetButton 清除所有文本框 new StackPanel Orientation
  • 如何在 Flask-restless 中返回“已存在”错误?

    我想做一些异常处理程序 我在 python 中使用 Flask restless 和 SQLAlchemy 的组合 我的问题 当我使用数据库中已存在的对象向 api 发送请求时 SQLAlchemy 显示异常 IntegrityError
  • MYSQL左连接来自多个表的COUNTS

    我想添加表示其他表中的计数的列 我有3张桌子 Messages MessageID User Message Topic 1 Tom Hi ball 2 John Hey book 3 Mike Sup book 4 Mike Ok boo
  • Websocket连接自动关闭?

    我是网络套接字编程的新手 我有以下 JavaScript 客户端代码 var connection new WebSocket ws localhost 8080 OmegaThings registerdevice connection
  • 输入字段在 Chrome 和 Firefox 中显示不同

    我在 Chrome 中进行了测试 显示正常 但在 Firefox 中 输入框比预期大 这是标记 div class form wrapper div
  • 绘制离屏 CALayer 内容的最快方法

    我正在寻找在 macOS 上绘制离屏 CALayer 内容 不需要 Alpha 的最快方法 请注意 这些示例不是线程化的 但重点是 以及为什么我不只是使用 CALayer setNeedsDisplay 因为我正在后台线程上进行此绘图 我原
  • itunes 上缺少本地化屏幕截图错误

    我已选择默认语言 澳大利亚英语 作为默认语言 当我提交二进制文件时 它显示为被拒绝的 红色图标 状态为 缺少本地化屏幕截图 该应用程序仅使用单一语言 我添加了屏幕截图 该应用程序仅适用于 iPhone 当我查看显示为的二进制信息时 本地化
  • 可以监控 STM 的争用级别吗?

    有没有办法轮询 Clojure 的 STM 事务是否正在重试 以及重试的速率是多少 您可以观察history count一个 ref 将表明存在争用 user gt def my ref ref 0 min history 1 user m