自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Mysql监控指南(实践的好文章值得收藏)

Mysql作为广泛应用的数据库系统,平时运维工作中对她的监控必不可少,现在把我对Mysql数据库的监控体会写成下文,欢迎拍砖。无论是DBA或是SA,监控的目标都很明确,无外乎1.快速的得到Mysql过去一段时间或者当前运行的状态2.因硬件升级或者系统配置的改变而诊断对Mysql数据库性能影响3.在Mysql数据库系统出现故障要能够及时收到告警4.为日后编写运维报告提供各项数据指

2013-12-09 09:33:17 730

转载 架构师给程序员的一封信

六个月前,当我们开始新项目时,我和我的团队里的每个人都收到了来自我们的架构师的一封邮件:    每次当我开始做一个新项目时我都非常的兴奋。即使是在做了20年的软件开发后,我仍然感觉心里像揣了一个小兔子似的怦怦直跳。这将是我们共同的旅程。我深信我们正在绘制一份充满乐趣、富有挑战、内容丰富的路线图。我想让这趟旅程能够成为你们将来值得回忆的一件事,希望你们都能完全的体验到这次经历。   

2013-08-27 18:27:22 895 1

转载 当你需要向用户解释时,就已经输了一半

昨天晚上我们去给一家已投资的企业做战略规划,围绕企业目前快速成长还缺什么这个问题,讨论了两个小时。最后发现这是很多企业都会遇到的问题:在一个行业里,已经存在几家标杆企业,如何选择战略?   我的产品、服务比他们的更好!   这类企业一般都是觉得这个市场空间很大,目前几家企业做得不够好,自己可以提供更好的产品或服务。所以想通过更好的产品、更优质的服务来获取市场。比如说当年的千团大战,

2013-08-27 18:19:28 1050

原创 使用SVN进行Unity3D项目管理的方法

由于导出的包自动包含了相关元数据信息,弥补了用SVN无法管理这些数据的缺陷,我们就可以将二者配合使用,达到多人在一个项目中协同工作的效果。具体使用步骤如下:首先用SVN建立对整个项目文件夹的管理,包括asset和library目录以及下面的文件;由负责集成的项目组成员管理并提交该项目更新到svn数据库其他协作人员从svn数据库下载最新的项目文件协作人员对自己负责的内容进行工作,然后将成果输

2013-08-14 15:18:53 2824

翻译 Unity3D Platform Tutorial 中文教程翻译-第一章

Unity是一款强大的游戏开发工具,适合大量的游戏类型,从第一视角游戏到复杂的游戏。    Unity的大量的特性,如高度映射地形、网络支持、复杂物理集成和脚本等,可能让新手畏惧,但是掌握这些工具后却能给你带来无穷的回报。    本教程将指导你完成一个第三人称视角的完整3D游戏关卡。包括玩家输入、碰撞检测、一些高级脚本、Blob阴影、基础AI、游戏HUD、场景分屏和音效等。

2013-08-14 00:04:31 2724

原创 Unity中protobuf的使用方法

在移动手机游戏开发中,目前Unity3D已成为比较主流的开发技术。那么对于客户端服务器协议的打解包,我们有3中常用的处理方式:1、自定义结构体:在协议中直接传输代码中自定义的结构体;这种方式的坏处是极大的增加了重复性的工作量,并且不能实现协议前后向兼容,可扩展性差;2、json、xml等文本协议格式: 使用json、xml等文本协议作为协议格式;这种方式的好处是易于开发,方便协议前后向

2013-08-13 16:15:06 27598

原创 小公司的项目开发管理

1、使用禅道进行相关的项目管理和开发中的bug管理;2、使用hdwiki进行日常项目中的知识文档管理; htwiki的安装方法见链接:  http://kaiyuan.hudong.com/install.htm

2013-07-24 10:29:33 1147

转载 禅道敏捷项目管理软件的安装和使用

linux一键安装包也是在xampp基础上精简来的,内置了apache, php, mysql这些应用程序,只需要下载解压缩即可运行禅道。一、安装创建/opt/目录然后 下载我们最新的linux一键安装包(7z格式的) ,存储在/opt/目录下面。这个包是一个自解压缩格式的,chmod a+rx *.7z,添加执行权限。执行这个包,会自动解压缩,比如./ZenTaoPMS.3.0.

2013-07-23 11:51:29 1121

转载 git学习篇1——git的安装和基本使用

