为什么counts添加新文章后统计是累加的,意思是这个月的会累计以前的记录,比如下面这样
追加:
刚才看了ourjs的initArticles方法会读取article目录的所有文件,文章数量很多的情况下会不会使内存增大很多,会不会有性能问题?
追加:
刚又看了会把最新的文章counts加入countPool,这样就可以保证记录都在一起方便操作,不知道是不是这个原因?
{"53dde10822b1d99809461650":7,"53f4383783cc9d302bad6503":8} //这是8月的想知道为什么这个月会把以前的文章统计加上呢
{"53dde10822b1d99809461650":10,"53f4383783cc9d302bad6503":9,"54110087bac9df6c0a26d842":1} //这是9月的
追加:
刚才看了ourjs的initArticles方法会读取article目录的所有文件,文章数量很多的情况下会不会使内存增大很多,会不会有性能问题?
追加:
刚又看了会把最新的文章counts加入countPool,这样就可以保证记录都在一起方便操作,不知道是不是这个原因?
这个之前我也考虑过,当时考虑了几种方案
1) 将点击数跟文章放一起
2) 将所有文章计数放在一个JSON文件中
3) 将某段时间的所有文章点击放在一处
-
最后采用了方案 2,之所以采用保存全部记录的方式是因为,
一个 ObjectID,如 52fb82e13bd19c4814000001 的长度是24个字符, 所以一条文章记数在JSON记录中的平均的长度最大应该不会超过40个字符
一万篇文章所产生的大小 10000 * 40 / 1024 = 390 Kb, 这个大小是完全可以接受的,而且这样计数起来非常方便,更简单一点。
而且ObjectID包含一个时间戳,可以很方便地找到最近一个月新发布文章的排名。
-
这个方案也有一点缺陷,就是无法找到最近一个月所有文章的点击排名,以后可能会改进一下。
-
关于所有文章的性能问题的应该不会消耗太多,目前网站总共消耗了不到100Mb内存,不过这套系统还没有在大数据量的情况下测试过,以后可能会改进一下。
@newghost #0
再次感谢老大耐心的回复,在用websvr写东西,看ourjs代码学到了不少东西
@zkwap #1
No problem