说明

分析lua使用的gc算法,如何做到分步gc,以及测试结论

gc算法分析

lua gc采用的是标记-清除算法,即一次gc分两步:

  1. 从根节点开始遍历gc对象,如果可达,则标记
  2. 遍历所有的gc对象,清除没有被标记的对象
阅读全文 »

说明

lua中提供了3中字符串拼接函数,测试在日常使用情况下,各种拼接字符串的性能对比。

测试环境

操作系统:Debian GNU/Linux 8
CPU:Intel(R) Xeon(R) CPU E5-2640 v2 @ 2.00GHz
内存:64G
lua环境:LuaJIT-2.1.0-beta3 (测试的时候关闭jit)

阅读全文 »

介绍

最近需要做一个高并发Http请求的功能,在此基础上,可以进一步做服务端高并发的压力测试。之前做了个Http的同步请求功能,使用的是libcurl,所以这次还是使用libcur+libevent的方式来实现高并发Http请求的功能。

阅读全文 »

画建筑轮廓

LintCode链接

题目描述

水平面上有 N 座大楼,每座大楼都是矩阵的形状,可以用一个三元组表示 (start, end, height),分别代表其在x轴上的起点,终点和高度。大楼之间从远处看可能会重叠,求出 N 座大楼的外轮廓线。
外轮廓线的表示方法为若干三元组,每个三元组包含三个数字 (start, end, height),代表这段轮廓的起始位置,终止位置和高度。
参考下面的图,黑色线为建筑,红色线即为建筑的轮廓线

阅读全文 »

遍历二查找叉树

LintCode链接

题目描述

设计一个迭代器,该迭代器可以按照以下要求一棵二叉查找树

  • 遍历的顺序按照从小到大的排序规则
  • next与hasNext的时间复杂度平均为O(1)
阅读全文 »

查找无续数组的峰值

LintCode链接

题目说明

给出一个整数数组(size为n),其具有以下特点:

  • 相邻位置的数字是不同的
  • A[0] < A[1] 并且 A[n - 2] > A[n - 1]

假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。

阅读全文 »
0%