Drools性能实践总结
本文总结一下Drools的性能提升要点。 要点 选择7.5以后的版本。老版本存在一个性能BUG。 KnowledgeBuilder很耗时,编译结果要缓存起来。这样builder就不会成为瓶颈。 kbase过大,会导致内存消耗过多,gc也可能成为瓶颈。建议按规则相关性拆分为多个Kbase。但需要注意,如果一个kbase里的规则数太少,那么无法发挥drools的优势,跟你自己写if-else 没啥差别。所以拆分的重点是规则相关性,而不是数量。 drools的体系注定其更适应增加rule数,而不是增加fact数。在使用时牢记此点。另外,最极端的情况,使用一个通用类去表达所有的fact,会增加beta节点向左侧匹配值的次数,也会导致性能下降,并降低规则可读性。 尽量减少data或fact的碎片化,尽量在同一个session中仅包含相关fact和相关rule。在创建session时,将所有fact批量insert到session中,然后fire比为每个fact单独触发规则更为可取。 在调用insert()之前准备好数据远远胜过在LHS里去访问数据库获取数据,这种做法可以显著提...
docker for windows 小坑记录
这几天在windows里折腾docker。遇到了和linux下不一样的地方或者和网上众言不一致的地方。记录备忘。 -e 参数要用双引号 --linux-e 'flag=true'--windows-e "flag=true" docker for windows 依赖windows 10 专业版,但vmware workstation pro 15 已经与 hyper-v不冲突了 -v 注意宿主机路径分隔符和容器的路径分隔符不一样 -v c:\data:/data portainer如果加上参数--restart always,每次自动重启后,会导致登陆时用户名密码失效。需要再重启容器才行。 待续。
vscode设置同步
vscode的设置/主题/插件等可以通过Settings Sync插件来同步。它是通过github来进行中转。 大体的步骤是 创建一个GitHub的private token给与create gist权限。 为该插件配置token并上传配置,此时会生成一个gist id。 在另一台机器里安装该插件后,请求下载配置。此时会要求输入token和gist id。完成后开始下载配置。 快捷键1. Upload Key : Shift + Alt + U2. Download Key : Shift + Alt + D
将ubuntu主目录修改为英文
export LANG=en_USxdg-user-dirs-gtk-updateexport LANG=zh_CN
推送本地项目到远端git仓库
git initgit add .git commit -m "first commit"# url是指远端仓库的urlgit remote add origin urlgit push -u origin master
linux wget oracle jdk
wget --no-cookies \--no-check-certificate \--header "Cookie: oraclelicense=accept-securebackup-cookie" \https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz \-O jdk-8-linux-x64.tar.gz
架构本质及微服务
架构师峰会上很好的一篇分享,详见下文。
使用Emby打造多媒体服务器
视频点播的解决方案中 Emby 是目前综合表现最好的:多平台,多客户端,资源占用少,部署简单。使用 docker 的话几个命令就可以搞定: docker pull emby/embyserver:latest # 拉取镜像mkdir /path/config # 存放配置文件mkdir /path/share # 存放视频文件id 当前用户名 # 获取当前用户的UID GID.这是为了防止权限混乱docker run --name emby -d \-v /path/config:/config \-v /path/share:/mnt/share \-p 8096:8096 \-p 8920:8920 \--env UID=当前用户的UID \--env GID=当前用户的GID \--env GIDLIST=当前用户的GID \emby/embyserver:latest 然后访问http web端口,即可以进入 Emby Server 。Emby 官网提供了手机、PC、电视机等多种平台的app。
Nextcloud 性能优化
使用官方docker镜像部署的nextcloud,性能表现并不出色,页面加载有明显延时,可以采取以下措施进行优化。 使用cron去执行后台任务:在设置中将设置从ajax调整到cron,然后在宿主机建立crontab任务 */15 * * * * docker exec --user www-data 35d355e94f2e php cron.php 停用无用的apps,降低系统负载 nextcloud提供了很多apps进行功能增强,根据实际需要进行禁用和卸载 使用HTTPS加密,而非nextcloud提供的AES加密,降低传输前后的开销 启用http2,提高加载速度。关于http2为什么能提高性能可以阅读这篇[文章](HTTP/2.0 相比1.0有哪些重大改进? - Leo Zhang的回答 - 知乎https://www.zhihu.com/question/34074946/answer/75364178)。启用的方法是修改nginx的nextcloud站点配置文件:`listen 443 ssl;->listen 443 ssl http2; ...
https下实现aria2结合webui提供离线下载服务
aria2的玩法网上到处都是,但是怎么将其置于https下,说的比较少。我将我的经验整理如下供君参考。 部署aria2-with-webui 拉取镜像 docker pull xujinkai/aria2-with-webui 运行容器 docker run -d \--name aria2-with-webui \-p 6800:6800 \-p 6880:80 \-p 6888:8080 \-v /DOWNLOAD:/data \ # /DOWNLOAD是宿主机目录用于存放下载文件-v /CONF:/conf \ # /CONF是宿主机目录用于存放配置文件-e SECRET="密码,用于连接aria RPC" \xujinkai/aria2-with-webui 配置nginx。示例: server { server_name aria.lefer.cn; charset utf-8; location / { proxy_pass http://127.0.0.1:6880; pr...
