主要记录最近遇到的一些开发问题,解决方法。
1. Python 内存分析方法
主要涉及四个工具:
- memory_profile:分析每一行代码的内存使用量
- objgraph:跟踪内存中的对象的关系
- guppy:在运行时跟踪堆的使用情况
- pyrasite:向进程中注入代码
分为两步:
- 模拟线上环境,使用 pyrasite 和 guppy 获取堆信息
- 根据上一步的信息定位到代码中的某一块,再使用 memory_profile 或 objgraph 来进行进一步的分析
2. Docker Machine 基本操作命令
- 创建 my-vm-name 虚拟机
|
|
- 查看全部 docker-machine
|
|
- 登录到 docker-machine
|
|
- 获取 docke-machine 的宿主机 IP
|
|
- 其他命令
|
|
|
|
3. 在 Docker Machine 安装软件
在 Windows 或 OS X 上,使用 Docker 需要借助 VirtualBox 基于 Boot2Docker 镜像创建的虚拟机。Boot2Docker 基于 Tiny Linux,提供 tce-load 管理包工具。
以安装 Python 为例:
|
|
可安装软件包列表 tce-load:
http://distro.ibiblio.org/tinycorelinux/tcz_2x.html
tce-load 命令的文档:
http://wiki.tinycorelinux.net/wiki:tce-load
4. Docker 命令
- 启动容器,映射端口格式: hostPort:containerPort
|
|
- 以 shell 的形式登录到容器
|
|
- 查看容器的日志
|
|
5. Python 多重继承
Python 多重继承调用方法时,采用深度优先搜索算法。按顺序从一个父类一直深度搜索,然后再搜索第二个父类,一直到找到方法为止。
- 旧类
旧类查找顺序, C(A, B) => C -> A -> B
- 新类
新类有一个问题就是,任何多重继承的子类都有一个共同的祖类 Object,都是菱形继承。新类的方法是按照 Class.__mro__中储存的类的顺序查找的。
新类查找顺序, C(A, B) => C -> A -> B -> Object
6. 性能测试 - Locust
Locust 是开源、使用 Python 开发的性能测试工具。它基于事件、支持分布式,并且提供 Web UI 进行测试执行和结果展示。由于使用的是 gevent 的协程并发机制,在并发量上 Locust 显著优于其他同类工具。
安装:
|
|
编写一个测试用例:
test.py
|
|
执行测试:
|
|
Web UI 访问,打开链接: http://localhost:8089/
7. 如何将 MongoDB 注册为 Windows 服务
下载安装之后,将目录 C:\Program Files\MongoDB\Server\4.0\bin\
加入 PATH。
以管理员权限执行命令:
|
|
启动服务 MongoDB:
|
|
8. CentOS 编译安装 Python 3.7
安装依赖:
|
|
下载源码包:
|
|
开始安装:
|
|
查看版本信息:
|
|
安装 pip
wget https://bootstrap.pypa.io/get-pip.py -O - | python3.7
pip3 -V
9. CentOS 7 升级安装 Git2
- 移除旧版本:
|
|
- 安裝 epel-release repository :
|
|
- 安裝 IUS repository:
|
|
- 安裝 git2u:
|
|