可以使用golang的race-detector检查资源冲突, 但最重要还是全局考虑资源分配问题.
在debug多线程时,发现一个自己锁自己的bug.
继续阅读 »
日志是应用软件中不可缺少的部分。日志记录器(Logger)是日志处理的核心组件。
Logger的行为是分等级的,在不同的情况下日志级别应该是不同的。
more
Logback的Logger级别包括:TRACE、DEBUG、INFO、WARN和ERROR,定义于ch.qos.logback.classic.Level类。
继续阅读 »
内建变量
内置在字符串中,例如:
lua
set_objectdir("$(buildir)/.objs")
其中的$(buildir)就是内建变量,这些是随着每次xmake config的配置改变而自动改变的。
目前支持的一些变量如下:
$(buildir): 编译输出目录,可通过:xmake f -o /tmp 修改
$(projectdir): 工程主目录,可通过:xmake f -P ./project 修改
$(os): 编译目标的操作系统
$(plat): 编译目标的所在的平台,可通过:xmake f -p android修改
$(mode): 编译模式:debug、release、profile,可
继续阅读 »
听上去很简单,然而并不是——今天我要说的是为仅配置为缓存、没有persistence的Redis实例进行备份和恢复。为什么要对缓存进行备份和恢复?每个人的需求都不一样,其中一种是为了debug:你必须复原一个与production一模一样的环境——不仅是db,还有缓存,否则一些问题就没法重现。
继续阅读 »