在实际工作中,有关于达标推断的业务逻辑

就是谁谁谁 消费满了多少钱。就返多少钱的优惠券

声明:不是drools不好,仅仅是在我遇到的场景下,不合适,不够好

在使用drools的时候发现有例如以下问题:

1、效率低。这是最严重的问题。实际业务环境,用户数量要几十万。还有非常多业务相关的数据。他们要组合推断。实际情况是,插入working memory的fact数量超过万级,程序就開始hang住,gc日志打开后发现,系统不停的gc,用内存查看工具。发现drools生成了大量的内部对象。甚至有内存泄露的趋势。

这里推測。应该是drools为了实现通用性,会把全部的自己定义的实体。转化为它内部的节点。然后还有相关的一大堆附属。可是做得不够好,所以导致了上面的现象

这简直就是没法用了,时间有限,花大把时间把他源代码搞清楚,再看看有没有留出钩子,或者重写源代码,有这时间,还不如我自己实现达标推断了逻辑了呢,这样效率又能得到保证,运维成本还不高。毕竟关系到用户的钱,不能给算错了,遇到问题须要立即定位问题,万一遇到了一个drools的内部问题,说不定要多耽误事呢

实际自己实现的达标推断过程,在万级以内(就是在drools能承受的范围内)。我自己优化后的算法。要比drools实现快10倍

2、不方便。详细体如今数据insert的过程,为了可以满足drl文件里所描写叙述的数据结构以及他们的关系。必须提前构造相关的数据结构。非常费力。

并且这部分逻辑,写不好的话,也会写成一坨。尽管drl鼓吹的更易读,可是带来的副作用就是,外面的工作量非常大

另外就是数据装载,一般都是从数据库读取数据,这里也没有一些api对这里做支持。它的api很多其它是面向内存对象的,并没有考虑到这点

3、社区支持。

这个是我要吐槽的

说是社区活跃文档多啥啥啥的,太tm扯淡了。有个在线聊天的答疑的,进去喊话,从来没人吱声

文档写的那叫一个烂。就是堆砌,根本没考虑到读者的学习路径

drools研究后记的更多相关文章

  1. office2010安装不成功提示缺少MSXML 6.10.1129.0?

    office2010安装 1. office重装 由于之前重装系统后安装office2010很顺利,这次删除office2010,由于没有删除干净,在程序删除面板中误点删除了其他文件所致,所以在此安装 ...

  2. 【LabVIEW技巧】LabVIEW中的错误1

    前言 前几日,小黑充电学习意外的看到了下面的这个东东. 编程许久竟然没有见过这样子的错误枚举,甚为好奇,问刘大后才知道是Error Ring,为此恶补一下LabVIEW中与错误处理相关的内容. 错误的 ...

  3. 对一致性Hash算法,Java代码实现的深入研究

    一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...

  4. 《C编译器剖析》后记

    这本书的序言.后记写的都让我很有感触!mark: 后 记 总有曲终人散时,不知不觉我们已经完成了对UCC 编译器的剖析,一路走来,最深的体会仍然是“纸上得来终觉浅,绝知此事要躬行”.按这个道理,理解U ...

  5. 简单研究Android View绘制三 布局过程

    2015-07-28 17:29:19 这一篇主要看看布局过程 一.布局过程肯定要不可避免的涉及到layout()和onLayout()方法,这两个方法都是定义在View.java中,源码如下: /* ...

  6. windows 远程桌面研究

    最近因为一个监控相关的项目,深入研究了一下 windows 的 远程桌面的相关知识. 1. 如何让关闭了远程桌面连接的用户,对应的 session 立即退出 windows server. 大家使用 ...

  7. Invoke-WebRequest Invoke-RestMethod 乱码研究

    powershell Invoke-WebRequest Invoke-RestMethod 乱码 encoding sharset CharacterSet Invoke-WebRequest和In ...

  8. Cocos2d-x内存管理研究<二>

    http://hi.baidu.com/tzkt623/item/46a26805adf7e938a3332a04   上一篇我们讲了内核是如何将指针加入管理类进行管理.这次我将分析一下内核是如何自动 ...

  9. Java实现一致性Hash算法深入研究

    一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中”一致性Hash算法”部分,对于为什么要使用一致性Hash算法和一致性Hash算法的算法原 ...

随机推荐

  1. 【Miktex】使用教程以及数学符号整理总结

    LaTeX是当今世界上最流行和使用最为广泛的 TeX格式.它构筑在 Plain TeX的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用 TeX的强大功能.使用 LaTeX基本上不需要使用者 ...

  2. Docker考前突击

    dockerfile 介绍 镜像(Image)     容器(Container)     仓库(Repository)

  3. linux清理Java环境

    1.清理Java环境rm -f /usr/bin/javarm -f /etc/alternatives/java rm -f /usr/bin/javacrm -f /etc/alternative ...

  4. Android 开发自己的网络收音机1——功能要求及设计方案

    最近打算利用业余时间,编写一个Android的网络收音机.因为我自己偶尔也喜欢听听广播,所以打算用业余时间编写一个网络版收音机.说起收音机,其实在工作中已经编写过一个,不过那个收音机是需要硬件支持,也 ...

  5. 在SQL Server中创建用户角色及授权

    参考文献 http://database.51cto.com/art/201009/224075.htm 正文 要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许 ...

  6. HTTP1.1 协议

    Response Headers 响应头 Expires 设置响应内容的过期时间 过期时间头信息属性值只能是HTTP格式的日期时间,HTTP的日期时间必须是格林威治时 间(GMT),而不是本地时间.举 ...

  7. 回顾:maven配置和常用命令整理

    推荐两个库地址,开源中国的好像不好使了 阿里的仓库:http://maven.aliyun.com/nexus/content/groups/public/ 另一个:http://repo2.mave ...

  8. android开发(29) 自定义曲线,可拖动,无限加载

    项目需要 做一个曲线,该曲线的数据时不断加载的.如下图,当不断向左拖动时,图形曲线要随着拖动移动,并在拖动到边界时需要加载更多数据. 先看步骤: 1.在Activity里放一个surfaceView ...

  9. ashx session 赋值 获取

    ashx想获取session值 需要继承 IRequiresSessionState接口 ExcelHelper : IHttpHandler, IRequiresSessionState publi ...

  10. vmrun命令

    VMWare提供了vmrun与VIX API两种手段使用户可以通过程序对虚拟机进行控制. 在官方文档中给出了详细的说明和示例代码.           vmrun:http://www.vmware. ...