上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 26 下一页
摘要: linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、实现、性能等方面对三者进行对比。 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); int poll(struct pollfd *fds,... 阅读全文
posted @ 2013-04-19 14:12 ydzhang 阅读(175) 评论(0) 推荐(0)
摘要: 写了一个测试磁盘寻道(+旋转)时间的程序,方法如下:创建一个大文件(如果太小,文件所有内容都在一个磁道上),使O_DIRECT打开文件,随机选择一个位置(4k的倍数),读取4K(文件系统块)大小的数据。测试程序分别执行1、10、100、1000、10000次随机读文件操作,结果发现在1000次以内,消耗的时间总是1-3ms,超过10000才会略有大的增长,但也在1s范围内。发现DIRECTIO根本没有生效,百思不得其解。仔细阅读了man手册上关于O_DIRECT的说明:Try to minimize cache effects of the I/O to and from this file. 阅读全文
posted @ 2013-04-19 14:12 ydzhang 阅读(576) 评论(0) 推荐(0)
摘要: 1. linux提供opendir、readdir(readdir_r)、closedir和scandir等接口实现对目录的读取;2. readdir返回指向下一个目录项的指针,如果要自己传入缓冲区存储目录项,应使用readdir_r代替。readdir的结果中包含当前目录和上一级目录的目录项信息。3. 在遍历过程中,进程的工作目录不会改变,在递归遍历的时候,需要改变工作目录(chdir)以识别相对路径,或者每次都限定全局路径。4. 深度优先遍历目录树采用递归实现易编码(参见如下代码),广度优先遍历则需借助队列实现。当目录下的文件数量较少时,采用广度优先遍历效率会更高,因目录下的目录项基本都是 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(1091) 评论(0) 推荐(0)
摘要: 今天经历了迄今为止最长的一次面试,历时两个半小时,百度工程师GG不厌其烦的问着各种问题,很有耐心,并不断的给予指引。系统设计、算法设计、智力题等各种题目扑面而来,整个面试下来,受益匪浅,发现了很多不足,也学到了很多知识。 昨晚接到百度的面试通知,今天上午十点半到珞珈山国际大酒店面试,不到十点就赶到面试地点了,等到十点半左右,面试官出来说上一个面试的还没完,让我再等一会,对面试官GG的第一印象很好... 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(546) 评论(0) 推荐(0)
摘要: 当Web服务器、文件服务器、游戏服务器等的用户数不断增加时,单服务器模型肯定不能完全满足服务的需求,集群服务模式已经逐渐普及,使用服务器集群做后台,一个主要的问题就是要解决负载均衡问题。 负载均衡算法主要分为两种,持续性和非持续性的负载均衡,持续性是指特定客户端发出的请求将由同一服务器服务。持续性算法主要基于随机理论,即其默认客户的访问时随机的,从而服务器的选择也是随机的,以此来实现负载均衡。... 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(546) 评论(0) 推荐(0)
摘要: Kafka[1]是linkedin用于日志处理的分布式消息队列,linkedin的日志数据容量大,但对可靠性要求不高,其日志数据主要包括用户行为(登录、浏览、点击、分享、喜欢)以及系统运行日志(CPU、内存、磁盘、网络、系统及进程状态)。 当前很多的消息队列服务提供可靠交付保证,并默认是即时消费(不适合离线)。高可靠交付对linkedin的日志不是必须的,故可通过降低可靠性来提高性能,同时通... 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(283) 评论(0) 推荐(0)
摘要: svnadmin与svnserve建立代码仓库 1. 假设当前目录为/data/ 2. 建立文件夹: mkdir repos 3. 创建仓库: (1) cd /data/repos/ (2) svnadmin create myproj 4. 启动svn server: svnserve -d -r /data/repos/ 5.客户端check out: svn co svn://1... 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(194) 评论(0) 推荐(0)
摘要: 以前学C++时记的比较,因最近开发用C++较多,把笔记翻出来复习了一下,跟大家分享一下。类的声明及定义 1. class、struct、union保留字都可以用来声明和定义类。class中成员默认为private类型,struct、union与C语言兼容,成员默认为public类型。 2. 只有当类没有显式的定义构造/析构函数时,C++才会提供默认的构造/析构函数;默认的构造函数只负责创建... 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(191) 评论(0) 推荐(0)
摘要: 目前机器上vim的配置为: Vim + ctags + taglist + omnicppcomplete + MiniBufExplorer +BufExplorer + NERD_tree + DoxgenToolkit 1. taglist插件:用于显示文件的tag,需要ctags的支持 下载:http://vim.sourceforge.net/scripts/script.... 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(268) 评论(0) 推荐(0)
摘要: micro_httpd是一个轻量级的http服务器 (http://www.acme.com/software/micro_httpd/),micro_httpd从xinetd运行,性能较差,但对于负载较小的网站,micro_httpd是能胜任的,其实现了http服务器的一些基本特征功能: 1. ..文件名探测以保证安全; 2. 常用MIME类型识别; 3. Trailing-slash重定向;... 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(1111) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 26 下一页