一、GIT的安装和初始化:1.在centos下,直接执行 yum install git-all;即可完成git的安装;2、新建一个目录: mkdir GitRepository; 进入目录并初始化一个git库:cd GitRepository; git init;3、完成上述操作后,会在GitRepository目录下面生成 .git 目录;4、进入.git目录,编译config

2013-07-12 11:05:13 547

原创 Linux SVN 服务器的安装

http://www.ha97.com/4467.html

2013-07-04 09:32:49 510

转载 架构师给程序员的一封信

当我们开始新项目时,我和我的团队里的每个人都收到了来自我们的架构师的一封邮件:"每次当我开始做一个新项目时我都非常的兴奋。即使是在做了20年的软件开发后,我仍然感觉心里像揣了一个小兔子似的怦怦直跳。这将是我们共同的旅 程。我深信我们正在绘制一份充满乐趣、富有挑战、内容丰富的路线图。我想让这趟旅程能够成为你们将来值得回忆的一件事,希望你们都能完全的体验到这次经 历。

2013-01-31 09:59:56 377

转载 Chrome浏览器内部协议Chrome://收集

Chromium 采用 Chrome:// 协议开头的形式, 规定了一系列的内部协议, 有的用来显示数据, 有的用来实现一些功能, 但对普通用户进行了屏蔽。在Chrome浏览器地址栏直接访问就好了!chrome://bookmarks收藏管理器chrome://credits展示所有第三方软件许可证(开放源代码软件)chrome://dns展示DNS状态, 一般

2013-01-17 13:33:27 2073

转载 md5到md5破解的一些科普

看到网上一些对于md5的介绍还有对于当初王小云所做的破解有很多的误解,或者说不理解,然后觉得对于这些事情只要说明白还是比较好理解的说。首先md5其实就是一种hash,或者叫散列函数,有的地方叫杂凑函数,都是一个东西啦,其实他就是一种映射,而平常最常见的就是说md5是不可逆的,为什么不可逆呢,有人就说就是像有些函数没有反函数那样了,其实还是有点抽象,考虑md5是多对一的映射,也就是说很多

2012-12-20 19:42:37 694

转载 网站密码存储方案比较

为了对用户负责,用户密码采用不可逆算法的时候,我们就要考虑一下如何对用户密码进行加密。那么仅仅是使用不可逆算法就行了吗?还不是,在硬件飞速发展的今天,尤其是GPU运算能力超CPU 10-20倍甚至更多,使得暴力破解的时间大大缩短。那么为了使得暴力破解变得几乎不可能,我们就要使用一些不支持GPU加速破解的算法。这里所说的算法,实际上也是各种加密的hash方式。目前常见的不可逆加密算法有以下几

2012-12-20 19:41:10 1643

转载 几个实用的linux命令

一些强大的命令再分享一些可能你不知道的shell用法和脚本,简单&强大!在阅读以下部分前,强烈建议读者打开一个shell实验,这些都不是shell教科书里的大路货哦:)!$!$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串。如:你可能会这样:$mkdir mydir$mv mydir yourdir$cd yourdir可以改成:$mk

2012-12-10 13:50:14 1037

转载 二进制patch工具xdelta的使用方法

Xdelta 是一个二进制的diff 工具[同时又兼具了patch 功能],diff 和patch 是Unix 世界里很有用的一对工具:我们通常将它们结合起来实现生成补丁,应用补丁的目的。如果要处理的不是文本文件,是二进制文件,我们可以使用一个专门用来处理二进制文件的工具–xdelta。       Xdelta3 可以说是xdelta 的一个增强版,功能更加强大,但命令和补丁和xdelt

2012-11-16 17:55:30 14462

原创 memcached源码阅读笔记(二)

之前的文章,主要分析过main()函数.那本文从分析主线程的执行流程开始,分析一下memcached的核心函数drive_machine()函数.\    在main()函数中,会调用server_sockets()函数初始化监听的连接.在server_sockets()函数中,会调用server_socket()函数.server_socket()函数中,对于UDP会调用dispacth_c

2012-11-04 21:14:33 1359

原创 memcached源码阅读笔记(一)

memcached是一款开源的高性能的缓存服务器,目前已经被广泛的用于互联网产品中,缓存各种数据。在web game的开发中,我们也可以使用memcached来缓存热点数据,通过定期落地机制提高数据的读写性能,防止数据访问成为性能瓶颈。    那么本专题将主要分析一下memcached的源代码。    memcached的源码比较少,只有27个源代码文件。    对于网络IO事件的管理

2012-11-03 15:35:29 905

原创 libevent源码阅读笔记(五)

