- 博客(19)
- 收藏
- 关注
原创 golang之路--时间格式化
有人问了问go的时间格式化问题,于是乎自己尝试了下,发现巨坑爹,不按常理出牌啊format的竟然模版必须如下面的每个数字,fuck t := time.Unix(1362984425, 0)nt := t.Format("2006-01-02 15:04:05")fmt.Println(nt) 附上现有的go格式const ( ANSIC...
2013-03-11 15:41:35 431
原创 【转载】MMORPG服务架构
一.摘要1.网络游戏MMORPG整体服务器框架,包括早期,中期,当前的一些主流架构2.网络游戏网络层,包括网络协议,IO模型,网络框架,消息编码等。3.网络游戏的场景管理,AI,脚本的应用等。4.开源的网络服务器引擎5.参考书籍,博客二.关键词网络协议 网络IO 消息 广播 同步 CS TCP/UDP IP 集群 负载均衡 分布式 网关服务器 GateServer 心跳 多...
2013-03-11 14:45:15 120
golang之路--bitmap 实现
介绍一下bitmap的思想: 情景1:有些时候我们为了判断一个某个元素是否存在一个集合中,普通的方式是map[int]xxxx存储。数据量小的时候还可以待数据量庞大的时候,比如我们判断某人的momoid是否在某个Momoid切片中,存储就悲剧了。算一下:一个int = 4byte 倘若存储500W个数据 4 * 500 * 1000 / 1024 /1024 = 2G的...
2013-02-22 18:45:56 528
原创 golang之路--定时任务
timer := time.NewTicker(2 * time.Second) for { select { case <-timer.C: go func() { log.Println(time.Now()) }() } }
2013-01-31 18:58:47 141
原创 Redis如何处理客户端连接
【转载】http://blog.nosqlfan.com/html/4153.html本文主要介绍了 Redis 处理客户端连接的一些内部实现机制,包括连接处理、超时、缓冲区等一系列内容。注:本文所述内容基于 Redis2.6 及以上版本。连接的建立Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内...
2013-01-24 14:08:41 202
golang之路--goprotobuf使用
发现已经有protocbuf对go的支持了,特此来尝试一下。1.首先得安装protocbuff的go的支持包 我采用源码安装在自己工程下 hg clone https://code.google.com/p/goprotobuf/ 然后 make 就可以了 如果出现不能make 的请在命令行下go env看看当前的GO_PATH是否有你当前的工程路径,没有则添加 成功后在...
2012-12-21 14:24:38 486
原创 golang之路-api杂记-格式化float输出
a:=strconv.FormatFloat(10.100,'f',-1,32)输出:10.1a := strconv.FormatFloat(10.101, 'f', -1, 64)输出:10.101a := strconv.FormatFloat(10.010, 'f', -1, 64)输出:10.01a:=strconv.FormatFloat(10.1...
2012-11-27 13:23:34 572
原创 golang之路-并发编程小记(1)
学习了go的基本的并发变成模式,思路就是一个用通信来共享数据,而并不是像java一样共享内存来通讯。go采用了用channel来传递消息,每一个协程持有一个信道,当信道可用时便可以读写数据,各信道间的处理数据互不影响。回想一下java中的并发编程,通常我们是因为操作一个数据而采用多线程并发访问,比较明显的是更新cache中的key对应的value. 让我更是欢喜的时在golang中提供了sy...
2012-11-20 01:49:58 128
原创 golang之路--接口
在go中接口时无侵入的,只要两个接口有相同的方法列表,那么就可以互相赋值,而不像java中,两个接口可以相互赋值必须来自同一个继承树。go没有了继承树,接口可以相互赋值变得简单,原则只有一个含有相同的方法列表。 package minetype IReader interface { read(buff []byte,len int)}package yo...
2012-11-12 01:00:15 97
原创 golang之路-将数据写入文件
func writeResult(vals []int, outfile string) error { file, err := os.Create(outfile) if err != nil { fmt.Println("writer",err) return err } defer file.Close() writer := bufio...
2012-10-31 01:16:13 1133
原创 golang之路--按行读取
//========相比java的读文件,go的读文件方式好清晰啊=====f, err := os.Open("conf/proxy.ini") defer f.Close() if nil == err { buff := bufio.NewReader(f) for { line, err := buff.ReadString('\n') i...
2012-10-30 01:38:48 429
原创 很基础的求两个有序数组的交集和并集
/** * 求解两个有序数组的交集 * @param a * @param b * @return */ public static List<Integer> join(int[] a , int[] b){ List<Integer> list = new Linked...
2012-02-22 11:32:15 508
原创 浅谈名人业务的优化
前一段时间做了写关于名人的优化,主要解决的问题: 系统加载时数据load非常慢,系统重启后到前台页面展现最少也要1分钟,旧的service比这种情况更严重。 以我的性格,我不愿意让出自己手下的代码如此低效并且丑陋的完成功能,于是乎便向组织提交了关于名人业务优化的申请没想到灰常顺利批准我做了。 下面就开始了我优化的流程: 寻找为什么慢: 1.数据库的拉去名人等级竟然用...
2011-12-30 22:15:37 99
原创 带虚拟节点的一致性哈希
将物理节点hash和虚拟节点形成映射 private void hash() { /** * 将物理节点散列成虚拟节点 * */ for (INode node : this.physicalNodes) { for (int i = 0; i < virtualCount...
2011-07-20 23:09:30 320
一个按顺序输出的多线程调度示例
啥叫StepByStep就是一步一步来,让子弹飞中的那句经典台词就是“钱得一点一点赚,步子得一步一步迈,不然咔容易扯着蛋”,说的就是做事情按照一定的规律和顺序来。n个线程,各自执行一段业务逻辑,应业务需求现在需要将这些业务逻辑进行step and step 的完成,带有一定顺序,好比A 线程 输出A, B线程输出B,C线程输出C....现在的要求就是整个业务处理流程就是A-->B--&g...
2011-06-09 00:41:13 117
原创 JMX的简单回顾
之前有了解过JMX,工作中有时候也在用,但是啥东西不系统的学一下,你的内心是空虚的,因此这两天整了整。就放些代码吧,和JMX规范的架构图把。 JMX 架构图: package com.blackbeans.example.mbeans;/** * Mbean接口 * @author blackbeans * */public interfac...
2011-05-16 23:25:15 113
闲来无事,用Java的软引用写了一个山寨的缓存
今天杭州的天气是异常的炎热,35度,这是要我卿命呢,加之最近心情极其差劲,scala的东西也一段时间没看没写了。今天公司又是有犬吠、又是有人结婚、又是有小孩的哭啼、又是有杭州限电公司空调也关了、又是由于XXX原因登境外网站完全崩溃,因此深刻觉得没有Google的程序员不如去卖红薯。 好了闲话少说进入正题,众所周知java中的引用分为StrongReference、SoftReference、...
2011-05-10 22:46:39 83
原创 Scala 初探HelloWorld例子
一时兴起函数式语言scala,那就开门见山,见识一下我的scala版得helloWorld吧! 1、配环境变量啥的我就不说了,下个scala的eclipse Plugins。地址http://www.scala-ide.org/2.那就看看我的helloWorld4scala 呵呵 package com.taobao.moxingclass Demo { def do...
2011-04-25 01:20:04 166
原创 关于ByteBuffer使用解释
之前看过相关的ByteBuffer的使用,但是问题是那时还年轻,所以现在有点老了,因此,忘记了,所以决心看源代码了解一番----故作此篇文章。 查看ByteBuffer的API,看的我是一头雾水,搞不清什么mark、position、limit、flip、reset几个的用法,先看下面的例子: String str = "helloWorld"; B...
2010-12-07 20:54:27 379
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人