tbox提供了两种定时器:
一种是基于最小堆的高精度定时器,精确到ms级别,但是时间复杂度在O(logn)
还有一种就是基于timing-wheel时间轮算法的低精度定时器,时间复杂度仅为O(1),实常数级别的,相当的快。
这个定时器是参考了linux内核的timer算法实现,不过linux那个比较通用,实现复杂,tbox中为了考虑精简性和低资源,对其算法做了精简
使得其资源占用更小,效率更高,但是使用场景上会有些限制,可以根据自己的实际情况,来判断使用需要用这个定时器来优化性能,还是使用高精度版本。
ltimer低精度定时器,提供了几种精度模式:
TB_LTIMER_TICK_100MS:100毫秒级别
TB_LTIM
继续阅读 »
业界动态
OpenStack私有云服务商Metacloud近日完成B轮1500万美元融资,推动企业自建和Metacloud托管私有云服务开发和营销推广。目前Metacloud已经累计融资2700万美元。
EasyStack将会在本次的Atlanta峰会上有一个demo theater,EasyStack是一家OpenStack云解决方案和服务提供商,基于OpenStack为企业用户提供开放、稳定、可靠、可扩展的弹性云计算平台。
北京时间5.12号,OpenStack一年两次的峰会在Atlanta召开,主会议时间将从在亚特兰大时间五月12日早9点(北京时间五月12日晚9点)开始,持续到美国时间周四下午5点。同时,设计峰会将从周二
继续阅读 »
目录
Table of Contents
{:toc}
文/Robin
本站推广
币安是全球领先的数字货币交易平台,提供比特币、以太坊、BNB 以及 USDT 交易。
币安注册: https://accounts.binancezh.pro/cn/register/?ref=11190872
邀请码: 11190872
问题重现
在写这篇文章之前,明确我的MySQL版本。
bash
mysql> SELECT VERSION();
+------------+
| VERSION() |
+------------+
| 5.5.29-log |
+------------+
1 row in set (0.00 s
继续阅读 »
用策略模式实现缓动动画
需求:让小球以各种缓动效果在页面中运动
动画开始前需要记录的:
小球所在原始位置
小球移动的目标位置
动画开始时的时间点
小球运动的时间点
之后,用setInterval创建一个定时器,定时器每19秒循环一次。
//缓动算法,此算法移植于flash
var tween = {
//t:动画已消耗的时间,b:小球原始位置,c:小球目标位置,d:动画持续时间
linear: function(t, b, c, d) {
return c*t/d + b;
},
reseIn: function(t, b, c, d) {
ret
继续阅读 »
这里的blocking signal里的blocking并不是传统意义上的针对IO的blocking, 尽管这可能是引起ioloop阻塞的一个原因之一。在这里,blocking指的是ioloop在epoll返回之后开始依次处理各监听文件句柄上的IO事件时,直到下一次进入epoll调用的这段时间的ioloop的状态。我们知道Tornado是单线程的,在处理完某次epoll调用返回的读写就绪事件之前,Tornado无法启动下次epoll监听,所以这段时间理论上是越短越好,这样,ioloop可以充分及时的获取就绪文件句柄,不会影响整体IO性能。然而在实际的使用过程中,难免会出现某次处理时间过长,从而导致ioloop的blocking时间过
继续阅读 »
文/Robin
每个人的心中都住着一个天使,一个魔鬼。天使让你踌躇满志,魔鬼使你止步不前。天使就是愿景,魔鬼就是惰性。
什么是执行力?简单讲就是「愿景落实到细节的能力」。于个人而言,是要 Make things happen;于团队而言,是要 Make the goal happen;于公司而言,是要 Make a successful company happen。本文主要从个人的角度聊聊「执行力」。
执行力的强弱决定了一个人可以达到的高度。笔者的日历每天都是满满的,几乎看不到太多的缝隙。还记得在上学时,笔者就一直在用「时间块」的方法来管理时间,甚至可以精确到分钟级别。同学见到笔者的作息,都觉得笔者完全是个机器人。在执行
继续阅读 »
上周读完了阿西莫夫的《永恒的终结》,感觉文章的思路非常神奇,说下对这书的感受。
先解释下背景,永恒时空是在27世纪成立的,它独立于时间线之外,
相当于一个时间线的警察局,对于正统时间线的问题(比如发生核爆啦)进行修正,
从而向着永恒时空“想要”的方向发展。
永恒时空会从各个世纪挑选人才,培训他们进入永恒时空工作。
永恒时空工种大体从低到高分为以下几种:
继续阅读 »
更新历史:
2018.09.18,初稿完成
2018.10.13,增加 kubeadm 的方法
很长时间没写东西了。离家在外两个人带娃很忙,在家空闲的时间基本都用来陪娃了,在加上前段时间在备考 CKA,时间上更是抠抠缩缩。业内人士都知道 CKA 是 Kubernetes(下面简称 k8s) 社区认证的管理员证书,我作为早期参与 openstack(下面简称 os) 的社区开发人员,openstack 的证书都没怎么关心过,现在为啥要考这个 CKA 呢?其实原因很简单,就是想对 k8s 多一些了解。我从2013年开始以开发人员的角色接触 os,当时年轻气盛,精力无限,一上来就是边阅读源码边安装试用,碰到问题都是通过读代码解决,从 o
继续阅读 »
浏览器中的javascript引擎是单线程的,如果在setTimeout设定的时间到达时,javascript引擎还在处理另外的代码,那么setTimeout设定的事件就只有排队等待了。所以一般来说setTimeout设定的时间都是不准确的,会比设定的晚。就算setTimeout时间设定为0,也不一定马上执行,这样设定是把想执行的函数放在javascript引擎执行队列的末尾。
继续阅读 »
权限
用户
每个用户都有对应ID(UID),至少归属于用户组(GID:同一用户组拥有相同的权利)。
查看id:id
查看Uid:groups
查看当前系统的用户:users
who //查看更多详细的信息
w //最详细信息
more
who的信息
第一列|第二列|第三列
--|--|--
登录的用户名|用户登录的终端|用户登录的时间(远程登录显示用户的ip或主机名)
w的信息
第一列|第二列|第三列|第四列|第五列|第六列|第七列|第八列
--|--|--|--|--|--|--|--
用户名|终端|网络登录时,显示主机名或ip地址|用户登录时间|用户闲置时间|与终端相关所
继续阅读 »