如何避免在`Writer Monad`中持有太多日志?

时间:2015-09-03 09:07:53

标签: scala monads writer

在学习Writer Monad时,我发现它会收集每一步的log值,然后将它们组合在一起。

我对性能有疑问:我什么时候可以记录它们?如果一个方法运行了数千次,并且它将在内存中保留很多字符串很长一段时间。我只能在它返回后将它们记录到文件中。

我们如何使用Writer Monad在现实世界中记录日志?有没有办法及时记录日志?

1 个答案:

答案 0 :(得分:0)

一般来说,没有。作家旨在使记录纯粹和内省;冲洗部分会违反这一点。

在实践中,你可能会犯一个违反法律的Monoid,例如每当它变得太长时写出列表。但这首先会牺牲使用Writer的大部分好处。

我建议对您的要求进行基准测试,并明确run并在一个精细,合理的级别Writer注销$('#AgencyDetails').on('change',function(){ $('#result').html($(this).val()); });,例如每个Web请求或每个逻辑事务。