scala - 使用 Immutability + Actor 模型进行并发编程有哪些弱点?

标签 scala immutability akka

在为金融服务行业构建大型多线程应用程序时,我尽可能使用不可变类和 Actor 模型进行工作流。我对结果很满意。它使用了相当多的堆空间(在 Java 中顺便说一下),但 JVM 的 GC 与短暂的不可变类一起工作得很好。

我只是想知道今后使用这种模式是否有任何缺点?在调试团队成员代码时,我经常发现自己以一种或另一种方式推荐这种模式。我想一旦有了锤子,一切看起来都像钉子。所以问题是:这种设计模式(范式?)什么时候效果不佳?

我的预感是当内存使用是一个大问题时,或者当项目限制需要一些类似于低级 C 的东西时,等等。

最佳答案

许多科学模拟代码非常占用内存。例如,对于元胞自动机模型,快速内存访问比 CPU 能力更重要。在这种情况下,访问和修改可变数组总是更快(至少在我所有的试验中)。

关于scala - 使用 Immutability + Actor 模型进行并发编程有哪些弱点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7748904/

相关文章:

scala - 在 slick 3.0 更新中仅更新非 None 案例类值

scala - 如何使用 "scopt"命令行参数解析具有字段的案例类作为另一个案例类?

scala - Akka:从回调中向自己发送消息是否安全?

scala - 使用 Guice 注入(inject) Akka Actor 来玩 Framework 2.5 失败

scala - 什么时候需要 Scala 分号

scala - 避免递归 MTL 类上的隐式扩展发散

functional-programming - "pin"运算符的用途是什么?Elixir 变量是否可变?

javascript - 为什么在 React 中调用 'setState()' 时使用扩展运算符?

arrays - OCaml:动态数组?

scala - 使用 akka-http 从 src/main/resources 返回一个文件