本章是libevent源码分析的最后一篇,主要分析一下libevent对信号处理的支持方式。    1).evsignal_init()函数分析:intevsignal_init(struct event_base *base){ int i; /* * Our signal handler is going to write to one end of the soc

2012-11-03 00:39:42 968

原创 libevent源码阅读笔记(四)

之前的文章中介绍过libevent事件处理的整体流程,本文主要从事件的注册和删除等方面来分析libevent的源码。    1).event_add()函数分析:intevent_add(struct event *ev, const struct timeval *tv){ struct event_base *base = ev->ev_base; const struct e

2012-11-02 22:51:43 938

原创 libevent源码阅读笔记(三)

前面分析了libevent中对IO事件、定时器和signal的基本处理方法,也分析了libevent中基本的数据结构。从本章开始,将开始从代码结构和执行的角度,详细分析各功能的代码实现方式。    本文将主要讲述事件处理的整体整体流程。    1).event_base_new()函数源码分析:struct event_base *event_base_new(void){ in

2012-11-02 20:21:36 2218

原创 libevent源码阅读笔记(二)

本文主要分析一下event_base相关的数据结构和操作接口。    1、先看一下event_base结构:struct event_base { const struct eventop *evsel; void *evbase; int event_count; /* counts number of total events */ int event_count_act

2012-10-31 23:32:17 849

原创 libevent源码阅读笔记(一)

libevent是一个高性能的异步事件处理编程框架,通过reactor模式注册处理函数的方式,极大的方便了网络编程的异步I/O的处理。libevent主要封装和统一了3种事件的处理:I/O事件、定时器 和 信号。本文主要分析一下libevent的源码,如何实现异步I/O的reactor模式,如何将定时器和信号统一到事件处理中去。  1、libevent的基本使用方法:        a).

2012-10-31 19:33:05 1311

原创 如何方便的使用shell脚本来解析xml文件

最近在项目中,需要用到shell脚本来解析xml文件。在网上搜了一下,发现有xmlsh等可以用,但是都需要下载安装,使用比较麻烦,后来经过查找在stackoverflow上找到了解决方法,将脚本记录如下。    项目中的主要需求为: 在xml文件中,需要配置连接的服务器的IP和端口号等信息,供游戏逻辑程序作为服务的客户端进行解析使用。但同时,这些IP和端口号也是在进行服务器部署时需要配置的,因

2012-10-10 22:20:15 31061

原创 google gperf-tools使用记录

今天对自己的排名服务器进行压力测试和性能分析,之前一直使用的比较顺手的是gprof,但是gprof对多线程的分析无能为力,如果想要支持的话得专门写一个共享库来支持。所以后来尝试了一下使用google-gperftool来进行性能分析。      google-gperf tools是google用来进行程序性能优化的工具集合,主要包括tcmalloc和profiler。       t

2012-10-10 19:05:13 8194

转载 内存泄漏分析及常用内存泄漏检测工具分享

一.内存泄漏的定义   一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。以下这段小程序演示了堆内

2012-09-23 12:11:21 8410

转载 程序性能调优攻略

本文转载自coolshell: http://coolshell.cn/articles/7490.html关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。在开

2012-09-22 11:35:28 1578

原创 使用sar分析LINUX的性能

SAR    sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据。sar命令在sysetat rpm中提供。    sar可以显示CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断、网络等性能数据。最重要的sar功能是创建数据文件。每一个Linux系统都应该通过cron工作收集sar数据。该sar数据文件为系统管理员提供历史性能信息。这个功能非常

2012-09-21 17:08:36 9348 1

转载 如何配置vimdiff作为svn diff的查看代码的工具

LINUX下面的svn diff直接查看的话很吃力,也很不方便。所以网上找到如下解决方案,能方便的使用vimdiff来查看svn diff的代码查看工具,相当方便。配置方法为:1、编写脚本diffwrap.sh:#!/bin/sh#过滤掉svn diff的前五个命令行参数shift 5#使用vimdiff比较文件vimdiff "$@"2、在svn的配置文件

2012-09-20 17:46:24 3745

原创 tcpdump使用基础和技巧

tcpdump是linux下的一款字符界面的网络抓包工具,能为我们的网络程序调试提供极大的遍历。本文主要总结一下tcpdump的使用方法和一些使用技巧。1、tcpdump使用基础:../tcpdump -i eth0 port 80 -nn -X ‘port 53′ -c1 -A参数说明:-i 表示抓包监听的网卡;port 表示监听的端口,如果不加表示抓

2012-09-17 14:34:55 654

转载 Linux下的共享库的开发

