作者:
rockeet
发表日期:
2019年12月23日
分类:
C++
评论:
0 条
阅读次数: 2,785 次
1. 概述
简而言之,编程语言中的反射(Reflection)指的是从运行时中获取语言本身的类型等信息。C++ 缺乏这样的机制,对于最简单的 enum 类型,我们或许可以实现带有反射功能的 enum。
我们实现了几个宏,通过宏定义的 enum,就自动地拥有反射功能。
2. 用法
2.2 宏定义
|
// 可在任意 namespace 中调用,不可在 struct/class 内调用 #define TERARK_ENUM_PLAIN(EnumType, IntRep, ...) details... #define TERARK_ENUM_CLASS(EnumType, IntRep, ...) details... // 可在 struct/class 内调用,不可在任意 namespace 中调用 #define TERARK_ENUM_PLAIN_INCLASS(EnumType, IntRep, ...) details... #define TERARK_ENUM_CLASS_INCLASS(EnumType, IntRep, ...) details... |
继续阅读 →
作者:
rockeet
发表日期:
2017年03月08日
分类:
未分类
评论:
8 条
阅读次数: 11,602 次
全局压缩-革命性的数据库技术
背景
作为数据库,在系统资源(cpu, 内存, ssd, 磁盘 …) 一定的前提下,我们希望:
- 存储的数据更多:采用压缩,这个世界上有各种各样的压缩算法……
- 访问的速度更快:更快的 压缩(写)/解压(读) 算法,更大的缓存……
继续阅读 →
作者:
rockeet
发表日期:
2016年07月10日
分类:
未分类
评论:
0 条
阅读次数: 4,059 次
windows 和 linux 都不约而同地加入了 自动最大化 的功能:在拖动整个窗口 或 拖动resize 窗口 到屏幕边缘时,会自动最大化。
我一向非常反感这种自作聪明越俎代庖把用户当傻逼的 傻逼 产品经理/程序员 的 傻逼 行为。
所以,我要禁止这种傻逼功能:
windows10
设置 >> 系统 >> 多任务 >> 靠贴: 把选择框打叉
linux
gconftool-2 –set /apps/compiz-1/plugins/grid/screen0/options/top_edge_action –type int 0
作者:
rockeet
发表日期:
2015年12月15日
分类:
未分类
评论:
0 条
阅读次数: 4,869 次
Mongodb 虽然是 schemaless (不需要 schema) 的文档数据库,但是,同一个表中的数据一般都有相同的结构,我们需要将这样的结构抽象出来,用以提高数据库的性能
terichdb 的数据有以下类型: 继续阅读 →
作者:
rockeet
发表日期:
2015年02月14日
分类:
未分类
评论:
0 条
阅读次数: 4,554 次
之前,自动机词典仅用来存储自然语言处理的语料、url、query 等单条数据很小的数据集,为了简单,解压算法用的是递归实现。前段时间对自动机进行了一个改进,可以压缩存储单条数据很大的数据集。于是,该发生的事情终于发生了:堆栈溢出,也叫爆栈! 继续阅读 →
作者:
rockeet
发表日期:
2015年02月01日
分类:
自动机
评论:
0 条
阅读次数: 14,076 次
nark 数据库最重要的特性:高压缩并且拥有丰富、高效的查询能力。特别是高压缩,其他数据库都没有这个能力,你可能对此表示怀疑,本文提供的内容会打消你的疑虑。
实现上,不同于普通 Hash 或 Tree 结构的数据库,nark 数据库是基于自动机的,这决定了 nark 的强大与简洁,但是,最重要的是,nark 为大家提供了一整套解决方案。
因为自动机只有离线(offline)创建成只读数据库,才能为在线(online)计算 提供 最节省内存 并且 高速查找 的 功能。从而,绝大部分 nark 组件都分为离线(offline)建库 和 在线(online)搜索 两部分。
目前,离线建库以可执行程序的形式向所有用户开放,在线搜索以 C++ API 的形式仅向付费用户开放。
为了让所有用户在付费前体验 nark 的高性能,下载包中也包含了一些示例程序,大部分示例程序同时也是 benchmark 程序,所有用户都可以在自己的机器上运行这些示例程序。 继续阅读 →
描述 Double Array Trie 的文章有很多,我在这里从另一个视角来讲 Double Array Trie。首先,是 base 和 check 的更深层含义,然后再详细说一下由此引申出来的问题。 继续阅读 →
关于 AC 自动机,有太多的文章在讲述它的原理,讲述者借此来展示自己的算法能力。但其实AC自动机的原理很简单,真正困难的地方在于一个高效的实现!对于任何一个基础算法,一个好的实现都要尽量满足:
* 速度快 |
这几点排名不分先后 |
* 内存小 |
* 接口灵活、通用 |
* 使用简单、易上手 |
继续阅读 →
作者:
rockeet
发表日期:
2014年12月13日
分类:
未分类
评论:
0 条
阅读次数: 4,595 次
奇简软件,“奇”字本身有“奇妙”、“奇特”,还有“非常”的意思,“简”字有“简单”、“简洁”,另外,还有“竹简”,也就是“书”、“知识”的意思,放在一起,有多重含义。
另外,“奇简”谐音“旗舰”,“那艘最顶级的船”就是圣经中的“诺亚方舟”了,英文名: Noah’s Ark ,可以简称 nark。 继续阅读 →