自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 sparkSQL性能优化

2020-03-16 13:33:19 108

原创 Spark streaming 性能优化

1 使用kryo序列化2 调整batch interval时间 默认时间是200ms 每接受一次实际上就是一份task 就会在一份patition上面运行,根据自己设置指定大小的interval 例如batch interval是200ms batch的时间长度是1s 那么就会划分出1s/200ms==》五份patition 也就是五个并行度 最好并行度是core的2-3倍3 spark....

2020-03-16 10:48:25 157

原创 spark性能调优总结

1 序列化优化使用高性能的序列化框架 kryo框架 大部分已经注册 如果没有注册 而是自定义的类SparkConf conf = new SparkConf().set("spark.serializer","org.apach.spark.serializer.Kryoserializer")那么要注册2 数据结构优化 使用int代替UUID 使用数组等代替集...

2020-03-13 22:26:48 177

原创 进程 线程 区别

1 概念进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。2 切换 进程切换 (1)PCB的页表始址和页表偏移量切换到寄存器中 用于缺页中断和页置换,涉及到相应的页置换算法 (2...

2019-09-18 10:52:08 116

原创 mybatis # $区别

1 #{}传入值时,sql解析时,参数是带引号的,而${}传入值,sql解析时,参数是不带引号的2 执行一个 #{ } 被解析为一个参数占位符${}: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换3 最后mybatis中交给PreparedStatement执行4PreparedStatement在进行参数设置时,对存在依赖注入风险的参数值...

2019-08-31 19:39:39 77

原创 堆的基本操作

定义:它是一颗完全二叉树,它可以是空 树中结点的值总是不大于或者不小于其孩子结点的值 每一个结点的子树也是一个堆通常用数组可以去建堆left = i*2right = i*2+1建堆默认放在末尾 然后进行shift up操作取的话和堆顶比较 然后进行shift down操作...

2019-08-18 19:47:36 78

原创 MVCC理解

mvcc可以实现读写并发,通过多版本控制获取到合适版本的对应数据具体有4列6字节的事务ID(DB_TRX_ID)字段: 用来标识最近一次对本行记录做修改(insert|update)的事务的标识符, 即最后一次修改(insert|update)本行记录的事务id。 至于delete操作,在innodb看来也不过是一次update操作,更新行中的一个特殊位将行表示为deleted,并非...

2019-08-12 21:47:28 150

原创 一次URL请求流程

DNS域名解析 IP协议 要把源IP地址和目的地IP地址写入HTTPS协议 经过ssl握手 握手非对称加密 传输数据是对称加密TCP三次握手数据过大 IP分片数据链路层 ARP协议 找到MAC地址封装成帧 加上帧头帧尾在发出去之前 要走CRC协议 做校验 校验传输过程中是否丢包 损坏 封装到帧上比特流发送出去 发出去前还有信道监听协议 有多种 直接发 先听再发 等等...

2019-07-21 15:51:33 158

原创 spring AOP原理分析

ProxyFactoryBean 的getObject方法作为入口 有两个任务 第一个是获得它的通知 并初始化适配 注册成为拦截器链 具体的配置内容在Config AdviceSupport类中 类通过实现了setBeanFactory方法获得了IOC容器的回调 从而可以使用IOC容器 并拥有Advice的配置信息 根据配置信息 name向IOC容器中getbean()方法 获得了advice对象...

2018-12-20 14:55:06 186

原创 ReentrantLock工作原理分析

 ReentrantLock是一个可重入锁,意思就是说可以递归的调用锁,而不会因为递归进入加锁方法而发生死锁,这里后面会添加解释 ReentrantLock是基于AQS实现,其原理和AQS大致相同,分为公平锁和非公平锁,他们都会维护一个CLH双端队列,本质上是一个双端链表,本质上都要继承AQS并重写相应的方法 tryAcquire()方法 还有tryRelease()final ...

2018-11-26 09:00:46 178

原创 AQS工作原理解析源码解析

AQS主要是一个同步的处理队列,保证了线程的安全 AQS又主要分为独占式和共享式独占式或者共享式 都要重写继承AQS的方法 tryAcquire(int):独占方式。尝试获取资源,成功则返回true,失败则返回false。 tryRelease(int):独占方式。尝试释放资源,成功则返回true,失败则返回false。 tryAcquireShared(int):共享方式。尝试获取资...

2018-11-25 23:00:25 150

原创 红黑树简要分析

红黑树概念:1 节点是红色或者黑色2 根节点是黑色的3红色的节点的孩子必须是黑色的 也就是红节点下的孩子节点必须是黑色的 4每一个从根节点到叶子节点的黑色节点数量都必须一致5叶子节点是黑色的 红黑树主要在于添加和删除的各种情况 添加节点  默认添加节点为红色节点 那么就会出现双红缺陷 有两个红色的连着的节点 这是不合定义的 需要做调整 第一种情况:叔叔节点是...

2018-11-20 00:26:00 221

原创 快速排序 归并排序 优化

第一篇博客... 比较激动哈我们先来总的分析分析归并和快拍这两个比较厉害的排序算法 其平均时间复杂度都是nlogn 为什么是nlogn呢 其实logn是递归栈的深度,而n是遍历的个数 所以递归层数加上遍历个数最总结果使得 就排序完了 时间复杂度就是nlogn但是要明白(1) 归并排序是先分成两半 并且是写好的 /2 的平均分 分了之后再整合处理 分的很平均 所以递归的深度就很平均,就有点...

2018-10-07 01:09:46 386

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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