学习笔记
风鸽
这个作者很懒,什么都没留下…
展开
-
大型网站架构演变和知识体系
之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中 将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网转载 2010-04-08 13:31:00 · 197 阅读 · 0 评论 -
c语言 Linux网络编程 起步
<br />今天开始 学下Linux网络编程,主要是想学C,菜鸟也来玩玩哈,写了个简单的聊天室。。<br />首先用C建个socket服务,开始接收请求,并写入文件(其他代码省略)<br />while(1) {<br />len = sizeof(struct sockaddr);<br />if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &len)) == -1) {<br />perror("accept");<br />exi原创 2010-11-24 22:24:00 · 338 阅读 · 0 评论 -
php性能优化相关
<br /><br />优化是要花尽可能小的代价获得最大的优化。以大代价获得极小的优化,那就是找死,浪费时间<br />下面的均来自于网上,我进行的搜集整理,有其他或者觉的不对的同学可补充<br /> <br />1.有条件可将静态与动态分开到两个服务器上。将动态应用的KeepLive关闭,将静态服务器的KeepLive打开。 <br /> <br />2.尽量考虑使用缓存<br />eAccelerator(加速PHP引擎,同时也可以加密PHP源程序)<br />memcache(一个高性能的分布式的内存原创 2010-10-25 15:37:00 · 257 阅读 · 0 评论 -
利用lua 协同程序处理大文件
<br /> <br />print(os.clock())<br />--把data.txt中的数据拷贝到data2.txt<br />local filename='e://data.txt'<br />local filename_1='e://data2.txt'<br />local f = io.input(filename)<br />local t = io.open(filename_1,'wb')<br />--调整每次读取的数据量,不同环境下最优数值都不同<br />local BUF原创 2010-12-13 16:26:00 · 365 阅读 · 0 评论 -
php使用memcache来存储session
<br /><br />优点:读写速度比 用files 时快,支持多个服务器共享 session,但memcached服务器down机后就会丢失数据<br /> <br />1. php.ini 中全局设置 <br />session.save_handler = memcache <br />session.save_path = "tcp://127.0.0.1:11211" <br /> <br />2.目录下的 .htaccess : <br />php_value session.save_han原创 2010-10-22 14:17:00 · 402 阅读 · 0 评论 -
关于微博feed系统推拉模式的一些想法
<br />最近看了一些关于微博feed系统推拉模式及时间分区拉模式的架构,结合之前自己所开发的,提出一些想法,之前的项目也是采用推模式,但没太注重数据储存这块,但当一些明星用户或被关注的粉丝达到一个量级时所产生的数据量真是不敢想像的<br />当看到时间分区拉模式时,突然想到了很早之前的一个想法, 或许可以结合着一起使用,采用推模式虽然速度快,性能高,但他会产生大量的数据,系统越大,所产生的数据量就越惊人,而时间分区拉模式呢,虽然解决了数据量的问题,但对于feeds表来说压力会很大,性能也不如推模式,不过原创 2010-10-23 10:45:00 · 1339 阅读 · 0 评论 -
php性能分析工具
<br /><br />XDebug:(http://xdebug.org/) 客户端工具(Windows):WinCacheGrind<br /> <br />PEAR Benchmark:先安装PEAR,http://pear.php.net/package/Benchmark/download Benchmark工具类包共有三个文件,分别是Timer.php、Iterate.php和Profiler.php<br />1,Benchmark_Timer类原理与通过microtime函数获取微秒时间再比转载 2010-10-20 17:09:00 · 2783 阅读 · 0 评论 -
c api lua互相调用
C:static int test_cfun(lua_State *L) { double d = lua_tonumber(L, 1); lua_pushnumber(L, d); return 1; }int main (void){ int z; lua_State *L = lua_open(); lua_pushcfunction(L,test_cfun); lua_setglobal(L, "test_cfun"); luaL_openlibs原创 2010-12-05 14:30:00 · 225 阅读 · 0 评论 -
mysql相关知识
进入:mysql -u root -p导入/导出:mysql -uroot -ppassword database ()(备份/导入)路径/1.sql导出:mysqldump -u root -p database导入:mysqldump -u root -p database修改密码mysqladmin -u用户名 -p旧密码 password 新密码 增加一个用户test密码为abc,让他可以在任何主机上登录,并对test数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL 命令:原创 2010-10-09 09:48:00 · 403 阅读 · 0 评论 -
PHP的运行原理
<br /> 1. 我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的; <br /> 2. PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口); <br /> 3. PHP总共有三个模块:内核、Zend引擎、以及扩展层; <br /> 4. PHP内核用来处理请求、文件流、错误处理等相关操作; <br /> 5. Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它; <br /> 6. 扩展层转载 2010-07-15 17:20:00 · 1632 阅读 · 0 评论 -
nginx源代码分析
Nginx可以开启多个进程,每个进程拥有最大上限128个子线程以及一定的可用连接数。如果你希望使用线程可以在配置文件中设置worker_threads这个参数,但这个参数在Nginx官方手册上没有。只有通过阅读源代码才看到。最大客户端连接数等于进程数与连接数的乘积,连接是在主进程中初始化的,一开始所有连接处于空闲状态。每一个客户端请求进来以后会通过事件处理机制,在Linux是Epoll,在Free转载 2010-04-08 10:55:00 · 269 阅读 · 0 评论 -
PHP扩展
记录下早期开发第一个-完整PHP扩展经历,写了个文件缓存,当然只是作为扩展开发的一个入门,想用在真实环境中,直接PHP就能写出来,先贴下代码:PHP_FUNCTION(cache_set){int key_len,con_len,i,ttl_len,buffer_len; int *ttl = NULL;char *key = NULL;//zval *content ;原创 2013-04-23 13:43:25 · 1031 阅读 · 0 评论