《Clojure数据分析秘笈》——3.4节使用commute获得更好的性能

简介:

本节书摘来自华章社区《Clojure数据分析秘笈》一书中的第3章,第3.4节使用commute获得更好的性能,作者(美)Eric Rochester,更多章节内容可以访问云栖社区“华章社区”公众号查看

3.4 使用commute获得更好的性能
3.2节中创建的STM系统有一个小问题:试图引用并更新total-hu和 total-fams的进程会不必要地竞争这两个全局变量。由于为了等待访问这两个资源,进程里任务都中断了,许多任务都需要重试。
但是其实没必要如此。进程仅使用可交换函数(#(+ sum-? %))来更新这些值。这些更新执行的顺序无关紧要。而且由于处理过程完成之前处于阻塞状态,不必担心两个引用会不同步。它们在访问其值之前会最终回到同一状态,这对于这种应用场景来说非常好。
为了处理这种情况(使用可交换函数计算引用值),应该使用commute替换alter。alter函数当场更新引用值;commute将更新操作加入队列中待引用未被占用时再执行。这避免了引用的竞争问题并可以加速系统运行。

相关文章
|
3月前
|
Rust 数据挖掘 数据处理
Polars库:数据分析的新星,性能与易用性的完美结合
Polars库:数据分析的新星,性能与易用性的完美结合
120 1
|
4天前
|
数据挖掘 关系型数据库 Serverless
利用数据分析工具评估特定业务场景下扩缩容操作对性能的影响
通过以上数据分析工具的运用,可以深入挖掘数据背后的信息,准确评估特定业务场景下扩缩容操作对 PolarDB Serverless 性能的影响。同时,这些分析结果还可以为后续的优化和决策提供有力的支持,确保业务系统在不断变化的环境中保持良好的性能表现。
14 2
|
4月前
|
SQL 数据挖掘 关系型数据库
性能碾压pandas、polars的数据分析神器来了
性能碾压pandas、polars的数据分析神器来了
|
7月前
|
存储 安全 数据挖掘
性能30%↑|阿里云AnalyticDB*AMD EPYC,数据分析步入Next Level
第4代 AMD EPYC加持,云原生数仓AnalyticDB分析轻松提速。
性能30%↑|阿里云AnalyticDB*AMD EPYC,数据分析步入Next Level
|
5月前
|
数据采集 机器学习/深度学习 数据可视化
关于Python数据分析项目的简要概述:从CSV加载数据,执行数据预处理,进行数据探索,选择线性回归模型进行训练,评估模型性能并优化,最后结果解释与可视化。
【7月更文挑战第5天】这是一个关于Python数据分析项目的简要概述:从CSV加载数据,执行数据预处理(填充缺失值,处理异常值),进行数据探索(可视化和统计分析),选择线性回归模型进行训练,评估模型性能并优化,最后结果解释与可视化。此案例展示了数据科学的典型流程。
76 2
|
7月前
|
存储 安全 数据挖掘
性能30%↑|阿里云AnalyticDB X AMD EPYC,数据分析步入Next Level
阿里云原生数仓 AnalyticDB for PostgreSQL 与 AMD 新一代硬件深度优化,结合全自研计算引擎及行列混合存储实现性能升级,综合性能提升30%。结合丰富的企业级能力帮助企业构建离在线一体、流批一体综合数据分析平台,采用同一引擎即可满足离线批处理、流式加工,交互式分析三种场景,在开发运维、时效性及成本上具备更高的性价比。
506 0
|
7月前
|
人工智能 前端开发 数据挖掘
Arm 发布 Neoverse 新品:数据分析性能提升 196%,奠定未来计算及 AI 的基石
北京时间 2 月 22 日,半导体巨头 Arm 更新了 Arm® Neoverse™ 产品路线图,宣布推出两款基于全新第三代 Neoverse IP 构建的全新计算子系统(CSS):Arm Neoverse CSS V3 和 Arm Neoverse CSS N3。
|
数据挖掘 Android开发 图形学
|
算法 大数据 数据挖掘
《Clojure数据分析秘笈》——导读
本节书摘来自华章社区《Clojure数据分析秘笈》一书中的目录,作者(美)Eric Rochester,更多章节内容可以访问云栖社区“华章社区”公众号查看
1565 0