渔舟唱晚的天空
——welkinwalker的遐想
03 2011 档案
The C10K problem 概述 (转)
摘要:编写连接数巨大的高负载服务器程序时,经典的多线程模式和select模式都不再适用。应当抛弃它们,采用epoll/kqueue/dev_poll来捕获I/O事件。最后简要介绍了AIO。网络服务在处理数以万计的客户端连接时,往往出现效率低下甚至完全瘫痪,这被称为 C10K问题。随着互联网的迅速发展,越来越多的网络服务开始面临C10K问题,作为大型 网站的开发人员有必要对C10K问题有一定的了解。本文的主要参考文献是http://www.kegel.com/c10k.html。C10K问题的最大特点是:设计不够良好的程序,其性能和连接数及机器性能的关系往往 是非线性的。举个例子:如果没有考虑过C10 阅读全文
posted @ 2011-03-18 11:35 welkinwalker 阅读(454) 评论(0) 推荐(0)
echo打印颜色
摘要:echo -e '\e[31mERROR when compile \e[m'echo -e '\e[32mERROR when compile \e[m'echo -e '\e[33mERROR when compile \e[m'echo -e '\e[34mERROR when compile \e[m'echo -e '\e[35mERROR when compile \e[m' echo -e '\e[36mERROR when compile \e[m'对应结果: 阅读全文
posted @ 2011-03-16 18:16 welkinwalker 阅读(2488) 评论(0) 推荐(0)
gdb 小记
摘要:gdb ../bin/chunkserver core.20940 bt (最上面是栈顶,也是最后core的位置)f 5 (转到第5个文件)#0 0x000000322b770a30 in strlen () from /lib64/tls/libc.so.6#1 0x000000322b742dc9 in vfprintf () from /lib64/tls/libc.so.6#2 0x000000322b762784 in vsnprintf () from /lib64/tls/libc.so.6#3 0x000000000044f2c7 in log4cpp::StringUtil: 阅读全文
posted @ 2011-03-15 16:06 welkinwalker 阅读(674) 评论(0) 推荐(0)
libtool: link: warning: library `XXXXX.la' was moved.出现的原因
摘要:libtool: link: warning: library `/home/admin/usr/lib/libjson.la' was moved.libtool: link: warning: library `/home/admin/usr/lib/libcares.la' was moved.libtool: link: warning: library `/home/admin/usr/lib/libconfig++.la' was moved.libtool: link: warning: library `/home/admin/usr/lib/libjs 阅读全文
posted @ 2011-03-11 10:19 welkinwalker 阅读(4756) 评论(0) 推荐(0)
由无名对象(临时对象)引发的关于“引用”的思考
摘要:预备知识:无名对象,也叫临时对象。指的是直接由构造函数产生,但是没有被任何符号所引用的对象。例如:string("abc"),这句话产生的就是一个无名对象,这个对象产生以后,没有什么办法使用它。但是对于string str("abc")来说,则产生的是一个有名字的对象,他的名字就是 str。任何引用必须初始化。const(对象)变量只能传递给const引用,不能传递给非const引用。假如说把一个const的对象传递给了非const引用,那么修改这个引用就相当于修改了原来的const对象,这个违反了const约束。这种方式不能通过编译,会报error: 阅读全文
posted @ 2011-03-10 13:50 welkinwalker 阅读(2953) 评论(0) 推荐(1)
关于date中时间字符串的格式
摘要:以整数的形式显示date -d "2009-11-19 19:48:45" +%s设置时间sudo date -s "2011-03-09 12:07:50" 阅读全文
posted @ 2011-03-09 12:15 welkinwalker 阅读(260) 评论(0) 推荐(0)
GCC中的弱符号与强符号(转)
摘要:我们经常在编程中碰到一种情况叫符号重复定义。多个目标文件中含有相同名字全局符号的定义,那么这些目标文件链接的时候将会出现符号重复定义的错误。比如我们在目标文件A和目标文件B都定义了一个全局整形变量global,并将它们都初始化,那么链接器将A和B进行链接时会报错:1b.o:(.data+0x0):multipledefinitionof`global'2a.o:(.data+0x0):firstdefinedhere 这种符号的定义可以被称为强符号(Strong Symbol)。有些符号的定义可以被称为弱符号(Weak Symbol)。对于C/C++语言来说,编译器默认函数和初始化了的 阅读全文
posted @ 2011-03-09 10:10 welkinwalker 阅读(768) 评论(0) 推荐(0)
C/C++数组名与指针区别深入探索(转)
摘要:引言 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解。 想必这种误解的根源在于国内某著名的C程序设计教程。如果这篇文章能够纠正许多中国程序员对数组名和指针的误解,笔者就不甚欣慰了。借此文,笔者站在无数对知识如饥似渴的中国程序员之中,深深寄希望于国 阅读全文
posted @ 2011-03-08 23:53 welkinwalker 阅读(283) 评论(0) 推荐(0)
关于printf系列函数
摘要:#include <stdio.h>int printf(const char *format, ...);int fprintf(FILE *stream, const char *format, ...);int sprintf(char *str, const char *format, ...);int snprintf(char *str, size_tsize, const char *format, ...);#include <stdarg.h>int vprintf(const char *format, va_listap);int vfprintf 阅读全文
posted @ 2011-03-08 19:05 welkinwalker 阅读(522) 评论(0) 推荐(0)
rpm的问题 ~/.rpmmacros %_rpmlock_path
摘要:_rpmlock_path的含义问题参考下面的链接:https://rhn.redhat.com/errata/RHBA-2006-0440.htmlhttps://bugzilla.redhat.com/show_bug.cgi?id=222194Transaction lock issues using RPM with --root and --dbpath have been fixed.Note, to use --dbpath as non root, customers will need to define the%_rpmlock_path macro to a locati 阅读全文
posted @ 2011-03-02 17:39 welkinwalker 阅读(1372) 评论(0) 推荐(0)
如何修改机器名
摘要:修改 /etc/sysconfig/network 中的HOSTNAME= 这一项修改 /etc/hosts重起网卡 /etc/init.d/network restart 阅读全文
posted @ 2011-03-01 17:10 welkinwalker 阅读(401) 评论(0) 推荐(0)