V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sankooc
V2EX  ›  程序员

请教个时间判断策略

  •  
  •   sankooc ·
    sankooc · 2020-03-05 22:45:38 +08:00 · 1414 次点击
    这是一个创建于 1727 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    不过其实初期不建议花太多时间在这种优化上面,你只是“感觉”性能不好,实际上不一定。首先最好是把最重要的功能做出来,小问题直接按正常思路写,如果发现确实是瓶颈,再来优化。
    kilasuelika
        2
    kilasuelika  
       2020-03-05 23:51:31 +08:00 via Android
    应该把最不容易满足的放前面。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4458 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 10:12 · PVG 18:12 · LAX 02:12 · JFK 05:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.