- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 erlang 随机数
> F = fun() -> io:format("~p~n", [[random:uniform(10) || _ <- lists:seq(1, 10)]]) end. > spawn(F). [1,5,8,10,6,4,6,10,7,5] > spawn(F). [1,5,8,10,6,4,6,10,7,5] > G = fun() -> {A1,A2,A3} =
2016-05-31 16:19:27 963
原创 客户端 服务端 时间校正
tc1:客户端发送时间戳tc2:客户端接受时间戳ts1:服务端接收时间戳ts2:服务端发送时间戳原理:tc + diff = ts公式:tc1+ diff = ts1 - delaydelay = (tc2 - tc1)/2 - (ts2 - ts1)
2016-05-31 09:35:13 1009
原创 primary key与unique的区别
UNIQUED 可空,可以在一个表里的一个或多个字段定义;PRIMARY KEY 不可空不可重复,在一个表里可以定义联合主键;简单的说,primary key = unique + not null unique 就是唯一,当你需要限定你的某个表字段每个值都唯一,没有重复值时使用。比如说,如果你有一个person 表,并且表中有个身份证的column,那么你就可以指定该字段为un
2016-05-27 09:24:26 1345
转载 mysql innodb 优化
init_connect='SET autocommit=0' //关闭自动提交,这个对于innodb来说,很重要 innodb-file-per-table=1 //使用独立表空间 innodb-open-file=500 //打开最大文件数据是500,默认是300 innodb_log_file_size=512M
2016-05-26 14:10:24 227
原创 erlang dets ets 压测
磁盘:7200转 机械硬盘 内存:1333 MHz CPU: i5-2310 CPU @ 2.90GHz(3201 MHz) dets 写入100万条数据 54.18(27)秒 ,平均每条 0.000054 秒 ≈ 54微秒, QPS 1.8万 磁盘占用127 389 134 字节 127M ets 写入100万条数据 1.42(1.2)秒 ,平均每条 0.000
2016-05-19 16:54:10 617
转载 erlang 优化
霸爷指出,新的erlang虚拟机有很多调优启动参数,今后现在这个方面深挖一下。1. 进程标志设置: 消息和binary内存:erlang:process_flag(min_bin_vheap_size, 1024*1024),减少大量消息到达或处理过程中产生大量binary时的gc次数 堆内存:erlang:process_flag(min_heap
2016-05-19 11:17:15 875
转载 erlang消息广播要注意什么问题?
1、reduction计数 通常会启动一个消息管理进程,这个进程就负责把广播消息转发给对应的所有玩家进程。启用管理进程的一个好处是,进程发消息会扣除reduction,而且这个reduction扣除大小还受到接收者进程影响。假如直接在地图进程做消息广播,就会导致地图进程受到的调度极度减少,影响战斗计算。 2、消息复制 erlang消息发送基于复制,但对于比较大的二进制
2016-05-17 17:22:53 469
转载 进程字典与ets
进程字典是erlang游戏开发中最为常用的数据记录方式,理由很简单,因为它够快,差不多比ets快了一个数量级。但是,进程字典的数据为所在进程私有,无法跨进程直接get到进程字典的数据,而且,在进程被销毁时,进程字典的数据也会被回收。 再说下ets,对比进程字典,ets的适用场景是跨进程读写数据。遇到一个数据频繁被多个进程读到,就要考虑使用ets了。另外,ets有归属进程,但归属进程销毁时
2016-05-17 17:21:08 1587
原创 erlang 常用数据结构
ordsets 是lists实现的有序集合.由于数据元素的变动都会触发重新排序,所以ordsets效率不高,只适用于数据量比较小的场景.ordsets中包含了常见的集合操作:求交集,并集,是否为子集,是否存在交集
2016-05-13 17:34:13 2098
转载 浅谈tcp_nodelay的作用
TCP_NODELAY和TCP_CORK基本上控制了包的“Nagle化”,这里我们主要讲TCP_NODELAY.Nagle化在这里的含义是采用Nagle算法把较小的包组装为更大的帧。JohnNagle是Nagle算法的发明人,后者就是用他的名字来命名的,他在1984年首次用这种方法来尝试解决福特汽车公司的网络拥塞问题(欲了解详情请参看IETF RFC 896)。他解决的问题就是所谓的silly
2016-05-13 09:58:41 712
转载 通用的erlang优化设置
设置是我在多个项目中通用的,不过根据应用场景的不同,还会有其它细调,就不在这一一说明了。 - Sunface 一、 erl启动时参数:+K true开启epoll调度,在linux中开启epoll,会大大增加调度的效率+A 100 异步线程池,为某些port调用服务+P 1024000最大进程数+Q 655
2016-05-13 09:56:35 1629
原创 linux socket 编程 端口复用
在A机上进行客户端网络编程,加入它所使用的本地端口号是1234,如果没有开启端口复用的话,它用本地端口1234去连接B机再用本地端口连接C机时就不可以,若开启端口复用的话在用本地端口1234访问B机的情况下还可以用本地端口1234访问C机。若本地编程bind的本地端口号时0表示由系统分配端口,并开启端口复用的话表示系统分配的该端口号开启了复用。 若是服务器程序中监听的端口,即使开启了复用
2016-05-13 09:30:44 714
原创 大端小端
1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端:为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了
2016-05-09 22:04:55 3386
转载 DDL、DML和DCL的理解
1、DDL 1-1、DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也
2016-05-09 11:56:04 404
原创 黑盒测试和白盒测试
黑盒测试把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,针对“软件界面”和”软件功能“进行测试,只检查功能是否符合需求规格说明书能正常使用。因此黑盒测试又叫功能测试或数据驱动测试。白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看作一个打开的盒子,他允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在
2016-05-06 15:44:50 519
原创 排序算法
排序分类 平均时间 时间复杂度 辅助存储空间简单排序 O(n2) O(n2) O(1)快速排序 O(nlog2n) O(nlog2n) O(nlog2n)堆排序 O(nlog2n) O(nlog2n) O(1)归并排序
2016-05-06 13:48:57 220
原创 查找算法
1. 顺序查找a) 算法简单,适应面广,稳定算法b) 平均查找长度比较大,当n比较大时,查找效率会很低,时间复杂度为O(n)2. 折半查找法a) 针对有序的序列表,不稳定算法b) 查找速度快,时间复杂度是O(log2n)3 分块查找a) 也是针对有序表,不
2016-05-06 13:48:35 246
转载 erlang 优化
1. 进程标志设置: 消息和binary内存:erlang:process_flag(min_bin_vheap_size, 1024*1024),减少大量消息到达或处理过程中产生大量binary时的gc次数 堆内存:erlang:process_flag(min_heap_size, 1024*1024),减少处理过程中产生大量term,尤其是list时的
2016-05-06 13:40:08 284
原创 [算法]负载均衡
1.随机 把负载随机分配到可用的服务器上2.顺序 按顺序把负载平均分配3.加权 对顺序的优化 比如某台服务器处理能力很强 那么可以让它处理更多的负载4.动态 实时 或者 定时监控服务器状态,动态的把负载放在压力最小的服务器上
2016-05-04 10:04:06 195
原创 阿莫西林 阿司匹林 盘尼西林 分不清楚?
盘尼西林,也就是现在常说的青霉素,和阿莫西林一样都是抗菌消炎的抗生素,而阿司匹林是预防心脑血管疾病的特效药。
2016-05-04 09:47:08 2637
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人