tbox提供了两种定时器:
一种是基于最小堆的高精度定时器,精确到ms级别,但是时间复杂度在O(logn)
还有一种就是基于timing-wheel时间轮算法的低精度定时器,时间复杂度仅为O(1),实常数级别的,相当的快。
这个定时器是参考了linux内核的timer算法实现,不过linux那个比较通用,实现复杂,tbox中为了考虑精简性和低资源,对其算法做了精简
使得其资源占用更小,效率更高,但是使用场景上会有些限制,可以根据自己的实际情况,来判断使用需要用这个定时器来优化性能,还是使用高精度版本。
ltimer低精度定时器,提供了几种精度模式:
TB_LTIMER_TICK_100MS:100毫秒级别
TB_LTIM
继续阅读 »
在Windows上,通过Cygwin编译的c程序在运行时,若有内存错误也会产生类似Linux上的core文件,但是该文件一般是以stackdump为后缀的文本文件,且文件提供的信息有限,只包含了程序coredump时函数调用的栈信息,不能像Linux一样使用gdb调试。所以,在Windows平台调试Cygwin编译的c程序不太方便。本文介绍一种方法,通过反汇编c程序,结合程序coredump时生成的stackdump文件,可以快速定位出程序的coredump位置。
继续阅读 »
好久之前便听朋友说起Sublime Text这款软件很好用,终于这几天有空折腾,把软件给装起来了。用起来确实很不错,写代码很爽。
但是用了一段时间之后,我需要输入中文了,无论怎么切换输入法,都无法切换到中文。
网上搜索了一下,原来这是Bug。找解决方法吧。下面介绍我的解决方案,是大神cjacker解决成功的啦,我只是copy一下,方便大家在遇到这个问题的时候可以方便解决。
继续阅读 »
安装ruby,RubyGems 和 jekyll
```
使用yum安装,这一般不会碰到问题
$ sudo yum install ruby
ruby-devel可能不会默认安装,可以使用如下命令更新ruby-devel
$ sudo yum install ruby-devel
安装ruby的过程中会自动安装RubyGems,可以使用如下命令更新RubyGems
$ gem update --system
安装 jekyll
$ sudo gem install jekyll
继续阅读 »
现在让我们开始学习如何运行一个传统的“Hello World”程序,这基本上是学习任何编程语言的需要做的第一步。下面将会告诉你如何编写、保存与运行 Python 程序。
通过 Python 来运行的你的程序有两种方法
使用交互式解释器提示符
直接运行一个源代码文件
继续阅读 »
安装
```bash
yum install qemu-kvm libvirt virt-install virt-manager
```
命令列表
版本信息
virsh-v 只显示版本号
virsh-V 显示版本的详细信息
继续阅读 »
准备工作
安装 virt-install
```bash
yum install -y virt-install
```
ISO镜像安装虚拟机
在官方网站下载CentOS-7ISO镜像
使用qemu-img工具创建一个虚拟硬盘
bash
qemu-img create -f qcow2 /tmp/centos7.qcow2 10G
继续阅读 »
本文介绍如何使用 Docker 构建一个高效的 Web 开发环境(Linux+Docker+Python+JavaScript),这也是我的日常开发环境。
准备Docker
安装Docker
https://docker.github.io/engine/installation/linux/
不要漏了阅读 Create a Docker group 部分。
安装Docker Compose
继续阅读 »
查看 CentOS 的版本号
CentOS的版本号信息一般存放在配置文件当中,在CentOS中,与其版本相关的配置文件中都有centos关键字,该文件一般存放在/etc/目录下,所以说我们可以直接在该文件夹下搜索相关的文件
more
继续阅读 »
管理一网站,最开始使用的虚拟空间,采用提供商支持的ftp上传网站文件,后换用vps,vps可以自己搭建ftp的,但是懒得搞,直接使用scp传输文件到服务器,现在需要更新文件到服务器,使用scp真的很烦。发现本人就职的公司,采用的git+rsync的方式来管理、同步代码,遂借鉴之。
首先需要在服务器上面安装git和rsync,可以通过源码或者软件包安装,这个我不说,你懂的。
more
我采用的是把软件主仓库放在第三方的git托管平台上面的,如果你的服务器比较牛逼,可以直接在自己的服务器上做主仓库,或者搞单独的git服务器。
我建好主仓库后,在网站服务器上将其克隆到网站服务器,这样网站服务器上面也有了一个仓库。
之后我们写个脚本,
继续阅读 »