tbox提供了两种定时器:
一种是基于最小堆的高精度定时器,精确到ms级别,但是时间复杂度在O(logn)
还有一种就是基于timing-wheel时间轮算法的低精度定时器,时间复杂度仅为O(1),实常数级别的,相当的快。
这个定时器是参考了linux内核的timer算法实现,不过linux那个比较通用,实现复杂,tbox中为了考虑精简性和低资源,对其算法做了精简
使得其资源占用更小,效率更高,但是使用场景上会有些限制,可以根据自己的实际情况,来判断使用需要用这个定时器来优化性能,还是使用高精度版本。
ltimer低精度定时器,提供了几种精度模式:
TB_LTIMER_TICK_100MS:100毫秒级别
TB_LTIM
继续阅读 »
1.简介
对于在网络上的比较小的结点,支持消息传输系统(MTS)是不实际的。例如,一台
工作站可能不具有充足的资源允许SMTP服务器和相当的本地邮件传送系统保持序驻留,
并持续运行。同样的,将一台个人计算机长时间连接在IP类型网络上的费用也是可观的
(结点缺少的资源被称为"联络性")。
虽然如此,在这样的小结点上允许管理邮件是十分有用的,并且这些结点经常支持一
个用户代理来管理邮件。为解决这一问题,能够支持MTS的结点就为这些不能支持的结点提
供了邮件存储功能。邮局协议-版本3就是使这样的工作站可以用一种比较实用的方法来访问
存储于服务器上的储存邮件。通常,这意味着工作站可以从服务器上取得邮件,而服务器为
它暂时保存邮件
继续阅读 »
每个第三季度都是最忙的,工程师活动,部门事务,终于得以闲下来打理自己的网站了,之后会恢复发布文章的频率(每周至少一篇),有什么聊什么,也沉淀下自己的文笔。
PS:博客没怎么去推广,就当作自己跟自己的谈话吧。
今天来浅谈下设计模式中的单例模式。单例模式是最常用到的设计模式之一,有时候在单线程中需要多次调用到同一个类对象,每实例化一次,内存君就多创建一个内存地址,这样就造成了资源浪费,严重的冗余。利用单例模式则可以有效的减少这种资源浪费。
继续阅读 »
很高兴参加这次活动,之前我一直从事分布式计算;从硕士阶段就开始在做分布式资源的调度及优化这一块,当时是基于Globus做跨机群的资源调度。毕业时加入了百度,后来进入了Platform Computing公司;Platform Computing是一家有着20多年分布式经验的公司;2012年Platform Computing被IBM收购,现在做为IBM一个子部门继续从事分布式相关的工作。凭借我们在分布式方面非常丰富的经验,我们在与分布式相关的开源项目都有比较多的贡献,这次主要讲与Mesos, Kubernetes,Swarm相关,还有其它团队在做Spark相关的项目。我会介绍一下Kubernetes和Swarm与Mesos的集成;比
继续阅读 »
说在前面
前段时间,学校(西华大学)禁止了外网访问教务管理系统,但是在教务系统官网给出了一个外网访问的方法,虽然我也不清楚学校抽什么疯封了外网,但是既然已成事实也没办法。
官网给出的解决方法是连接学校的vpn然后访问内网资源,只是这个文档有些地方是错误的(反正第一次操作没成功),加上有些同学一直在群里问外网怎么进教务系统,回答的烦了,就写一篇简单的教程,顺便刷点pv。
教程
教程的方法是通过vpn,喜欢番茄的同学都懂这个东西,听说教育网没有被墙,那次我试了一下,可能是姿势不对,并没有成功出墙(跑偏了)。
1. 访问https://vpn.xhu.edu.cn,首先出来的应该是提示安全证书有问题,不过学校既然让你用这个,老老实实
继续阅读 »
Node.js代理服务器
出于信息安全的需求,很多公司对于员工电脑访问外网都会有很多特别的限制,比如某国内大型上市IT解决方案供应商,所有的员工电脑必须通过某个指定的HTTP代理服务器访问互联网资源,并且还要进行用户名密码的验证,导致很多无法设置代理服务器的软件以及仅支持socks5代理的软件都无法使用,甚至想要在调试应用的时候调用一些第三方api都需要做很多特殊设置。
比如正常的Node.js在做HTTP请求的时候,代码如下:
var http = require('http');
var opt = {
host: 'api.example.com', //要访问的服务器地址或者域名
port: 808
继续阅读 »
版本:2013.2
Heat
Heat是一套业务流程平台,旨在帮助用户更轻松地配置以OpenStack为基础的云体系。利用Heat应用程序,开发人员能够在程序中使用模板以实现资源的自动化部署。Heat能够启动应用、创建虚拟机并自动处理整个流程。它还拥有出色的跨平台兼容性,能够与Amazon Web Services业务流程平台CloudFormation相对接——这意味着用户完全可以将AWS模板引入OpenStack环境当中。
继续阅读 »
本文转载自http://uedc.163.com/8142.html
项目管理是让项目活动中相互竞争的各类制约因素:质量、进度、资源、风险等取得平衡的艺术,同时也是平衡项目干系人的各种需要、关注和期望,带领不同的人朝着相同目标迈进的领导艺术。
成功的项目管理可以简单理解为:按时、在预算内+满足产品需求+满足质量需求 地完成项目。
以下是我(笔者)对项目管理的一点体会记录。
需求等级
视觉 A:图片没有分享功能吗?
技术 K:图片有链接转发分享、微博或邮件形式分享等多种分享,全部开发的话需要推延时间表。
策划 D:图片只做预览、下载已经足够了,暂时不做分享。
交互 E:如果我们的用户是基于
继续阅读 »
python中的多线程其实并不是真正的多线程,如果想充分利用多核CPU的资源,在python中大部分情况需要适用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同的形式的同步,提供了Process、Queue、Pipe、Lock等组件。
继续阅读 »
多线程的并发处理: 在有限时间内, 同时并发处理 n 个资源
```
//from https://talks.golang.org/2012/concurrency.slide#47
c := make(chan Result)
go func() { c
继续阅读 »