自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wwhhff11

暂无

  • 博客(31)
  • 收藏
  • 关注

原创 今日头条笔试问题

题目链接可将问题理解拆分为:能否把一个序列,变成两个递增顺序的数组。#!/usr/bin/env python# -*- coding: utf-8 -*-# ***************************************************************************## Copyright (c) 2017 ByteDance.com, ...

2018-05-28 22:27:37 2176 1

原创 golang channel 源码分析

参考链接 Ring Buffer相关理解

2018-05-27 22:21:00 728

原创 Hadoop failed 和 killed 原因

参考链接

2018-05-21 17:21:39 771

原创 redis cluster pipeline问题排查

问题背景:问题代码: r = StrictRedis('10.20.23.45', 3901) print r.get('7551A63C3F2C0EA261AAE2B509ABC782172FE56DF64F64B6CB0B355E5A9D9FB7:u_feed_lt_ad_type_show:0') print r.get('1803D8B45F7371F0D...

2018-05-21 16:16:06 1608

原创 Java CAS 和 synchronized 和 Lock

CAS 机制适用场景:乐观认为并发不高,不需要阻塞,可以不上锁。 特点:不断比较更新,直到成功。缺点:高并发cpu压力大;ABA问题。ABA问题: CAS机制生效的前提是,取出内存中某时刻的数据,而在下时刻比较并替换。 如果在比较之前,数据发生了变化,例如:A->B->A,即A变为B然后又变化A,那么这个数据还是发生了变化,但是CAS还是会成功。Java中CAS...

2018-05-20 21:13:18 2171 2

原创 Mysql in 和 exists 的区别

参考链接

2018-05-20 20:08:45 195

原创 一次Http请求所经过的流程

参考文章

2018-05-19 19:39:37 229

原创 golang goroutine 并发递增

package mainimport ( "sync/atomic" "fmt" "sync")func main() { var wg sync.WaitGroup var a int32 = 0 // goroutine指向的外部变量地址 for i := 1; i < 100; i++ { wg.Add(1) ...

2018-05-18 15:18:14 708

原创 awk 简单使用

参考链接awk '$1>2 {print $1,$2}' test.txt # 第一行大于2awk '$1==2 {print $1,$2}' test.txtawk '$1==2 {print $0}' test.txt # 输出全部文本awk '$2 ~ /th/ {print $0}' test.txt # ~ 表示模式开始。// 中是模式awk '$2 !~ /th/...

2018-05-17 18:01:53 289

原创 go-torch 简单使用

go-torch安装FlameGraph:git clone https://github.com/brendangregg/FlameGraph.git将FlameGraph/flamegraph.pl 加入环境变量$PATHflamegraph.pl -h 测试安装go-torch: 1. go get -v github.com/uber/go-torch修改代码:...

2018-05-17 17:07:22 4315

转载 golang unsafe point

package mainimport ( "fmt" "unsafe")type Entity struct { a byte b byte}func main() { entity := Entity{} fmt.Println(entity) p := unsafe.Pointer(&entity) // 转换成...

2018-05-17 15:34:58 449

原创 golang slice 源码分析

slice 结构定义type slice struct { array unsafe.Pointer len int cap int}创建slice// maxSliceCap returns the maximum capacity for a slice.func maxSliceCap(elemsize uintptr) uintptr...

2018-05-17 14:52:38 1419

原创 redis 持久化、过期策略和淘汰逐出策略

redis 目前支持的持久化方式快照方式: 1. SAVE 模式:保存快照的同时,会停止redis服务,直到快照落地,才会重新开始提供服务。 2. BGSAVE 模式:使用fork的方式拷贝redis内存,fork的同时会导致服务停止,但是间隔比较短,拷贝完内存后,redis重新提供服务,将内存数据落地,因为涉及到内存的拷贝,要求系统拥有和redis占用内存相同大小的空闲内存。快照缺点...

2018-05-17 11:09:04 530

原创 golang 并发原理

参考文章

2018-05-15 16:18:57 614

转载 .git 文件夹分析

参考连接

2018-05-14 17:54:39 530

原创 阻塞非阻塞、同步异步,select、poll和epoll总结

参考文章IO模型阻塞IO非阻塞IOIO多路复用信号驱动IO异步IO其中前4种是同步,第5种是异步在进行网络IO的时候会涉及用户态和内核态,数据会在用户态和内核态发生交换。 整个过程可以分为:用户态等待内核态数据准备好(这个决定是否阻塞和非阻塞)将数据从内核态拷贝到用户态(这个决定同步和异步)阻塞IO: 1. 用户态等待内核态数据可读(阻塞) 2...

2018-05-13 21:55:55 1779 1

原创 腾讯社招笔试加面试

笔试(每题40分钟,不能调试!!!):输出:输入n,输出方阵,n=5时如下0 0 0 0 5 0 0 0 6 4 0 0 7 14 30 8 15 13 29 10 11 12 1n=3时如下0 0 30 4 25 6 1始终调不对,望大佬解决,留下评论。...

2018-05-12 21:40:08 7832 3

原创 go pprof 简单使用

测试demopackage mainimport ( "flag" "fmt" "io/ioutil" "log" "net/http" _ "net/http/pprof" "sync" "time")func counter() { list := []in

2018-05-12 13:58:34 1074

原创 golang map 源码分析

源码分析// A header for a Go map.type hmap struct { // Note: the format of the Hmap is encoded in ../../cmd/internal/gc/reflect.go and // ../reflect/type.go. Don't change this structure witho...

2018-05-12 12:05:43 1439

原创 Mysql 乐观锁和悲观锁

乐观锁假定每次操作都不会产生冲突,一般使用cas进行解决。update xxx set num=num+1 where num = xxx and name = xxx悲观锁假定每次操作都会冲突,都需要加锁解决。select * for update结果集中的任何行数据使用排他锁或共享锁,否则申请会阻塞for update仅适用于InnoDB,且必须在事务块(...

2018-05-12 10:40:55 246

原创 Mysql redo、undo、bin、relay log 区别

redo log 和 undo logundo log:为了实现事务原子性,要么全部完成commit,要么全部回滚rollback,Innodb用于实现mvcc(多版本并发控制)例如:将user=’A’ 改为 user=’B’,则undo log中会记录下user=’A’和事务版本等信息一旦事务完成,所有修改必须被记录下,保证数据一致性(后面redo log解释)redo lo...

2018-05-11 17:28:05 12707 2

原创 python 内存管理和垃圾回收

内存池管理一切皆为引用(动态语言)常量和短字符串会缓存底层通过c的malloc和free进行内存分配和释放(对象大小大于256会在此分配),每一次malloc会分配256k如果请求分配的内存在1~256字节之间就使用自己的内存管理系统简单的python对象,例如数值、字符串、元组,采用的是深拷贝复杂python对象,dict、list等,浅拷贝回收不会立即free参考链接...

2018-05-11 13:31:09 244

原创 golang 内存管理 + 垃圾回收

tmcalloc参考链接 分配内存策略:全局缓存堆 + 进程私有缓存对于小容量的内存申请,优先尝试进程私有缓存,若私有缓存不足,则向全局缓存申请。对于大容量的内存申请,直接向全局缓存申请。进程私有缓存:单链表数组,默认分配86个大小不同的块,每个块上的数组使用才初始化。全局缓存堆:单链表数组,一共会分配256个不同大小的块,1 page = 4k,链表对应数组每个元素page递增...

2018-05-11 12:21:26 5774

原创 Redis 集群方案学习

Twemproxyredis 请求先达到代理层,然后再代理层做路由规则以及请求分发和结果合并。 方案优点: 1. 路由分片逻辑下移,不依赖客户端代码,客户端可像连接redis一样连接proxy 2. proxy 连接 redis实例,减少redis承载的连接数 方案缺点: 1. 请求经过中间层,产生网络消耗。 2. 无法平滑增加redis实例Codiszook...

2018-05-09 22:20:38 171

原创 golang context 源码分析

context 使用背景一个request可能对应启动多个goroutine去执行任务,我们可以通过context,实现对这些goroutine的生命周期的控制。同时,对于这些goroutine通用的常量变量,context可以提供存储。使用demo不断产生数字,直到程序退出package mainimport ( "fmt" "context")fu...

2018-05-09 17:21:47 570

原创 golang 赋值拷贝问题

数组切片:func main() { m := make(map[string]interface{}, 0) l := make([]int64, 0) m["hello"] = l l = append(l,1) fmt.Println(m["hello"]) //[]}func main() { l := make([]int64, ...

2018-05-07 15:41:04 8989 1

原创 golang 面试题尝试解答

题目链接交替打印数字和字母package mainimport ( "fmt")func main() { var iout, cout, done = make(chan bool), make(chan bool, 1), make(chan bool,1) go func() { iarr := []string{"1", ...

2018-05-06 20:08:06 799

原创 golang WaitGroup 并发使用

题目原地址package mainimport ( "fmt" "sync" "time" "sync/atomic")const THREE_MINUTES = 3 * 60 * 1type BanTable struct { VisTable map[string]int64 Lock *sync.Mutex}fu...

2018-05-06 17:49:05 1160

原创 Hadoop 相关指标意义

Configured Capacity = 磁盘可用空间 - datanode保留不使用的空间(dfs.datanode.du.reserved - 有可能预留空间做其他操作例如map的shuffle,默认为0),异常将导致无法写入文件DFS Used = HDFS 已经使用空间DFS Remaining = HDFS 剩余空间Non DFS Used = Configured Capac...

2018-05-06 11:39:12 996

原创 Java 阅读链接收藏

内存和GC 类加载 反射和RTTI JUC 线程

2018-05-05 13:00:31 132

原创 hadoop 序列化压缩

hadoop 序列化和 Java 序列化的区别Java 序列化的特点:序列化的信息非常详细,包括类信息等,而这决定了Java序列化很占内存和并且并不高效(相对于hadoop序列化)。Java 序列化的时候在不断创建对象,对GC回收压力大Hadoop 序列化的特点: 1. 减少无用信息序列化 2. 序列化对象可重用 3. 自己实现序列化,可以更好控制扩展,例如proto、av...

2018-05-01 13:30:10 214

空空如也

空空如也

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

TA关注的人

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