2021年12月2日
摘要: 源码地址:https://github.com/noplay/python-mysql-replication 文件解析: ├── binlogstream.py ├── bitmap.py ├── column.py ├── _compat.py ├── event.py ├── exceptio 阅读全文
posted @ 2021-12-02 23:21 bytesmover 阅读(507) 评论(0) 推荐(0) 编辑
  2021年11月30日
摘要: 介绍 复制印象笔记的内容后,粘贴到微信输入框(或者网页的不带格式的textarea),格式会错乱(特别是针对带有列表的) ,如图: 因此开发了一个小工具,目前只支持在windows上运行,后续打算放到网页上做成在线工具。 另外,工具目前也只是简单的处理换行符,印象笔记是基于ENML格式的,理论上可以 阅读全文
posted @ 2021-11-30 13:09 bytesmover 阅读(438) 评论(0) 推荐(0) 编辑
  2021年11月25日
摘要: 出现问题,但不能快速修复 系统在高峰期突然出现了大面积的core dump,通过gdb core文件发现,是core在发送数据到另一个服务的地方,打开堆栈对应的代码,是公司的一个基础库文件,只是简单的声明一个protobuf message对象,但这地方一般不太可能出现core啊,不然程序到处都有类 阅读全文
posted @ 2021-11-25 14:58 bytesmover 阅读(103) 评论(0) 推荐(0) 编辑
  2021年11月23日
摘要: 作用 作为代码编码人员,写完代码,不仅要保证编译通过和运行,还要保证逻辑尽量正确。单元测试是对软件可测试最小单元的检查和校验。单元测试与其他测试不同,单元测试可看作是编码工作的一部分,应该由程序员完成,也就是说,经过了单元测试的代码才是已完成的代码,提交产品代码时也要同时提交测试代码。测试部门可以作 阅读全文
posted @ 2021-11-23 20:53 bytesmover 阅读(4030) 评论(0) 推荐(1) 编辑
  2018年12月28日
摘要: golang中的日志不支持按照天分割,很多开源的日志包都是只支持按照文件大小分割日志,不太利于生产环境中的使用。因此我实现了timewriter,支持: 实现按照天为单位分割日志,可以完美支持golang的log、grpclog、gorm。 旧日志用gz格式压缩。 日志文件名字的前缀默认是进程名。 阅读全文
posted @ 2018-12-28 16:33 bytesmover 阅读(1912) 评论(0) 推荐(1) 编辑
  2018年9月28日
摘要: gorm的功能很强大,支持很多很多特性,打算在项目中用上它。 但gorm不支持protobuf,如果idl用的是protobuf,需要对每个message做一个重新定义一个内部的struct,使得可以让这个内部struct和mysql一一对应,这个是个很无脑的搬砖活;而且,对于message里面有内 阅读全文
posted @ 2018-09-28 04:04 bytesmover 阅读(880) 评论(0) 推荐(0) 编辑
  2018年8月29日
摘要: 今天看了下之前做的一个异步处理任务的服务,发现占用内存量比较大,达到2G,但我检查了代码,基本没有static对象。但这个服务有个特点,就是每次执行一个任务的时候,会从数据库中捞大量的数据做处理,因此我怀疑是因为有比较多的临时对象产生,但程序没有来的及释放。为了验证这个,我用了jinfo查看和临时设 阅读全文
posted @ 2018-08-29 19:28 bytesmover 阅读(516) 评论(0) 推荐(0) 编辑
  2018年6月7日
摘要: yield一般用在函数中,对应的函数是一个生成器,每次执行到yield语句,就在yield的地方停止,并返回yield后面的表达式。跟C++中的iterator类似,例如以下代码,python不会把带有yield的函数当做函数处理。 def fun(n) i = 0 while i < n: yie 阅读全文
posted @ 2018-06-07 11:29 bytesmover 阅读(154) 评论(0) 推荐(0) 编辑
摘要: lambda是一个表达式,基本格式是: lambda argument_list: expression,argument_list是参数列表,expression是返回的表达式。 argument_list: expression跟函数类似,叫lambda 函数。 lambda函数有三个特性: 1 阅读全文
posted @ 2018-06-07 11:18 bytesmover 阅读(204) 评论(0) 推荐(0) 编辑
  2017年5月4日
摘要: 基本观点: 1、一个python进程一个GIL(全局锁),每个线程需要获取这个锁才能执行。 2、cpu密集型的程序,使用多进程。 3、IO密集型的程序,多线程可能会比多进程快。 4、多核cpu执行多进程会不会比单进程快?答案是:会(如果进程切换开销足够小)。这个跟操作系统的调度算法有关系。参考:ht 阅读全文
posted @ 2017-05-04 14:03 bytesmover 阅读(138) 评论(0) 推荐(0) 编辑