请教个时间判断策略

2020-03-05 22:45:38 +08:00
 sankooc

现在碰上个问题 就是要设计一套时间权限策略

策略包括 开始结束日期, 一天中的时间段,week,dayofmonth

这个策略需要判断出 给出具体时间是否符合规则

这个策略对效率要求比较高

感觉根据每个具体规则做范围判断比较慢

有没有处理这类问题的最佳实践

1287 次点击
所在节点    程序员
2 条回复
kilasuelika
2020-03-05 23:45:42 +08:00
从逻辑角度看,就是给定一系列谓词 S1,S2....
和时间 T,判断 S1(T) && S2(T)....。
1,由于&&可以短路,所以考虑用哈夫曼编码,把最容易满足的选择枝放前面,比如 S2 有 80%的案例都满足,放最开始进行判断。
2,对谓词进行合并优化,减少数量。
3,预处理,把 weekofday 那些提前算出来,保存在 hash 表里面,然后用的时候直接提取。
5,如果涉及同一类型的多个区间,可以考虑线段树。
6,多线程并行计算。

不过其实初期不建议花太多时间在这种优化上面,你只是“感觉”性能不好,实际上不一定。首先最好是把最重要的功能做出来,小问题直接按正常思路写,如果发现确实是瓶颈,再来优化。
kilasuelika
2020-03-05 23:51:31 +08:00
应该把最不容易满足的放前面。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/650235

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX