
C/C++
文章平均质量分 64
anghlq
这个作者很懒,什么都没留下…
展开
-
日志分析系统开发笔记
1 任务监控进程1.1 JAVA 任务管理进程,周期查询数据库,根据数据库对应的表信息对任务进行管理。包括定时拉起进程等。1.2 C任务管理器,1.3 根据配置文件,拉起进程,拉起前根据文件锁来确定进程的唯一性。每次拉起进程,把进程号放到数组表中,任务管理器中child_pid=wait(&istatus);当其管理的子进程结束时,就会得到child_pid,根据child_pid到数组表检索原创 2006-11-05 09:41:00 · 1495 阅读 · 0 评论 -
C++技巧集
私有区域:MyEventHandler总是动态分配的,否则,全局内存堆可能会崩溃。确保类总是动态地创建的一种办法是将析构器移动到类的私有区域去,delete this操作放在自己的close函数中。避免在栈上分配把*operate new, delete 放到私有区域还有拷贝,赋原创 2010-06-10 09:45:00 · 915 阅读 · 0 评论 -
overcommit_memory
/etc/sysctl.conf原创 2011-12-20 11:34:38 · 25733 阅读 · 0 评论 -
libevent timer
创建计时器event按照如下步骤: event_init(); //初始化event_base //创建timer event struct event timer_ev; evtimer_set(&timer_ev, callback_fn, NULL); //evtimer_set(ev, cb, arg)宏相当于event_set(ev, -1原创 2012-01-29 09:35:58 · 4090 阅读 · 0 评论 -
LINUX网络编程的读书笔记
LINUX网络编程的读书笔记第一章文件系统和进程系统1.1文件系统的总体结构 从文件系统的实现角度来看,按层次可以分成应用程序、系统调用、文件子系统、高速缓冲、设备驱动和具体的存储设备等几个层次,如下图: 应用程序 系统调用接口 文件子系统 硬件存储设备 设备驱动程序 高速缓存 字符设备转载 2010-05-31 09:36:00 · 3067 阅读 · 0 评论 -
daemonize
static void daemonize(void) {#ifdef SIGTTOU signal(SIGTTOU, SIG_IGN);#endif#ifdef SIGTTIN signal(SIGTTIN, SIG_IGN);#endif#ifdef SIGTSTP signal(SIGTSTP, SIG_IGN);#endif原创 2013-04-26 08:13:16 · 1750 阅读 · 0 评论 -
hypertable性能测试
硬件环境机器:5台 OS: redhat 5.4内存:12G 磁盘:1 / 2T CPU:2*4( Intel(R) Xeon(R) CPU E5504 @ 2.00GHz) 软件环境HDFShadoop2.0.0NameNode HA(2), zookeeper(3), datanode(5)原创 2013-09-05 17:44:52 · 1410 阅读 · 0 评论 -
cronlog
用于标准输出的数据重定向到文件,并定期归档工作原理是:通过配合管道重定向来的数据流输出到跟当前时间相关指定格式的文件名中,从而做到定期归档的目的。另外,可以配置创建软链到当前时间对应的文件,这样用户看当前文件就很方便了。{commad} | /usr/local/bin/cronolog --link /home1/hadoop/xxxx/log/xxx.log /home1/hadoop原创 2013-09-05 17:39:40 · 1833 阅读 · 0 评论 -
GM支持多线程问题排除
之前测试GM处理图片,发现CPU总是上不去(8核,但是只能到100%)。只能逐一排查,1. 确认OPENMP开关是否打开2. coder库是否支持threads(jpeg和tiff暂时不支持)这些都没有问题。GM库bug?切换不同的图片类型,发现JPEG都可以上200%,其它支持多核的可以上到800%。范围缩小到png库了。更新png库到16,发现支持透明图片有问题,,原创 2013-09-17 12:11:20 · 1634 阅读 · 0 评论 -
ATS
ATS安装官网文档如其配置一样比较简洁,条理(代码怎么样待看了。。)下载,安装依赖包,然后编译到大硬盘下:./configure --prefix=/home1/huanglq/atsmake; make install;配置 vi etc/trafficserver/remap.config|map http://10.1.72.102 ht原创 2013-09-27 19:01:08 · 2200 阅读 · 0 评论 -
SQUID和ATS比较
1. SQUID的2X系列支持collapsed_forwarding2. SQUID官网文档很散乱,但是网络上资料很足;ATS官网资料很条理3. SQUID的反向代理配置比较麻烦,ATS只要一句,下面那个反向代理还是没跑起来http_port 80cache_dir ufs /home1/hadoop/squid/var/cache/squid 307200 256 512原创 2013-09-27 19:09:26 · 3297 阅读 · 0 评论 -
HZ的概念
HZ跟CPU频率没关系,HZ,The frequency of the system timer (the tick rate) is programmed on system boot based on a static preprocessor define,HZ.每秒发中断次数timer interrupt (IRQ 0)次数。Tick, 1/HZ, HZ=100时,t原创 2013-12-28 16:42:27 · 2577 阅读 · 0 评论 -
字符串查询算法
glibc中的strstr的two-way算法,two-way算法主要依据Critical Factorization理论。要理解Critical Factorization理论,先要理解字符串的period: 设w是定义在字符集A上的非空字符串。设|w|是w的长度。存在正整数p,对所有满足模p同余的 非负整数i,j (i,j w[i] = w[j]原创 2015-09-19 13:24:24 · 2623 阅读 · 0 评论 -
atoi和atof优化
在应用场景上,我们是全部正数,同时都是十进制的,因此相对glibc的实现上减少了很多冗余代码,新的代码中,centos64环境下,atoi提高了5倍,atof起码20倍int my_atoi(const char *src_src){ int res = 0; char **str = (char **)&src_src; while (isdigit(**str)) { re原创 2015-09-19 14:46:06 · 2381 阅读 · 0 评论 -
linux C获取进程的CPU和内存
获取内存开始尝试用getrusage,发现数值一直是0的,,,后面查资料,该函数内存相关的字段还没实现(unmaintained)。使用statm的,发现rss和data位即使top时看到的内存已经下降了但是数值仍然不变,只能通过resident字段来获取当前进程所占用的内size (1) total program size原创 2016-01-19 14:03:54 · 6662 阅读 · 0 评论 -
数据共享好文
[传统的解决方案] 对于这类数据的存储,传统的作法是保存在数据库中,前面搭上缓存,用用户的ID做为KEY,把特权数据作为VALUE保存。读请求直接从缓存中读取,如果缓存中没有时则从数据库中查询,而写请求则直接落到数据库中。这种方法基本可以解决单个查询的情况,但对于批量查询,开销还是比较大的。假设缓存的命中率是95%(这个命中率相当高了),同时假设每个用户平均有20个好友的话,每次批量查询就有可能有一个好友的数据缓存中没有,需要到数据库查询,而查询数据库,因为涉及到磁盘IO操作,所以转载 2011-01-27 19:28:00 · 720 阅读 · 0 评论 -
CSR蓝牙开发手记
PSDN 和 Audio_gateway 一.Audio Dongle 手机版 11. PINCODE 12. Acl连接 23. Sco连接(接听和挂断电话) 24.Ps操作 25.按键控制 36. 指示灯 3附录: 3二.PSDN 电话版 47. 铃声控制 47.1 增加变量 47.2 相关管脚 47.3 函数控制 58. Pair控制(按键控制) 59. 指示灯 5附录2: 6原创 2006-11-05 09:34:00 · 7581 阅读 · 2 评论 -
C语言专题——格式化I/O详解
C语言专题——格式化I/O详解 1 格式化I/O函数族函数族 用途 可用于所有的流 只用于stdin和stdout 内存中的字符串scanf 格式化输入 fscanf scanf sscanfprintf 格式化输出 fprintf printf sprintf 2 scanf函数族int fsca转载 2007-06-21 13:00:00 · 4253 阅读 · 1 评论 -
关于SIGCHLD的不排队,丢弃的问题
signal(SIGCHLD, SIG_IGR); //忽略SIGCHLD信号,这常用于并发服务器的性能的一个技巧 //因为并发服务器常常fork很多子进程,子进程终结之后需要 //服务器进程去wait清理资源。如果将此信号的处理方式设为 //忽略,转载 2007-07-04 21:29:00 · 1038 阅读 · 0 评论 -
ANTLR: 文法分析利器
转自(http://sishen.lifegoo.com/?p=5)大学时, 写过不少需要文法分析的Project, 如MiniSQL的SQL语法, 简易计算器等. 从计算理论的角度来说, 相对于正则的孱弱. DFA对于文法的表达能力是简单强大的. 因此, 也就有了DFA的文法分析工具. 几乎每一本编译原理的书上, 都会提到Lex/Yacc这一对词法语法分析工具(如果没有, 就扔掉它, -转载 2007-04-23 10:51:00 · 3945 阅读 · 1 评论 -
IIS Filter开发笔记
注意:1. 需要在GetFilterVersion中手工添加你所感兴趣的事件,事件发生时IIS才会通知filter,然后你才能在相关的事件处理函数中进行操作pVer->dwFlags |= SF_NOTIFY_SECURE_PORT | SF_NOTIFY_NONSECURE_PORT | SF_NOTIFY_PREPROC_HEADERS;2. GetHeader和SetHeader时注意部原创 2007-06-05 10:34:00 · 3005 阅读 · 0 评论 -
VC中的互斥
1. 全局共享变量: 使用全局共享变量的方法则主要是在MFC框架程序中通过编译器来实现的。在.cpp文件开头加上以下几行: #pragma data_seg("Shared") int volatile g_lAppInstance =0;#pragma data_seg()我们来看一下上面的内容:第一句 #pragma data_seg("Shared") 创建一个称为Sha转载 2007-06-12 17:46:00 · 1331 阅读 · 0 评论 -
Boost库简介
Boost库简介 any - 类似于一个Varient。 array - STL风格封装下的定长数组。 bind - 实现函数对象的任意组合,是标准库中compose的超强扩展版。 call_traits - 实现自动判断传入参数的方式。 compose - bind的一个子集。 compressed_pair - 针转载 2008-05-07 10:42:00 · 667 阅读 · 0 评论 -
GDB调试精粹及使用实例
<br />GDB调试精粹及使用实例 <br />转自:http://fanqiang.chinaunix.net/program/other/2006-07-12/4825.shtml<br /><br />一:列文件清单<br />1. List<br />(gdb) list line1,line2<br /><br />二:执行程序<br />要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和外壳通配符(*转载 2010-06-04 14:35:00 · 575 阅读 · 0 评论 -
shutdown & close
shutdown可以分别关闭读写或者同时关闭读写 如果关闭读,则接受缓冲区的未读出的所有数据都将丢失,以后不会再接受任何数据 如果关闭写,如果输出缓冲区内有数据,则所有的数据将发送出去后将发送一个FIN信号 而close则是关闭该socket,马上发送FIN信号,所有的未完成发送或者接受的数据都将被丢失 对于慢速网络,应该先进行shutdown,然后一定的时间延迟,再close该socket.(在你已经发送成功后,而对方如果没有接受完毕,你此时如果关闭socket则对方将收到转载 2010-06-04 16:20:00 · 1786 阅读 · 0 评论 -
epoll
<br />epoll用到的所有函数都是在头文件sys/epoll.h中声明的,下面简要说明所用到的数据结构和函数:<br /><br />所用到的数据结构:<br /><br />typedef union epoll_data {<br /> void *ptr;<br /> int fd;<br /> __uint32_t u32;<br /> __uint6转载 2010-06-10 14:06:00 · 610 阅读 · 0 评论 -
stl与共享内存
<br /> BoostC++ Libraries<br />...one of the most highly regarded and expertly designed C++ library projects in the world.— Herb Sutter and Andrei Alexandrescu, C++ Coding StandardsWelcomeIntroductionCommunityDevelopmentSupportDocumentation转载 2010-12-30 14:51:00 · 2750 阅读 · 0 评论 -
strstream 教训
用stringstream替换strstream!strstream构造后,如果去访问str()获得缓冲区指针后,要手工去释放它。 strstream ss; ss.precision(16); ss ss MYLEFT) AND (MYRIGHT-MYLEFT) ss MYBOTTOM) AND (MYTOP-MYBOTTOM) ss ss.str();//一写这行内存就不断增加!!! 需要手工delete ss.str();参看原创 2011-01-07 14:25:00 · 1624 阅读 · 0 评论 -
Linux 系统内核空间与用户空间通信的实现与分析
多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink 套接字实现中断环境与用户态进程通信。1 引言Linux 是一个源码开放的操作系统,无论是普通用户还是企业用户都可以编写自己的内核代码,再加上对标准内核的裁剪从而制作出适合自己的操作系统。目前有很多中低端用户使用的网络设备的操作系统是从标准 Linux 改进而来的,这转载 2011-01-27 16:24:00 · 1367 阅读 · 0 评论 -
C/C++非标准目录下的编译依赖和运行库依赖
编译依赖:export LIBRARY_PATH=/home/webserver/local/lib:$LIBRARY_PATHexport PKG_CONFIG_PATH=/usr/share/pkgconfig:/home/webserver/local/lib/pkgconfig运行库依赖:export LD_LIBRARY_PATH=/home/webserver/local/lib...原创 2018-05-17 18:06:54 · 1590 阅读 · 0 评论