drools研究后记
在实际工作中,有关于达标推断的业务逻辑
就是谁谁谁 消费满了多少钱。就返多少钱的优惠券
声明:不是drools不好,仅仅是在我遇到的场景下,不合适,不够好
在使用drools的时候发现有例如以下问题:
1、效率低。这是最严重的问题。实际业务环境,用户数量要几十万。还有非常多业务相关的数据。他们要组合推断。实际情况是,插入working memory的fact数量超过万级,程序就開始hang住,gc日志打开后发现,系统不停的gc,用内存查看工具。发现drools生成了大量的内部对象。甚至有内存泄露的趋势。
这里推測。应该是drools为了实现通用性,会把全部的自己定义的实体。转化为它内部的节点。然后还有相关的一大堆附属。可是做得不够好,所以导致了上面的现象
这简直就是没法用了,时间有限,花大把时间把他源代码搞清楚,再看看有没有留出钩子,或者重写源代码,有这时间,还不如我自己实现达标推断了逻辑了呢,这样效率又能得到保证,运维成本还不高。毕竟关系到用户的钱,不能给算错了,遇到问题须要立即定位问题,万一遇到了一个drools的内部问题,说不定要多耽误事呢
实际自己实现的达标推断过程,在万级以内(就是在drools能承受的范围内)。我自己优化后的算法。要比drools实现快10倍
2、不方便。详细体如今数据insert的过程,为了可以满足drl文件里所描写叙述的数据结构以及他们的关系。必须提前构造相关的数据结构。非常费力。
并且这部分逻辑,写不好的话,也会写成一坨。尽管drl鼓吹的更易读,可是带来的副作用就是,外面的工作量非常大
另外就是数据装载,一般都是从数据库读取数据,这里也没有一些api对这里做支持。它的api很多其它是面向内存对象的,并没有考虑到这点
3、社区支持。
这个是我要吐槽的
说是社区活跃文档多啥啥啥的,太tm扯淡了。有个在线聊天的答疑的,进去喊话,从来没人吱声
文档写的那叫一个烂。就是堆砌,根本没考虑到读者的学习路径
drools研究后记的更多相关文章
- office2010安装不成功提示缺少MSXML 6.10.1129.0?
office2010安装 1. office重装 由于之前重装系统后安装office2010很顺利,这次删除office2010,由于没有删除干净,在程序删除面板中误点删除了其他文件所致,所以在此安装 ...
- 【LabVIEW技巧】LabVIEW中的错误1
前言 前几日,小黑充电学习意外的看到了下面的这个东东. 编程许久竟然没有见过这样子的错误枚举,甚为好奇,问刘大后才知道是Error Ring,为此恶补一下LabVIEW中与错误处理相关的内容. 错误的 ...
- 对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...
- 《C编译器剖析》后记
这本书的序言.后记写的都让我很有感触!mark: 后 记 总有曲终人散时,不知不觉我们已经完成了对UCC 编译器的剖析,一路走来,最深的体会仍然是“纸上得来终觉浅,绝知此事要躬行”.按这个道理,理解U ...
- 简单研究Android View绘制三 布局过程
2015-07-28 17:29:19 这一篇主要看看布局过程 一.布局过程肯定要不可避免的涉及到layout()和onLayout()方法,这两个方法都是定义在View.java中,源码如下: /* ...
- windows 远程桌面研究
最近因为一个监控相关的项目,深入研究了一下 windows 的 远程桌面的相关知识. 1. 如何让关闭了远程桌面连接的用户,对应的 session 立即退出 windows server. 大家使用 ...
- Invoke-WebRequest Invoke-RestMethod 乱码研究
powershell Invoke-WebRequest Invoke-RestMethod 乱码 encoding sharset CharacterSet Invoke-WebRequest和In ...
- Cocos2d-x内存管理研究<二>
http://hi.baidu.com/tzkt623/item/46a26805adf7e938a3332a04 上一篇我们讲了内核是如何将指针加入管理类进行管理.这次我将分析一下内核是如何自动 ...
- Java实现一致性Hash算法深入研究
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中”一致性Hash算法”部分,对于为什么要使用一致性Hash算法和一致性Hash算法的算法原 ...
随机推荐
- idea 换主题
换背景 . 选中行变色
- SQL Server 数据库自建表
sysobjects是系统自建的表,里面存储了在数据库内创建的每个对象(约束.默认值.日志.规则.存储过程等). 列名 数据类型 描述 name sysname 对象名 id int 对象标识号 xt ...
- [EF] 如何在 Entity Framework 中以手动方式设定 Code First 的 Migration 作业
Entity Framework (简称 EF) 发展到现在, 版本已经进入 6.1.0, 距离我写的「在 VS2013 以 Code First 方式建立 EF 资料库」这篇文章已有半年的时间.如果 ...
- Bootstrap tab插件的使用
菜鸟教程链接:http://www.runoob.com/bootstrap/bootstrap-tab-plugin.html 1.例子 <!DOCTYPE html> <html ...
- 图像颜色--opencv scalar
Scalar定义可存放1—4个数值的数值,其结构体如下: typedef struct Scalar { double val[4]; }Scalar; 例如:Scalar s: 如果使用的图像是1通 ...
- Crystal Reports 版权疑问
以前一直以为Crystal Reports是微软公司的产品,由于最近公司项目用到Crystal Reports,花了点时间研究了下它,才发现其实不然. 历史: 最开始的开发公司名为Crystal Se ...
- mac安装docker,显示无效的命令
mac安装完docker后,显示无效的命令. 在应用程序中找到docker安装的路径,将该路径写到/etc/paths里面
- 【进阶修炼】——改善C#程序质量(8)
122,以<Company>.<Component>作为命名空间. 如Microsoft.Windows.Design.也可以用域名作为空间,如www.microsoft.co ...
- css 超详细文档
http://www.runoob.com/css/css-boxmodel.html
- 自定义垂直拖动的seekbar进度条
系统自定义的seekbar为横向拖动的样式,需要纵向的时则需要自己定义,网上很多说了重写系统SeekBar中onDraw()的方法,但是我使用的时候不知道为什么拖动条和点偏离了,不在一条直线上,好气. ...