我正在开发一个大量使用STM的clojure应用程序。一般来说,使用一个全局参考或许多小参考更好吗?每个ref都将存储像关系数据库表中的数据,因此会有几个引用。
答案 0 :(得分:2)
使用更少的引用可能带来的好处是,您可以更容易理解您的虚拟多线程应用程序中发生的情况。
使用更多引用的一个可能的好处是,您将一次锁定更少的代码并提高速度。
如果你有一个ref table for table并且你需要在两个表之间保持数据完整性,那么你将负责实现该逻辑,因为STM不知道数据如何在表之间相关。
你的答案可能在于一个表中的更改会影响另一个表的频率,以及是否将单个ref更改为每个表中的一个ref甚至会使性能显着提高。
答案 1 :(得分:2)
我通常发现最好尽量减少裁判的数量。
主要原因:
当然,这最终将取决于您的工作量和并发性要求,但我的一般建议是尽可能少的参考,直到您确定需要更多。