07 2016 档案

摘要:近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步 阅读全文
posted @ 2016-07-29 18:37 davygeek 阅读(235) 评论(0) 推荐(0) 编辑
摘要:上一篇《聊聊同步、异步、阻塞与非阻塞》已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两个概念点了,没有看过的,建议先看这篇博文理解这两个概念点。在认知上,建立统一的模型。这样,大家在继续看本篇时,才不会理解有偏差。 那么,在正式开始讲Linux IO模型前,比如:同步IO和异步IO,阻塞IO 阅读全文
posted @ 2016-07-29 18:37 davygeek 阅读(237) 评论(0) 推荐(0) 编辑
摘要:同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO 阅读全文
posted @ 2016-07-29 18:36 davygeek 阅读(170) 评论(0) 推荐(0) 编辑
摘要:为了区分IO的五种模型,下面先来看看同步与异步、阻塞与非阻塞的概念差别。 同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需 阅读全文
posted @ 2016-07-29 18:19 davygeek 阅读(865) 评论(0) 推荐(0) 编辑
摘要:服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非J 阅读全文
posted @ 2016-07-29 00:06 davygeek 阅读(191) 评论(0) 推荐(0) 编辑
摘要:目前在从事数据库中间件的开发和维护工作,我们使用的数据库中间件就是由cobar改造而来,所以对于cobar的一些说明一看就明白了; 下面是看到的一个很不错的分析文档 这里整理了下方便自己学习使用。 Cobar是阿里巴巴研发的关系型数据的分布式处理系统(Amoeba的升级版,该产品成功替代了原先基于O 阅读全文
posted @ 2016-07-27 14:13 davygeek 阅读(3135) 评论(0) 推荐(0) 编辑
摘要:1. 单线程 时间回到十几年前,那时主流的CPU都还是单核(除了商用高性能的小机),CPU的核心频率是机器最重要的指标之一。 在编程领域当时比较流行的是单线程编程,对于CPU密集型的应用程序而言,频繁的通过多线程进行协作和抢占时间片反而会降低性能。 2. 多线程 随着硬件性能的提升,CPU的核数越来 阅读全文
posted @ 2016-07-27 11:15 davygeek 阅读(1215) 评论(0) 推荐(0) 编辑
摘要:今天突然有个同事问题一个问题, mysqlTPS和QPS的计算公式是什么? 以前确实也没有关注过这个计算公式,所以查了下学习了下; 下面是参考内容。 在做db基准测试的时候,qps,tps 是衡量数据库性能的关键指标。本文比较了网上的两种计算方式。先来了解一下相关概念。 概念介绍: QPS:Quer 阅读全文
posted @ 2016-07-25 14:18 davygeek 阅读(1411) 评论(0) 推荐(0) 编辑
摘要:BlockingQueue也是java.util.concurrent下的主要用来控制线程同步的工具, BlockingQueue的实现是线程安全的。 BlockingQueue有四个具体的实现类,根据不同需求,选择不同的实现类1、ArrayBlockingQueue:一个由数组支持的有界阻塞队列, 阅读全文
posted @ 2016-07-22 16:48 davygeek 阅读(583) 评论(0) 推荐(0) 编辑
摘要:不先进行正式的架构设计就直接开发对于程序员来说再普通不过了。没有清晰和很好的架构设计,大部分程序员和架构师实际上会采用传统的分层的架构模式, 自然地将代码模块分隔成几个包(package)。不幸地是,这种做法经常导致未能好好组织代码模块,这些模块缺乏清晰的角色,责任以及相互关系。这经常被成为大泥球反 阅读全文
posted @ 2016-07-21 15:04 davygeek 阅读(670) 评论(0) 推荐(0) 编辑
摘要:命令行参数 运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 $n 表示,例如,$1 表示第一个参数,$2 表示第二个参数,依次类推。请看下面的脚本: #!/bin/bash echo "File Name: $0" echo "First Parameter : $1" echo "Firs 阅读全文
posted @ 2016-07-14 13:55 davygeek 阅读(139112) 评论(3) 推荐(11) 编辑
摘要:最近维护的项目使用的是java开发的,所以对于jvm虚拟机相关的操作还是必须要了解的,就先从最基本的jstat来学习起来。 首先需要会的就是full gc的查看; 下面就从网上收集了一些工具介绍, 慢慢完善。 1. jstat -gc pid 可以显示gc的信息,查看gc的次数,及时间。 其中最后五 阅读全文
posted @ 2016-07-13 23:57 davygeek 阅读(2914) 评论(0) 推荐(0) 编辑
摘要:dpkg命令是Debian Linux系统用来安装、创建和管理软件包的实用工具。1. 语法 dpkg (选项) (参数)2. 选项 3. 参数 Deb软件包:指定要操作的.deb软件包。 4. 实例 (1) 列出与该包关联的文件 阅读全文
posted @ 2016-07-12 19:21 davygeek 阅读(2121) 评论(0) 推荐(0) 编辑
摘要:pssh命令是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问。1. 安装 安装可以使用yum或者apt-get安装,还可以使用源码安装, 由于我使用apt-get安装不 阅读全文
posted @ 2016-07-11 20:17 davygeek 阅读(4679) 评论(0) 推荐(1) 编辑
摘要:1. 不得不说说二叉树 要了解堆首先得了解一下二叉树,在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树的每个结点至多只有二棵子树(不存在度大于 2 的 阅读全文
posted @ 2016-07-11 14:37 davygeek 阅读(608) 评论(0) 推荐(0) 编辑
摘要:最近使用qt开发了一个访问数据库的工具, 默认使用ODBC驱动注入的方式,后来发现Oracle中ODBC驱动注入经常失败。 后来就想直接使用OCI方式访问,而默认情况下Qt只有Sqlite和ODBC驱动,OCI需要自己编译安装; 网上有相应的驱动安装介绍,自己实验可行: 编译前置条件: 1. QT源 阅读全文
posted @ 2016-07-11 13:35 davygeek 阅读(5546) 评论(1) 推荐(1) 编辑
摘要:使用doxygen 生成源代码的文档是相当方便的,本文就简单整理下doxygen的使用说明 1. 安装 关于安装的问题不做特殊的说明,这里直接使用命令安装, 源码安装不做介绍 ubuntu: centos 2. 配置文件配置 关于doxygen主要的部分就在于配置文件的配置, doxygen相当强大 阅读全文
posted @ 2016-07-10 23:57 davygeek 阅读(3141) 评论(0) 推荐(0) 编辑
摘要:和机器字长及编译器有关系:所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short in 阅读全文
posted @ 2016-07-07 11:17 davygeek 阅读(1122) 评论(0) 推荐(0) 编辑
摘要:之前一直使用c/c++开发c中各种类型占用的位数和java还是有区别的,特地找了篇文章过来对比下。 在处理网络协议的时候需要注意 在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型和1种用于表示真值的boolean类型。(一个字节等于 阅读全文
posted @ 2016-07-07 11:13 davygeek 阅读(580) 评论(0) 推荐(0) 编辑
摘要:MySQL协议分析 协议头 协议头 协议类型 连接时的交互 协议说明 handshake packet auth packet ok packet error packet resultset packet resultset packet - header resultset packet - f 阅读全文
posted @ 2016-07-06 17:31 davygeek 阅读(2347) 评论(0) 推荐(0) 编辑
摘要:目录 目录 1 交互过程 1.1 握手认证阶段 1.2 命令执行阶段 2 基本类型 2.1 整型值 2.2 字符串(以NULL结尾)(Null-Terminated String) 2.3 二进制数据(长度编码)(Length Coded Binary) 2.4 字符串(长度编码)(Length C 阅读全文
posted @ 2016-07-06 16:05 davygeek 阅读(30679) 评论(0) 推荐(4) 编辑
摘要:输入/输出:概念性描述 I/O 简介 I/O ? 或者输入/输出 ? 指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口。它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的。单独的程序一般是让系统为它们完成大部分的工作。 在 Java 编程中,直到最近一 阅读全文
posted @ 2016-07-05 21:35 davygeek 阅读(432) 评论(0) 推荐(0) 编辑
摘要:随着互联网的发展,数据量的不断增大。 单台实例已经远远无法满足业务的需要。 对数据库分库分表的需求不断的增加随之而来的就是数据库中间件的开发。 一、 单台实例主要面临下面几个问题: 1. 数据量太大单台机器无法承载 2. 数据查询效率太低,单表数据达到一定的量业务性能就无法满足 3. 数据库优化上的 阅读全文
posted @ 2016-07-05 20:22 davygeek 阅读(2479) 评论(0) 推荐(0) 编辑
摘要:go中有pprof包来做代码的性能监控,在两个地方有包: 其实net/http/pprof中只是使用runtime/pprof包来进行封装了一下,并在http端口上暴露出来 pprof包 web 服务器 如果你的go程序是用http包启动的web服务器,你想查看自己的web服务器的状态。这个时候就可 阅读全文
posted @ 2016-07-04 09:33 davygeek 阅读(880) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示