Chris.Xiao

点滴记录技术进步进程

利用GSON解析简单Json字符串

之前一直使用fastjson来解析json串,性能高,上手快,简单易学不错的! 最新听说fastjson爆出一个安全漏洞,只能寻找新的json库替代,就找到了gson,google开发的一款解析json的库, 平时工作中,复杂的json串解析用不太多,一般就是最基本的json串 用gson解...

2017-03-29 17:47:04

阅读数 2801

评论数 1

Shell变量while循环内改变无法传递到循环外

今天刷Leecode(192 Word frequency)时,遇到一个shell语法问题,记录下来。首先将题目描述和代码呈上   1 #!/bin/bash   2   3 # Write a bash script to calculate the frequency of each wo...

2017-03-24 15:33:25

阅读数 5515

评论数 0

JDK源码走读(4):容器之LinkedList

本章分析List系列中的LinkedList,真正意义上的链表,底层采用链表形式存储数据元素。LinkedList是一个双向链表,可以向前或向后两个方向遍历链表。LinkedList也可以存放null元素。 一、 类实现/继承体系结构 为了对整个List实现/继承体系有个全貌,先将体系结构图画...

2017-01-19 17:27:36

阅读数 197

评论数 0

JDK源码走读(3):容器之ArrayList

本章分析List系列中的ArrayList,有些与PriorityQueue类似,比如底层同样采取数组存储元素,也涉及到扩容操作等;也有不同之处,比如PriorityQueue不允许存入的元素为null,而ArrayList允许将null元素存放其中。 一、 类实现/继承体系结构 为了对整个L...

2017-01-03 11:30:47

阅读数 251

评论数 0

JDK源码走读(2):容器之PriorityQueue

Java的容器分成四个系列:Set, List, Queue,Map,除Map外,其余三个都实现了Collection接口,List和Queue实现顺序存储,Map实现了K-V对。 本章分析其中实现较为简单的Queue系列 一、类实现/继承体系结构 为了对整个Queue实现/继承体系有个全貌,先将...

2016-12-28 12:08:18

阅读数 541

评论数 0

JDK源码走读(1):开篇

概述         打算从今天开始阅读jdk源码,一方面更熟悉各种结构、算法和功能库的实现机制,能更好的使用Java;另一方面,这些Java代码都是业界大牛所编写,经历几十年、各种场景的考验,非常值得学习!本系列作为阅读源码的笔记,记录代码实现的主要逻辑和自己的思考,也许有理解不对的地方,随着...

2016-12-28 11:48:51

阅读数 298

评论数 0

使用HtmlUnit实现自动打卡

打卡制度由来已久,对于公司管理员工的出勤比较重要,存在也是合情合理,但对于程序员这个向往弹性工作的群体,内心里还是不太乐意,遂利用HtmlUnit写了一个自动打卡的工具,放到公司内网,通过Crontab实现自动打卡,本意不在打卡,更多是为了学习HtmlUnit,为将来实现自动化测试热身。^_^  ...

2016-12-06 11:51:44

阅读数 2014

评论数 0

Twemproxy源码走读(5):事件处理

概述 Twemproxy中的IO复用考虑了跨平台的情况,针对不同平台采用不同的IO复用机制,比如Linux下使用epoll、FreeBSD使用kqueue等,在event目录下都有实现,所有的IO复用机制对外实现了统一的接口(event/nc_event.h): struct event_ba...

2016-12-02 09:33:29

阅读数 1305

评论数 0

Twemproxy源码走读(4):运行主流程

Twemproxy在初始化完毕、运行前准备(nc_pre_run)结束后,开始进入正式的运行过程, (1)   nc_run的整体流程 整体流程很清晰, 图1 nc_run整体流程图 (2)   core_start流程 core_start流程也不复杂,其中主要是创建str...

2016-11-29 10:18:31

阅读数 622

评论数 0

Twemproxy源码走读(2):数据结构

