自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

why is this

生活总是让我们遍体鳞伤,但到后来,那些受伤的地方一定会变成我们最坚强的地方

  • 博客(40)
  • 资源 (5)
  • 收藏
  • 关注

转载 Hook钩子技术

钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。       钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即

2015-03-30 09:13:49 442

原创 mysql无法启动

* MySQL server PID file could not be found!Starting MySQL. * The server quit without updating PID file (/var/run/mysqld/mysqld.pid).原因1:已经有进程运行.ps aux|grep mysql  kill -9 进程service m

2015-03-26 15:27:00 406

原创 其他机器无法访问(连接)程序的原因

如果本机上可以访问程序(服务器,mysql,等等只有是绑定端口的程序)但是,其他ip访问不了,可能是防火墙没有添加该端口导致;

2015-03-26 11:20:00 480

原创 mysql远程登入问题解决

第一步:vim /etc/mysql/my.cnf找到bind-address = 127.0.0.1注释掉这行,如:#bind-address = 127.0.0.1或者改为: bind-address = 0.0.0.0允许任意IP访问;或者自己指定一个IP地址。重启 MySQL:sudo /etc/init.d/mysql restart第二步:

2015-03-26 11:04:10 500

原创 mysql优化之版本问题

同样的select语句在不同的版本下的查询速度是不一样的。mysql内核算法可能该变了,高版本做了算法的优化。例如:mysql 5.5.28-log版本: SELECT * FROM gapi_program_list WHERE cid = 0 AND mid = 0 ANDcategory_id IN ('aa0a28d394c611e497ac50e5498e8581')

2015-03-25 10:23:13 369

原创 服务器挂掉原因

今天服务器莫名其妙没有反应,但是nginx和memcached都在运行,当我查看服务器内存使用情况时,发现内存使用率达到了90%多。明显知道是内存占用太大导致服务器没有响应了。而后内存又恢复到40%多,服务器也恢复正常了

2015-03-24 12:03:44 3059

转载 程序人生

1、假如编程易懂得,那么程序员就不会热情地写出注释,也不会有得到编程的快乐。2、调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。3、程序员之所以犯错误,不是因为他们不懂,而是因为他们自以为什么都懂。4、代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。5、编程是一种美德,是促使一个人不断向上发展的一种原动力。

2015-03-24 11:18:40 391

转载 FSM设计和实现2

分层状态机的设计:对于状态较多的状态机,通常的设计会维护一个庞大的二维矩阵,所有状态耦合在一起,这往往导致维护困难,由于可能存在许多公共的特性,也会导致许多状态具有相同的处理函数。针对这些问题我们可以通过设计分层状态机来解决,主要的思想就是根据不同的功能模块设计出多个状态机,各个状态机分布在不同的层次上。上层状态机调用下层状态机时,上层状态机入栈,下层状态机变为当前处理状态机。通常我们使用堆栈

2015-03-23 10:08:51 442

转载 FSM设计和实现1

有限状态机(FSM)是表示有限个状态及在这些状态之间的转移和动作等行为的数学模型,在计算机领域有着广泛的应用。通常FSM包含几个要素:状态的管理、状态的监控、状态的触发、状态触发后引发的动作。本文主要阐述一下状态机的几种设计方法。1:switch case/if else设计方法curEvent = getEvent();curState = getCurState();swi

2015-03-23 10:08:00 511

转载 多平台适配的代码设计

多平台适配的代码设计一个成功的软件系统,往往需要根据需求在不同的系统平台上运行,为了解决系统在多个平台的移植带来的风险,业务架构往往会设计相应的平台适配层来隔离不同平台的差异,如何设计一个易于扩展的平台适配层,是软件设计人员需要考虑的问题。设计1:1: 提供平台接口文件os.h2:定义如下:#ifdef OS1#define OS_Fun OS1_Fun#end

2015-03-23 10:05:13 933

原创 mysql优化经验之where order by

例子: SELECT t.uuid, t.id, t.internal_id, t.rcu_key, t.category_id, t.type, t.name,t.ref_page, t.mpaa, t.season, t.episodes, t.episode, t.update_to, t.ratings, t.pc_view_count + t.stb_view_count

2015-03-20 16:21:30 670

转载 mysql 优化之多列索引

数据库的索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度。索引优化是数据库优化的最重要手段。如果查询语句使用索引(通常是where条件匹配索引)就会利用树的结构加快查找,索引会按值查找到要查找的行在表中位置,不需回表查询数据的就是聚簇索引(索引和数据存放在一起)。通常是需要回表再查数据,需要消耗额外的

2015-03-20 15:24:57 874

转载 mysql 优化之index

Mysql索引概述索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。如果一个表有1000行,这比顺序读取至少快100倍。注意如果你需要访问大部分行,顺序读取要快得多,因为此时我们避免磁盘搜索。所

2015-03-20 11:52:56 448

转载 mysql order by优化

工作过程中,各种业务需求在访问数据库的时候要求有order by排序。有时候不必要的或者不合理的排序操作很可能导致数据库系统崩溃。如何处理好order by排序呢?本文从原理以及优化层面介绍 order by 。在某些情况下,MySQL不能使用索引来解决ORDER BY,尽管它仍然使用索引来找到匹配WHERE子句的行。这些情况包括:·         对不同的关键字使用ORDER BY

2015-03-20 08:40:31 715

转载 eclipse中文乱码问题

Eclipse 添加GBK编码首先Windows->Preferences, 然后选择General下面的Workspace. Text file encoding选择Other GBK, 如果没有GBK的选项, 没关系, 直接输入GBK三个字母, Apply, GBK编码的中文, 已经不是乱码了

2015-03-16 11:50:27 382

原创 goto对资源的释放问题的解决

Q:一块代码中有大于1的资源的分配时,很容易造成跳过资源的释放;从而导致资源的泄露。A:利用goto语句的跳转特点可以一定程度上解决这个问题example:FILE *f1=open();if(NULL==f1){     goto error1;}FILE *f2=open();if(NULL==f2){    goto error2;

2015-03-13 11:49:30 506

原创 C读取XML配置文件开源项目SCEW

SCEW的目的是提供在XML围绕一个简单的接口Expat解析器,以及用于创建新的XML的简单接口文档。它提供的功能来加载和访问XML元素而不需要每次都创建外籍​​事件处理例程要加载一个新的XML文档。这些是主要的SCEW特点:     - 使用新的或解析XML文档的DOM样的对象模型。     - 支持级联加载XML文档。     - 可以复制和比较完整的X

2015-03-13 11:11:17 2248

转载 shell中$0,$?,$!等的特殊用法

变量说明:$$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值),成功是0,不成功是1使用Set命令设定的Flag一览$*所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。$@所有参数列表。如"$@"用「"」括起来的情况、以"$

2015-03-13 10:23:59 451

原创 ulimit命令

ulimit用于shell启动进程所占有的资源;语法格式:ulimit [-acdfHlmnpsStvw] [size]-H 设置硬资源限制.-S 设置软资源限制.-a 显示当前所有的资源限制.-c size:设置core文件的最大值.单位:blocks-d size:设置数据段的最大值.单位:kbytes-f size:设置创建文件的最大值.单位:blocks

2015-03-13 10:10:12 460

转载 编程思想

但是对于一个软件来说, 最最重要的是系统架构,数据结构,架构设计的好, 对后期的代码维护,功能修改都很关键, 这也就是新手写的代码, 到最后连他自己本人都很难维护的原因, 更别说让别人来维护了。API相当于基本功, 系统架构, 数据结构是内功,基本功练的越快,我们就越有更多的时间来练习内功。练习内功,我们要多向高手学习。

2015-03-12 14:43:49 333

转载 C/C++程序员必须熟练应用的开源项目

作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应用过, 但是回过头仔细想想,其实以前自己写过的这些代码,只能是在特定的项目或者特定的环境中使用, 对于自己来说, 在不同的项目中应用, 只需要复制代码, 改改也就可以了, 因为自己写的代码自己很熟悉。

2015-03-12 14:28:41 362

转载 Samba服务器

为了实现windows 和 Linux以及其他操作系统之间的资源共享,软件商推出nfs 和samba两种解决方式。由于市场上缺乏象pc-nfs那样的客户端工具,使得Linux和windows的资源共享变得复杂。Samba的出现解决了 这一问题,它以其简洁、实用、灵活配置的特点受到越来越多人们的广泛关注。Windows利用SMB协议来实现操作系统间文件和打印机共享,而Samba本身具

2015-03-11 15:13:18 433

原创 Makefile的@解释

@ 一般用来关闭命令的回显1如果Q 取值为 @,那命令部分就是 @@:,不回显如果Q没有取值,那命令部分就是 @:,一样不回显所以,测试看这样可不可以 :)  $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make        $(Q)@: In fact

2015-03-06 17:42:40 897

原创 大牛们的博客和IT网站

http://blog.csdn.net/happydeer/article/category/288658 程序员修炼:www.codeproject.com/?cat=22http://stackoverflow.com/developer.android.com/guide/components/intents-filters.htmlhttps://github.com

2015-03-05 14:23:51 446

转载 内存池

为什么要使用内存池技术呢?  主要有两个原因:1、减少new/malloc、delete/free次数,减少运行时间;2、避免内存碎片,避免开发人员忘记释放内存造成内存泄露连接:http://www.cnblogs.com/bangerlee/archive/2011/08/31/2161421.htmlnginx内存池分析:http://blog.chinaunix.net/

2015-03-05 10:55:43 302

转载 线程池

线程池作用合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。Ja

2015-03-05 10:49:12 294

转载 数据库连接池

数据库连接池:对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。连接复用。通过建立一个数据库连接池以及一套连接使用管理策略,使得一个数据库连

2015-03-05 10:43:28 426

原创 资源池(数据库连接池,内存池,线程池)

资源池:当某一个资源使用完后,资源池把相关的资源的忙标示清除掉,以示该资源可以再被下一个请求使用。1.资源池引入的目的       提高性能2.资源池运作机制       由资源池管理器提供一定数目的目标资源,当有请求该资源时,资源池分配给一个,然后给该资源标识为忙,    标   示为忙的资源不能再被分配使用,3.资源池常有的参数     1.初始资源的数目:

2015-03-05 10:31:09 4899

转载 http协议详解和例子

http://blog.csdn.net/pkgray/article/details/25660285

2015-03-05 09:47:24 452

转载 PHP简单的IoC控制反转实现

Fruit.php <?php /** * @author Gonn, http://www.nowamagic.net/ */ interface Fruit { public function showColor(); } class Apple implemen

2015-03-05 09:27:49 839

转载 ActiveRecord模式

ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。ActiveRecord的主要思想是:1.每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;2

2015-03-05 09:18:55 889

转载 ORM模式

我们为什么使用ORM?博客园在推广ORM方面的确做了很大的贡献,很多的程序员开始使用ORM,不用写SQL的喜悦让他们激动不已,可是好景不长,他们很快发现众多的烦恼一个接一个的出现了。很遗憾,我并不打算在这篇文章中解决这些问题,因为的确存在这些问题,而且目前没有完美的解决方法。那么既然这样,我们为什么要使用ORM呢?难道真的是为了不使用SQL吗?还是要看O - R ,我们为什么要

2015-03-05 08:54:14 1072

原创 php遍历目录的所用文件

$save=array();function get_all_file($path){    global $save;    if(is_dir($path))    {        if($dir=opendir($path))        {            while(false != ($file=readdir($dir)))      

2015-03-04 19:55:49 364

转载 Mysql Explain 详解

Mysql Explain 详解一.语法explain 例如: explain select * from t3 where id=3952602;二.explain输出解释+----+-------------+-------+-------+-------------------+---------+---------+-------+------+

2015-03-04 18:51:45 286

转载 Multipart/form-data POST文件上传详解

简单的HTTP POST大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下:                    提交时会向服务器端发出这样的数据(已经去除部分不相关的头信息),数据如下: POST / HTTP/1.1Content-Type:application/x-www-form-urlencodedAccep

2015-03-04 18:26:55 505

转载 mysql数据库优化之index索引

索引 mysql index          索引是一种数据结构,可以是B-tree, R-tree, 或者 hash 结构。其中R-tree 常用于查询比较接近的数据;B-trees适合用于查找某范围内的数据,可以很快的从当前数据找到下条数据;hash结构则适用于随机访问的场合,查找每条数据的时间几乎相同。显然,若要查找某个时间段的数据,用B-tree结构要比hash结构快好多。

2015-03-04 16:41:36 587

转载 mysql数据库优化3

1、选取最适用的字段属性  MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样

2015-03-04 09:51:20 272

转载 mysql数据库优化2

优化你的MySQL查询缓存在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的。但主要的问题是,它是那么容易被隐藏起来以至于我们大多数程序员会忽略它。在有些处理任务中,我们实际上是可以阻止查询缓存工作的。1. // query cache does NOT work

2015-03-04 09:48:47 334

原创 mysql数据库优化

常见优化 1 )使用永久连接到数据库,避免连接的开销。如果需要初始化很多连接,而又不能用永久连接,那么可以修改变量 thread_cache_size的值。2 )尽量不要在经常需要更新的 MyISAM表上用太过复杂的 SELECT 语句,这是为了避免在读和写之间争夺锁。 3 )如果必须对一个较长的而且是不定长的字符串字段进行频繁查找,可以考虑建立该字段的md5映射。4 )在删除

2015-03-04 09:48:05 325

原创 查看端口号

ps -aux|grep 7008并不能查看到端口被占用的时候用:netstat -nap|grep 7008查看

2015-03-03 18:58:00 338

libevent源码分析

libevent是轻量级高性能的网络库,要深入了解网络基础必备的资料 也是对代码设计思想体会的教材

2015-12-02

指针和内存分配详解

深入的探讨了,指针和内存问题,很好的帮你解决指针和内存的各种疑惑

2015-02-11

android pulltorefresh

android pulltorefresh 类jar包

2014-12-15

MFC模态与非模态对话框的创建

MFC模态与非模态对话框的创建有截图详细步骤

2014-03-18

解析TS文件

解析传输流188或204byte的Ts文件

2014-03-18

空空如也

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

TA关注的人

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