预留一半内存给Lucene使用 一个常见的问题是配置堆太大.你有一个64 GB的机器,觉得JVM内存越大越好,想给Elasticsearch所有64 GB的内存. 当然,内存对于Elasticsearch来说绝对是重要的,用于更多的内存数据提供更快的操作.而且还有一个内存消耗大户-Lucene Lucene的设计目的是把底层OS里的数据缓存到内存中.Lucene的段是分别存储到单个文件中的,这些文件都是不会变化的,所以很利于缓存,同时操作系统也会把这些段文件缓存起来,以便更快的访问. Lucen…
heap参数设置优化 命令行修改 ./bin/elasticsearch -Xmx10g -Xms10g xmx-JVM最大允许分配的堆内存,按需分配 xms-JVM初始分配的堆内存 此值设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存. 对Unix系统,可修改./bin/elasticsearch.in.sh文件: 一般分配主机1/4-1/2的内存 if [ "x$ES_MIN_MEM" = "x" ]; then ES_MIN_MEM=12g fi…
一.虚拟机组成 虚拟机主要由三部分组成:编译器(执行引擎),堆与栈. 1. 编译器 编译器分为即时编译器与解释器. 即时编译器将代码编译成本地代码存于code区.因此它快,但它有内存限制! 解释器逐行解释字节码,相当于脚本顺序执行,很慢,性能约为C语言的80%.优化的一部分是使代码尽早进入编译器.将部分代码内联(函数散开于代码中,与编译器无关). 2. 栈 栈是JVM的函数栈.所有函数必分配于栈.栈中一个帧就是一个函数,因函数之间互相调用,栈帧中包含参数,返回地址,返回值等.第一个参数必然是th…
基于value-and-criterion structure方式的实现的滤波器在原理上其实比较简单,感觉下面论文中得一段话已经描述的比较清晰了,直接贴英文吧,感觉翻译过来反而失去了原始的韵味了. The value-and-criterion filter structure  is based on the geometrical structure of mathematical morphology, but allows the use of a much wider variety…
  2015年龚博士的曲率滤波算法刚出来的时候,在图像处理界也曾引起不小的轰动,特别是其所说的算法的简洁性,以及算法的效果.执行效率等方面较其他算法均有一定的优势,我在该算法刚出来时也曾经有关注,不过那个时候看到是迭代的算法,而且迭代的次数还蛮多了,就觉得算法应该不会太快,所以就放弃了对其进一步优化.最近,又偶尔一次碰触到该文章和代码,感觉还是有蛮大的优化空间的,所以抽空简单的实现他的算法.   该算法作者已经完全开源,项目地址见:https://github.com/YuanhaoGong/C…
前言 在上一篇中介绍了ElasticSearch集群和kinaba的安装教程,本篇文章就来讲解下 ElasticSearch的DSL语句使用. ElasticSearch DSL 介绍 Elasticsearch提供了基于JSON的完整查询DSL(特定于域的语言)来定义查询.将查询DSL视为查询的AST(抽象语法树),它由两种子句组成: 叶子查询子句: 叶查询子句中寻找一个特定的值在某一特定领域,如 match,term或 range查询.这些查询可以自己使用. 复合查询子句 复合查询子句包装其…
Euclidean distance map(EDM)这个概念可能听过的人也很少,其主要是用在二值图像中,作为一个很有效的中间处理手段存在.一般的处理都是将灰度图处理成二值图或者一个二值图处理成另外一个二值图,而EDM算法确是由一幅二值图生成一幅灰度图.其核心定义如下: The definition is simple enough: each point in the foreground is assigned a brightness value equal to its straight…
又有很久没有动笔了,主要是最近没研究什么东西,而且现在主流的趋势都是研究深度学习去了,但自己没这方面的需求,同时也就很少有动力再去看传统算法,今天一个人在家,还是抽空分享一个简单的算法吧. 前段日子在看水下图像处理方面的资料时,在github搜到一个链接,里面居然有好几篇文章附带的代码,除了水下图像的文章外,我看到了一篇<Adaptive Local Tone Mapping Based on Retinex for High Dynamic Range Images  >的文章,也还不算老,…
硬盘对集群非常重要,特别是建索引多的情况.磁盘是一个服务器最慢的系统,对于写比较重的集群,磁盘很容易成为集群的瓶颈. 如果可以承担的器SSD盘,最好使用SSD盘.如果使用SSD,最好调整I/O调度算法.RAID0是加快速度的不错方法. ES建议机器配置:64G内存 SSD硬盘 RAID0,不要使用NAS. 自动调整存储带宽 在2.0.0之前,elasticsearch会限制合并速度(merges),默认为20MB/sec.但是这个速率经常是显得太小,导致合并速度落后于索引速度,进而限制了索引速度…
这里的高斯模糊采用的是论文<Recursive implementation of the Gaussian filter>里描述的递归算法. 仔细观察和理解上述公式,在forward过程中,n是递增的,因此,如果在进行forward之前,把in数据先完整的赋值给w,然后式子(9a)就可以变为:    w[n] = B w[n] + (b1 w[n-1] + b2 w[n-2] + b3 w[n-3]) / b0:     --------->     (1a) 在backward过程中…