Linux共享库技术是一项很激动人心的技术,它充分提供了程序的动态扩展能力,能够方便的进行Linux下程序的插件式开发。而且在运行过程中,如果需求有更改,只需要更新相应的共享库,从而能很方便的实现功能的无缝切换,极大的提供了程序的动态扩展能力。下面将说明动态库的开发方式。   1、支持动态库的主程序的开发:           在使用dl系列接口时,需要包含头文件  #include

2012-09-14 22:27:53 482

原创 常用的linux命令的操作技巧

1、批量修改替换文件中的内容:       perl -i -p -e "s/orignial_string/new_string/g" 批量修改file文件中的original_string 为new_string;2、查看当前打开文件句柄最多的进程:       lsof -n | awk '{print $2}' | sort | uniq -c | sort -nr | mo

2012-09-06 21:56:39 443

原创 常用svn操作记录

1、解决UFT-8环境下svn log 显示乱码的问题                alias svn="env LC_ALL=zh_CN.utf-8 svn"2、解决UTF-8环境下check out 代码由于文件编码出错的问题               export LC_CTYPE="zh_CN.UTF-8"               export LANG="en_U

2012-09-06 21:25:31 812

转载 怎样DEBUG 进程IO消耗大的问题

1、问题描述: 发现CGI程序的磁盘IO突然出现峰值上升;2、判断: 程序突然出现大量的core dump或者某业务异常出发大量的IO写操作;3、分析方法:    a).使用top按照CPU排序发现CPU使用率很高的进程,一般IO使用率高的进程CPU的消耗也会大幅增加,通过CPU使用率基本能够定位到问题进程;    b).通过iostat查看哪个分区有大量的写磁盘操作;

2012-09-06 21:07:38 853

转载 服务器调优──提高并发量(ZZ)

操作系统的中打开文件的最大句柄数受限所致,常常发生在很多个并发用户访问服务器的时候.因为为了执行每个用户的应用服务器都要加载很多文件(new一个socket就需要一个文件句柄),这就会导致打开文件的句柄的缺乏.解决: 尽量把类打成jar包,因为一个jar包只消耗一个文件句柄,如果不打包,一个类就消耗一个文件句柄. java的垃圾回收不能关闭网络连接打开的文件句柄,如果没有执行close()(例

2011-06-17 19:20:00 1478

转载 让memcached和mysql更好的工作(ZZ)

这次是Fotolog的经验,传说中比Flickr更大的网站,Fotolog在21台服务器上部署了51个memcached实例,总计有254G缓存空间可用,缓存了多达175G的内容,这个数量比很多网站的数据库都要大的多,原文是A Bunch of Great Strategies for Using Memcached and MySQL Better Together,我这里还是选择性的翻译以

2011-06-17 19:18:00 474

原创 expect的基本用法(存下来慢慢看)

<br />一、概述 <br /><br />我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。 <br /><br />Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互

2011-05-05 22:34:00 1211

转载 Linux下通用线程池的创建与使用(ZZ)

<br />本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的简单。<br /> 为什么需要线程池<br />目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短

2011-03-16 18:43:00 406

原创 无阻塞套接字技术 讲解(ZZ)

<br />标准的网络编程模式有一个缺点,就是如果Socker类的I/O方法不能立即处理,I/O方法就会阻塞(Block)。阻塞是指程序停止执行,等待个特殊语句的完成。如当一个程序执行到Receive方法的时候,程序会停止执行,直到在套接字上读到的数据为止。如果远程设备不发送任何数据,程序就不能继续下去。对于单一连接的客户端/服务器程序这种方式也许可以正常工作,但对于必须连续处理其祂事件的程序就会引起问题。有3个可以避免使用阻塞网络调用的C#技朮:无阻塞套接字、多路传套接字和异步套接字。<br />    

2011-02-23 21:12:00 497

原创 面试准备(ZZ)

<br />复习基本知识。 《LC C++ 数据结构与算法》、《操作系统原理》、《计算机网络》、《Linux程序设计》(因为我自己做的就是Linux和网络方面的东西); C推荐大家看三本书:《C陷阱与缺陷》、《C专家编程》、《C/C++高质量编程》。对于C,你这样准备就足够了。我的项目主要是C,自己也很喜欢。另外我C++也还可以,就看了钱能的那本。如果一些公司考C++,你最好看一下《C++ Primer》,主要看一下里面的STL。 数据结构也是重中之中,链表、栈、队列,主要是里面的算法、查找

2011-02-23 20:54:00 365

空空如也

空空如也

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

TA关注的人

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