自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 744

原创 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关注的人

提示
确定要删除当前文章?
取消 删除