摘要: 用了那么多年 c++,今天才搞明白 cmake 该怎么用…… cmake 是一个跨平台的 c++ 构建工具,与 makefile 类似,但是 makefile 更关注依赖,cmake 更关注构建本身,所以语法上要比makefile 要简洁清晰一些,而最近发现 cmake 原来还自带了依赖管理的功能,阅读全文
posted @ 2018-05-31 12:03 hatlonely 阅读(433) 评论(0) 编辑
摘要: logrotate 是操作系统用来管理日志的工具,支持日志的切割、压缩、清理以及邮件报警等,通过 crontab 服务定时运行,也可以用这个工具来管理我们自己的服务日志,只需要简单配置下配置文件即可 logrotate 配置 ,多份日志可以直接写在一个配置文件里面,也可以分成多个文件 进来 : 日志阅读全文
posted @ 2018-04-16 15:46 hatlonely 阅读(31) 评论(0) 编辑
摘要: mysql 作为成熟稳定的数据持久化解决方案,广泛地应用在各种领域,但是在数据分析方面稍有不足,而 elasticsearch 作为数据分析领域的佼佼者,刚好可以弥补这项不足,而我们要做的只需要将 mysql 中的数据同步到 elasticsearch 中即可,而 logstash 刚好就可以支持,阅读全文
posted @ 2018-04-14 23:19 hatlonely 阅读(43) 评论(0) 编辑
摘要: elk 提供了完备且成熟的日志存储和分析的解决方案,免费开源,本文主要介绍 elasticsearch 集群以及 kibana 的环境搭建 elasticsearch elasticsearch 可以理解为一个支持模糊查询的数据库,用来存储日志 下载 elasticsearch 修改配置文件 修改 阅读全文
posted @ 2018-04-13 00:46 hatlonely 阅读(47) 评论(0) 编辑
摘要: 很多时候性能问题总是发生在一些不起眼的地方。最近做一个性能问题分析的时候发现,一个函数里面使用由于字符串拼接产生的临时字符串导致内存上涨了40%(120G 内存的机器),而这些临时字符串给 GC 也带来了非常大的负担,成为主要的性能瓶颈,而这些字符串作为 map 的 key,又必须要拼接,所以想到了阅读全文
posted @ 2018-04-12 18:48 hatlonely 阅读(19) 评论(0) 编辑
摘要: hashset 是一种非常高效的数据结构,插入和查询的复杂度都是 O(1),基本上能满足大部分场景的性能需求,但在一些特殊的场景下,频次非常高的调用依然会成为性能瓶颈(用 pprof 分析),比如广告里面的定向逻辑,在一次请求中过滤逻辑可能会执行上千次,而其中有些过滤刚好都是一些枚举值,比如性别定向阅读全文
posted @ 2018-04-12 16:47 hatlonely 阅读(12) 评论(0) 编辑
摘要: 可能是因为编译太简单了,golang 并没有一个官方的构建工具(类似于 java 的 maven 和 gradle之类的),但是除了编译,我们可能还需要下载依赖,运行测试,甚至像 easyjson,protobuf,thrift 这样的工具下载和代码生成,如果没有构建工具,这些工作就会非常麻烦 为了阅读全文
posted @ 2018-04-12 00:39 hatlonely 阅读(23) 评论(0) 编辑
摘要: jackson 是一个 java json 库,提供了完备的 json 解析,序列化以及反序列化功能 依赖配置 在 build.gradle 里面添加依赖配置 json 解析 调用 就能讲 json 字符串解析成一个 对象,然后通过 方法就可以获取 json 中各个字段的值了,这种方式可以用来读取 阅读全文
posted @ 2018-03-18 17:55 hatlonely 阅读(22) 评论(0) 编辑
摘要: java 的多线程有好几种,可以继承 Thread,也可以实现 Runnable 接口,还可以实现 Callable 接口 Thread Callable 接口也只有一个方法 ,和 Runnable 不同的是 Callable 允许有返回值,而这个返回值可以通过 获取,还可以设置任务运行的超时时间,阅读全文
posted @ 2018-03-18 01:53 hatlonely 阅读(21) 评论(0) 编辑
摘要: 相比于 c/c++,golang 的一个很大的改进就是引入了 gc 机制,不再需要用户自己管理内存,大大减少了程序由于内存泄露而引入的 bug,但是同时 gc 也带来了额外的性能开销,有时甚至会因为使用不当,导致 gc 成为性能瓶颈,所以 golang 程序设计的时候,应特别注意对象的重用,以减少 阅读全文
posted @ 2018-03-17 17:20 hatlonely 阅读(39) 评论(0) 编辑