摘要:
上一章,我向大家演示了一个最基本的socket服务器结构,它一次只能响应一个连接请求,而“能同时响应多个连接和请求”无疑是现实生活中对socket服务器的最基本要求。要如何让socket服务器可以同时响应多个连接和请求呢?多线和多进程程肯定是大部分人首先想到的,可能很多人不一定真正清楚多线程和多进程的socket服务器架构具体意味着什么,但是至少大家都或多或少听说过这两种技术。不过本章中,我们暂时还不会涉及到多线程和多进程的服务器架构,我它们归类为设计范畴,而我们暂时还没有脱离泥水匠身份,所以还要继续学习“泥沙之用途“,设计的事情需要等到我们泥水匠毕业,升级建筑设计师的时候再说。
那么本章具体的内容是什么呢?真是没有悬念,在上一章中我已经提前透露了:IO重用。下面就正式进入主题吧。 阅读全文
摘要:
网络编程一直都是最吸引人、最有挑战的编程领域。从这篇文章开始,达达将同大家一起向这个领域出发,并接受各种难题的挑战,你准备好了吗? 阅读全文
摘要:
在《Erlang和PHP间的Socket通讯》中我提到做了基于/dev/shm的缓存实现的性能测试,这里分享一下测试中我封装的一个基于文件系统的缓存类,在Linux上只需要把根目录指向/dev/shm,就可以变成一个基于内存的缓存了,在Windows上可以用普通文件系统做测试。 阅读全文
摘要:
前段时间,在群里和发哥聊起memcached和APC,渐渐的聊到了/dev/shm,发哥说他用/dev/shm做缓存很好用。这次讨论触发了我对memcached、APC和dev/shm数据读写性能的测试。
测试中我想到了Erlang内置的ets和传说中的并发性能,如果用Erlang + ets做一个类似memcached这样的key-value的缓存服务器,性能会比memcached好吗?于是我动手做了试验,用Erlang编写了一个支持并发连接的Socket服务器,写了一个PHP的客户端。
测试的结果我先按下不表,放到文章结尾再附带说明,以免冲淡了本篇文章的主题。
这次试验最值得分享的经验是Erlang和PHP间的Socket通讯方式。 阅读全文
摘要:
前几天修复游戏装备强化功能的BUG时,发现原先负责这个功能的同事用了很糟糕的方式来实现不同等级装备的强化成功率,于是我动手重写掉了他的代码。 阅读全文
摘要:
今天偶然在想,如果用PHP写一个类似BDB的基于文件的Key-Value小型数据库用于存储非结构化的记录型数据,不知道效率会如何?
于是便联想到PHP中的对象怎么样序列化存储性价比最高呢?接着想到了之前同事推荐的JSON编码和解码函数。
据他所说,json_encode和json_decode比内置的serialize和deserialize函数要高效。
于是我决定动手实验,证实一下同事所说的情况是否属实。 阅读全文
摘要:
今天试着在Cygwin下编译libmemcached,遇到一些问题,经过几番折腾最终解决,并成功连接Memcached,记下来,方便别人参考。 阅读全文
摘要:
新版MicroUI的可行性试验。 阅读全文
摘要:
这段时间换了工作,很感激身边的人都很关心和信任我,你们让我学到很多。 阅读全文
摘要:
获取元素位置坐标的JS函数,记下来,方便找 :) 阅读全文