博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年8月1日

摘要: 今天,对服务器简单做了压力反馈给老大总共有5台机器可用。分别在4台机器上各开了一个client进程,在1台机器上开了一个server进程。在当前项目框架的基础上,用了一点技巧,可以使每一个client都支持开N个socket连接到server上。这样可以模拟出大量个客户端跟server通信。每个socket连接,平均每秒发送一条协议给server。200, 400, 600个socket连接不断加上去,通过top观察,CPU占用率就不断上去了当总数为800个socket连接时,server所在的机器,CPU达到了80%~90%,平均每秒发送一条协议,10秒就8000条了。那么一秒内,理想情况下 阅读全文

posted @ 2013-08-01 00:22 david2303 阅读(399) 评论(0) 推荐(0) 编辑

2013年7月28日

摘要: 自己有一台Kindle 4,然后又在网上看到几篇文章关于calibre。老赵的使用calibre抓取2013年的MSDN Magazine 和抓取InfoQ内容的calibre脚本,还有 @敲代码的张洋的一篇微博。然后就有了自己也搞一个玩玩的想法看了老赵的文章,像我这样的小白玩家还是不知道怎么弄。折腾一番,通过google和研究老赵张洋文章内容的超链接。得出下面的流程1、 安装工具 calibre2、如果是Mac OS,则需要手工安装Command Line工具。我的就是Mac OS系统打开calibre客户端,然后左上角Calibre->Preferences->Advanced 阅读全文

posted @ 2013-07-28 14:00 david2303 阅读(558) 评论(0) 推荐(0) 编辑

2013年7月24日

摘要: scp.sh#!/usr/bin/expect -fset port 1234set user "me"set host "192.168.1.2"set password "whatismypassword"set timeout - 1set file [ lindex $argv 0]set hostFilePath "/home/me/"spawn scp -P$port $file $user@$host:$hostFilePathexpect "*assword:*"send &qu 阅读全文

posted @ 2013-07-24 19:58 david2303 阅读(873) 评论(0) 推荐(0) 编辑

2013年7月12日

摘要: 在处理装备推送时遇到一个坑。获得更好装备,推送。等级到有更好的装备打开,推送。触发推送的事件多的话。由于各种原因消息在客户端的消息队列里面停留没有处理,会导致出现重复推送。最后等到客户端处理时,由于有重复的推送会出错。解决办法。有更好的装备推送后,把该装备ID记录下来。如果这个装备ID一直被记录,以后关于它的推送就不推。客户端点击穿或不穿都发协议告诉服务端,然后服务端取消这个记录。当客户端下线之后,这些记录全部释放。后来去了解客户端断线重连的处理机制后。即使断线导致我释放记录都不会出问题。OK当因为触发条件不同或者时间不同,导致重复发的时候,可按照以上思路 阅读全文

posted @ 2013-07-12 20:22 david2303 阅读(477) 评论(0) 推荐(0) 编辑

2013年6月10日

摘要: 在stackoverflow看到求两个数组的交集的补集的提问。可惜当我写好代码,准备提交的时候,发现那个题目被大神关了。在这里留下痕迹吧例如 a1 = {1,2,3,6}; a2 = {2, 6, 7}输出就是{1, 3, 7}#include"stdlib.h"#include"stdio.h"int main(){ int arr1[] = {2, 3, 4}; int arr2[] = {1, 2, 4, 5}; int i = 0; int j = 0; int size1 = sizeof(arr1)/sizeof(int); int size 阅读全文

posted @ 2013-06-10 17:58 david2303 阅读(394) 评论(0) 推荐(0) 编辑

2013年5月21日

摘要: 写了两个多月lua ,然后现在工作需要用Python,学习中。通常语法知识一不小心就会混淆。C/C++,Lua,Python的if else for while true false等写法都有点不同。写得时候,还真不记得哪个是哪个。我认为呢,这些语法知识记不住,不要紧,两种处理方式。第一,用得时候却想不起,google it。第二,等编译器或者解析器报错,然后修改至于什么要记住呢。我举Lua的例子。table怎么用,必须掌握,Lua的table很强大。nil值需要if判断或者assert。因为Lua变量,使用没有声明(姑且叫声明,来自C/C++的说法)的变量,解析器不会检查出错误。运行时却会挂 阅读全文

posted @ 2013-05-21 13:12 david2303 阅读(275) 评论(0) 推荐(0) 编辑

2013年4月25日

摘要: 以下内容是老大的经验之谈。我就通过代码,把这经验具体化以下代码是不安全的,由于对STL的不熟悉,删除之后,迭代器加加,以为迭代器会指向下一个。最后,结果有可能是不对的#include<iostream>#include<map>using namespace std;int main(){ map<char, int> mymap; map<char, int>::iterator iter; mymap['a'] = 10; mymap['b'] = 30; mymap['c'] = 30; my 阅读全文

posted @ 2013-04-25 21:07 david2303 阅读(149) 评论(0) 推荐(0) 编辑

摘要: 今天晚上例会,老大说对于脚本类工具类环境类的东西,学习的方式是,需要用的时候再上网查怎么用。而像对于C++这样较底层一些的,业余多看书,增加功力。相信这个Valgrind就是前者。今天,看到带我的师傅用这个工具寻找内存泄露的问题。好奇心促使下。google了怎么使用。挑选了以下文章。以后需要用的时候,直接到这里,不用先google再筛选防止内存泄露 Linux下用Valgrind做检查应用 Valgrind 发现 Linux 程序的内存问题 阅读全文

posted @ 2013-04-25 00:17 david2303 阅读(140) 评论(0) 推荐(0) 编辑

2013年4月18日

摘要: 在google搜lua,无意中发现了这篇关于写高效lua的好文章编写高效Lua代码的方法 - 总结编写高效Lua代码的方法 - 1 - 基本知识编写高效Lua代码的方法 - 2 - 表相关编写高效Lua代码的方法 - 3 - 字符串编写高效Lua代码的方法 - 4 - 减少,重用,回收多用local,函数也可以用local引过来尽量少编译代码,例如调用loadstring,改用闭包要复用表。会用表是一门学问。把table元素至nil,不会把表空间减少。重新哈希(rehash)时会计算表内容,对表的大小做调整所有的字符串只有一份拷贝,然后其它都是对它的引用。字符串比较和表索引会比较快。但创建会比 阅读全文

posted @ 2013-04-18 22:49 david2303 阅读(439) 评论(0) 推荐(0) 编辑

2013年4月16日

摘要: 第一部分:安装libevent 2.0.21wgethttps://s3.amazonaws.com/github/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gztar zxvf libevent-2.0.21-stable.tar.gzcd libevent-2.0.21-stable./configuremakesudo make install第二部分:使用libevent下面的教学文字转自http://www.felix021.com/blog/read.php?2068,并作了部分内容删减假定已经学习过基本的sock 阅读全文

posted @ 2013-04-16 00:04 david2303 阅读(2109) 评论(2) 推荐(0) 编辑