- 博客(4)
- 收藏
- 关注
原创 DBSCAN 聚类算法
dbscan算法是一种基于密度聚类的算法。核心概念核心点:若某个点的密度达到算法设定的阈值(即 r 邻域内点的数量不小于 minPts),则其为核心点。 直接密度可达:若某点p在点q的 r 邻域内,且q是核心点,则称p从q出发直接密度可达。 密度可达:若有一个点的序列q0、q1、…qk,对任意qi从qi-1出发是直接密度可达的,则称从q0到qk密度可达,这实际上是直接密度可达的“传播”。
2017-03-08 20:34:03 747
原创 StampedLock的使用
由于ReadWriteLock存在严重的性能问题,甚至在很多情况下比synchronized要慢,Java8新出了StampedLock,这个锁不仅更快,而且它提供强大的乐观锁API,这意味着你能以一个较低的代价获得一个读锁, 在这段时间希望没有写操作发生,当这段时间完成后,你可以查询一下锁,看是否在刚才这段时间是否有写操作发生?然后你可以决定是否需要再试一次 或升级锁或放弃。悲观用法悲观用法和Re
2017-03-06 17:31:52 1788
原创 JAVA并行流的性能“陷阱”
从java8开始,并行编程变得很容易,通过并行流(parallelStream),可以很轻松的实现多线程并行处理。但是,这里面有个性能“陷阱”,如果不注意,使用并行流的效果反而更差,这个陷阱是什么呢?这个陷阱就是,并行流默认都是用同一个默认的ForkJoinPool,这个ForkJoinPool的线程数和CPU的核心数相同。如果是计算密集型的操作,直接使用是没有问题的,因为这个ForkJoinPoo
2017-03-06 13:56:47 7777 4
原创 tomcat高并发优化
公司的运行websocket 的tomcat 需要支持1000+长连接,需要对此进行优化。经过半天得实验,优化点主要有三处。 1、设置JVM堆内存。 方法:vim catalina.sh,在文件头添加 JAVA_OPTS=’-Xms2048m -Xmx2048m’2、设置tomcat为NIO方式,并增大线程数(默认BIO,线程数过多,无法支撑1000+个并发)。 方法:修改 Server.xm
2017-03-01 19:56:51 2066
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人