Twemproxy内部定义了若干种数据结构,如概述中所述,包括自定义的数据结构和关键数据结构,本章将讲述两种数据结构,为后面的复杂的逻辑分析扫清障碍。 自定义的数据类型: nc_array.c、nc_array.h、nc_string.c、nc_string.h 关键数据结构和算法: nc_rb...

2016-11-27 09:20:22

阅读数 583

评论数 0

Twemproxy源码走读(3):初始化流程

Twemproxy初始化过程比较简单,这里把Twemproxy初始化过程分成两部分:(1)读取运行选项;(2)运行前的初始化和准备; (1)   读取运行选项              读取各项参数的设置,比如是否后台运行(daemonize)、日志级别、日志文件、配置文件名称等信息。      ...

2016-11-23 11:54:43

阅读数 519

评论数 0

Twemproxy源码走读(1):概述

Twemproxy(又称nutcracker,以下简称NC)是Memcached和Redis协议的代理服务器(下文中简单起见,只提及Redis,大部分情况适用于Memcached,不适用时会特别说明),并能有效减少大量连接对Redis服务器的性能影响。虽然Redis3.0版本具有集群的特性,但还不...

2016-11-20 09:19:51

阅读数 845

评论数 0

服务开发需考虑的事项

开发一个服务不是简单的将服务功能实现,程序能跑这么简单,还需要考虑到各个方面,大致整理如下: 逻辑正确,首先要保证程序的运行结果符合预期;方便修改,比如有些参数可能会修改,(1)这些就可以放到配置信息里,运行时,只需要改下配置,重启或者热修改,新的参数/配置就可以生效了;(2)还可以通过发送...

2016-11-17 11:47:43

阅读数 355

评论数 0

Redis简单扩容经验谈

team中的一个同学在其项目中使用了Redis作为缓存,将热点数据存放在Redis中。为了提升性能,写Redis时采用了管道的方式,平时使用时,Redis的性能、资源使用都能符合项目需求,但当访问量增加的时候,Redis的QPS还能满足要求,但CPU使用率高的时候已经达到90%+,平时只有30%+...

2016-11-14 23:11:58

阅读数 7265

评论数 1

开篇——概述

本分类记录了在工作过程中,遇到的、经历的或者听说过的问题,记录解决问题的思考过程,当然也有尚未解决的问题,也会记录在此,         一来有知识经验的积累,加深印象,对自己算是个交代;         二来呢,如果有哪位同行遇到了类似的问题,但有更优的解决方案,希望能在此留言指教,起到一个抛砖...

2016-11-14 23:07:24

阅读数 224

评论数 0

深入调试的技术和工具读书笔记二

第2章 调试前的必知必会 Hack #4 获取进程的Coredump 启用内核转储 ulimit -c unlimited            //开启coredump,不限制coredump文件的大小。 ulimit -c 1073741824      //设置coredump文件的上限是1...

2013-11-15 07:15:35

阅读数 551

评论数 0

sigaction函数解析

sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口) 给信号signum设置新的信号处理函数act, 同时保留该信号原有的信号处理函...

2013-10-31 18:42:05

阅读数 459

评论数 0

linux下astyle的使用

最近接触到一款格式化代码文件的小工具——astyle,感觉比较好用,记录如下: 1.首先下载astyle,本人使用的是linux版本的,下载地址: http://download.csdn.net/detail/northteam/538518 2.tar -zxvf astyle_1.22_li...

2013-10-31 13:05:14

阅读数 2041

评论数 1

EINTR错误

慢系统调用(slow system call):此术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就没有返回的保证。 EINTR错误的产生:当阻塞于某个慢系统调用的一个进程...

2013-10-30 20:16:15

阅读数 786

评论数 0

深入调试的技术和工具读书笔记一

第1章      热身准备 Hack #1 调试是什么 调试的流程如下: (1)      bug复现; (2)      调试; (3)      确认执行过程(测试); (4)      程序行为与预期相同,则停止;程序行为与预期不同,转到(2)。 Hack #2 Debug hacks的地图...

2013-10-30 19:33:53

阅读数 701

评论数 0

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