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 换主题
换背景 . 选中行变色
- Docker Dockerfile 基本结构详解
dockerfike快速创建自定义的Docker镜像 一.目录 1.docker典型结构 2.指令介绍 3.创建docker镜像 二.结构 DockerFile分为四部分组成:基础镜像信.维护者信息. ...
- 基于jQuery鼠标点击弹出登陆框效果
基于jQuery鼠标点击弹出登陆框效果.这是一款扁平样式风格的jQuery弹出层登陆框特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <input type=" ...
- ajaxfileupload.js ajax上传文件(含application/json)
jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId = 'jUploadFrame' ...
- docker探索-CentOS7中配置Docker的yum源并升级安装docker1.13(十)
此处使用的是CentOS7,内核版本为 [root@localhost ~]# uname -r -.el7.x86_64 该版本下,配置了yum的源为阿里的镜像源,具体的配置方法可以参见阿里镜像源配 ...
- Caused by: java.io.IOException: Added a key not lexically larger than previous.
为了重复这个实验,遇到不少坑 https://www.iteblog.com/archives/1889.html /** * Created by Administrator on 2017/8/1 ...
- Netty4.x中文教程系列(二) Hello World !<转>
在中国程序界.我们都是学着Hello World !慢慢成长起来的.逐渐从一无所知到熟悉精通的. 第二章就从Hello World 开始讲述Netty的中文教程. 首先创建一个Java项目.引入一个N ...
- 创建function实现hive表结果导出到mysql
1. 创建临时function (这里两个包都是hive自带的,不需要自己开发的,可以根据名称查找对应的版本) add jar /opt/local/hive/lib/hive-contrib-.ja ...
- 【基础练习】【区间DP】codevs1090 加分二叉树题解
2003 NOIP TG 题目描写叙述 Description 设一个n个节点的二叉树tree的中序遍历为(l,2,3,-,n),当中数字1,2,3,-,n为节点编号.每一个节点都有一个分数(均为正整 ...
- github fork 同步
git remote -v git remote add upstream url git fetch upstream git checkout master git merge upstream/ ...