- 博客(5)
- 收藏
- 关注
原创 strcmp/strncmp源码分析
1. strcmp strcmp 用于比较两个字符串是否相等。内部实现与我们最初的想法一致,就是循环遍历两个字符串,遇到不相等的那一位即返回差值。intstrcmp (p1, p2) const char *p1; const char *p2;{ register const unsigned char *s1 = (const unsigned cha
2013-09-21 18:58:20
3082
原创 负载均衡策略(1) 随机调度
0. 概述 负载均衡策略分为两部分。首先是后端服务纵向拆分,其次是确定每个请求应该落在哪台后端机器。 后端服务纵向拆分,举几个例子说明。比如后端是提供 css 和 js 的文件缓存服务器,磁盘空间不是瓶颈,而每个机器的带宽和连接数是瓶颈,这种情况可以每个机器上都部署一份一样的文件集合,做全冗余。再比如后盾是提供 Mysql 服务的数据库服务器,查询时间是瓶颈,这就需要按某个 token
2013-09-21 00:38:12
1278
原创 strsep源码分析
strsep() 函数将分割一个字符串。char * strsep (char **stringp, const char *delim); 从 stringp 指向的位置起向后扫描,遇到 delim 指向的字符串中的字符后,将此字符替换为NULL,返回 stringp 指向的地址。 由于第二个参数 delim 也是字符串,因此猜想可能会采取类似 strcspn 的策略。查
2013-09-20 16:15:02
1654
原创 strlen源码分析
glibc2.7中的strlen函数没有使用简单的逐位测试null的方法计算字符串的长度,而是通过一个magic number,每四位一组测试一次的方法进行测试。magic number为:0x7efefeff。二进制展开后为:01111110 11111110 11111110 11111111。其实就是一个第8,16,14,31位为0,其余都是1的整数。这些为0的位称为“洞(hole)
2011-06-18 10:47:00
345
原创 strcspn源码分析
刚看到CRT中的strcspn的实现时,很是惊诧!靠,这么优秀的算法,分析了老半天才搞明白。世界上为啥聪明的人这么多呢?原型:size_t strcspn(const char *pstr, const char *strCharset) MSDN解释为:在字符串pstr中搜寻strCharsret中所出现的字符,返回strCharset中出现的第一个字符在pstr中的出现
2011-06-17 14:58:00
800
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人