2020年6月29日

golang 中的中间件技术

摘要: golang中很多网络相关的库都使用到了一种 middleware 的编程技巧,包括 rpc 和 http。但是这种技巧刚接触很容易搞不清楚概念,在这里记录一下我的理解。 以rpc框架 kite 为例 github地址 kite 作为一个rpc框架,提供了 middleware 的接口,保证多个 r 阅读全文

posted @ 2020-06-29 16:21 daghlny 阅读(1557) 评论(0) 推荐(0) 编辑

2019年10月9日

golang中慎用slice的赋值

摘要: 一篇很典型的golang slice采坑记录:https://studygolang.com/articles/6557 有如下代码: type AutoGenerated struct { Age int Name string Child []int } func main() { jsonSt 阅读全文

posted @ 2019-10-09 21:41 daghlny 阅读(3335) 评论(0) 推荐(0) 编辑

2019年5月24日

CPython3 中 str 类和 bytes 类的一些实现细节

摘要: CPython在github上的官方 repo: https://github.com/python/cpython 下面的总结都是给予我当前时间点(2019 05)看到的最新版本,3.8.0 alpha 4 首先在 python2 中,str类对应的 C struct 是 PyStringObje 阅读全文

posted @ 2019-05-24 10:51 daghlny 阅读(793) 评论(0) 推荐(0) 编辑

2019年5月22日

numpy 关键数据结构 ndarray

摘要: numpy官方教程:https://www.numpy.org/devdocs/user/quickstart.html numpy 是几个知名ML库的基础,其中基本上所有 numpy 功能都是围绕 ndarray 设计,ndarray 本质是一个同类型元素多维矩阵 (NumPy’s main ob 阅读全文

posted @ 2019-05-22 20:55 daghlny 阅读(361) 评论(0) 推荐(0) 编辑

2019年1月16日

.cpp 和 .c 因为符号表不兼容导致的 undifined reference 问题

摘要: 一般的 undifined reference 几乎99%都是因为没有把有具体函数定义的目标文件(后缀名 .o)链接到当前输出文件中导致的,今天碰到了一种情况是因为符号表不兼容。 很简单,估计也比较常见,但是自己是第一次见。 假设你有一个 mylib.c 文件,内容如下: 这个文件你用gcc编译,g 阅读全文

posted @ 2019-01-16 19:11 daghlny 阅读(316) 评论(0) 推荐(0) 编辑

2018年11月9日

深入学习 Python 中的几个知识点

摘要: 之前只是简单会用,现在重新按照官网的 Tutorial 来学 python 中一切变量都是引用(指针) 对于内置类型来说,有不可变类型和可变类型之分,不可变类型的意思是不能重新赋值,需要重新生成一个新对象,因此使用 operator= 相当于是做深拷贝。可变类型则不同, operator= 只是浅拷 阅读全文

posted @ 2018-11-09 10:11 daghlny 阅读(223) 评论(0) 推荐(0) 编辑

2018年9月16日

C++ 的 new 和 delete

摘要: 看到 More Effective C++ 条款8 有感,记录一下以便后续忘了。 1. new operator 就是我们最常用的 运算符,它有两阶段,首先分配空间,然后调用构造函数。 不可更改,内置于C++语言中。 例子: 2. operator new 只分配内存,而不调用构造函数。可以被重载, 阅读全文

posted @ 2018-09-16 21:59 daghlny 阅读(148) 评论(0) 推荐(0) 编辑

2018年7月29日

从 Protothreads 和 libco 看 C/C++ 实现的协程库

摘要: 同步Synchronous,异步(Asynchronous),协程(coroutine) 同步的好处是逻辑流就是代码的控制流,易于编写。但是如果碰到阻塞请求,就会卡住,因此CPU利用率不高。当然操作系统可以进行进程/线程调度,但是又有一些上下文切换的开销。 异步的好处是当线程可以不用一直阻塞在IO请 阅读全文

posted @ 2018-07-29 22:44 daghlny 阅读(3030) 评论(0) 推荐(1) 编辑

2018年7月24日

Redis 的落地策略

摘要: Redis 的落地策略其实就是持久化(Persistence),主要有以下2种策略: 1. RDB: 定时快照方式(snapshot) 2. AOF: 基于语句追加文件的方式 RDB RDB 文件非常紧凑,它保存了 Redis 某个时间点上的数据集。RDB 恢复大数据集时速度要比 AOF 快。但是 阅读全文

posted @ 2018-07-24 22:29 daghlny 阅读(4930) 评论(0) 推荐(0) 编辑

2018年7月22日

由 snprintf 引发的一个问题

摘要: 所有代码在如下平台编译运行: 当使用32位编译如下代码时,会出现乱码: 使用 命令编译,输出的结果是 。 不过在编译的时候会报 warning,因为 %d 期待的是 int,而传进去的是 long long。当然,这里如果严格要求的话,把 %d 改为 %lld,就不会有错误。 所以,这个 bug 告 阅读全文

posted @ 2018-07-22 21:23 daghlny 阅读(974) 评论(0) 推荐(0) 编辑

导航