2024开板啦
开板啦~
打满cpu/io/memory
都涉及到dd命令
以及linux一些特殊文件
/dev/null,也叫空设备,小名“无底洞”。任何写入它的数据都会被无情抛弃。
/dev/zero,可以产生连续不断的 null 的流(二进制的零流),用于向设备或文件写入 null 数据,一般用它来对设备或文件进行初始化。
/dev/urandom,它是“随机数设备”,它的本领就是可以生成理论意义上的随机数。
dd demo:
#向磁盘上写一个大文件, 来看写性能[root@roclinux ~]# dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file#从磁盘上读取一个大文件, 来看读性能[root@roclinux ~]# dd if=/root/1Gb.file bs=64k | dd of=/dev/null# 上面命令生成了一个 1GB 的文件 1Gb.file,下面我们配合 time 命令,可以看出不同的块大小数据的写入时间,从而可以测算出到底块大小为多少时可以实现最佳的写入性能。[root@roclinu ...
django 单元测试覆盖率
usage# 安装pip install coverage# 清楚缓存文件 .coveragecoverage erase# 执行测试coverage run manage.py test# 生成测试报告coverage report# 生成html报告coverage html
配置测试代码范围.coveragerc:
[run]branch = Truesource = .omit = manage.py venv/* models.py[report]show_missing = Trueskip_covered = True
test democlass XXXTest(TestCase): def test_xxx(self): self.client.get(url) self.client.post(url, data={}, content_type='application/json')
内存映射文件操作
demoimport mmapwith open('demo.json', 'r+') as file: with mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_WRITE) as m: m[3:5] = 'test'
tkinter(python GUI)
intropython GUI有很多,这里只学习使用最基础稳定的。
sample demoLabel 部分属性介绍
width 单位是字符宽度
wraplength 单位是px
justify 多行时生效,默认居中
font 字体
#from tkinter import *root = Tk(className='title')root.geometry('1000x618') # 数字中间是小写字母title = Label(root, text='title')text = StringVar()body = Label(root, textvariable=text, wraplength=width//2, justify='left', font=('Helvetica', 12))title.pack()body.pack()info = 'this is a line.\nthis is a new line. that is too long ...
使用ctypes调用动态库
introctypes是python的一个函数库,提供和C语言兼容的数据类型,可以直接调用动态链接库中的导出函数。为了使用ctypes,必须依次完成以下步骤:
加载动态链接库
cdll
windll
oledll
将python对象转换成ctypes所能识别的参数
使用ctypes所能识别的参数调用动态链接库中的函数
仅支持简单使用,详情请参考官方文档python doc
基础类型
ctypes 类型
C 类型
Python 类型
c_bool
_Bool
bool (1)
c_char
char
单字符字节对象
c_wchar
wchar_t
单字符字符串
c_byte
char
整型
c_ubyte
unsigned char
整型
c_short
short
整型
c_ushort
unsigned short
整型
c_int
int
整型
c_uint
unsigned int
整型
c_long
long
整型
c_ulong
unsigned long
整型
c_longlong
__int64 或 lon ...
火烧云
子曰:“不逆诈,不亿不信,抑亦先觉者,是贤乎!”
孔子说:“不揣测别人会欺诈,不臆测别人不诚实,但(在欺诈和不诚实发生时)又能及早发觉,这就是‘贤’了!”
厨艺展示
火锅底料+牛奶+番茄酱稍微多点油煎鸡蛋->荷包蛋
uwsgi的使用配置
introWSGI 全称是 Web Server Gateway Interface,也就是 Web 服务器网关接口,是一个web服务器(如uWSGI服务器)与web应用(如用Django或Flask框架写的程序)通信的一种规范。WSGI包含了很多自有协议,其中一个是uwsgi,它用于定义传输信息的类型。
uWSGI是一个Python Web服务器,它实现了WSGI协议、uwsgi、http等协议,常在部署Django或Flask开发的Python Web项目时使用,作为连接Nginx与应用程序之间的桥梁。
WSGI/uwsgi/uWSGI
WSGI全名Web Server Gateway Interface,是一个Web服务器(如uWSGI服务器)与web应用(如用Django或Flask框架写的程序)通信的一种规范
uwsgi是WSGI通信规范中的一种自有协议
uWSGI是Python Web服务器,实现了WSGI通信规范和uwsgi协议
whyNginx处理静态文件非常优秀,却不能直接与我们的Python Web应用程序进行交互。Django和Flask本身 ...
羽毛球拍选购指南
球拍长度国际羽联规定665mm为羽毛球拍标准长度,最大长度不能超过680mm。
中国国内市场的羽毛球拍大多数为675mm。
球拍越长,击球点越高,越容易进攻;球拍越短,打球越灵活,更适合双打发挥威力。
球拍的重量重量这里主要以三大厂 (尤尼克斯,胜利,李宁)的球拍来讲解。这里所说的重量是指空拍,也就是未穿线,未缠好手柄皮时的重量。
一般来说,球拍越重,进攻性越强,大于85g的拍子都属于进攻性拍子了。
手柄的粗细手柄的精细一般用G来表示,分为G0~G5,数字越大,拍柄就越细,越适合手小的球友。尤尼克斯(YY)和胜利的官方给出的数据有略微的差别:
李宁球拍一直是使用S来标注手柄精细的,数值越小,手柄越细。S2对应G5,S3对应G4,S4对应G3。
中杆的软硬度中杆软硬度的话我们可以看球拍的说明书,里面会有写,也可以自己去店里亲身感受下。
球杆上配有一个进度条,越靠近S时,中杆越硬,反之,则软。一般来说,中管软更适合防守型球员,进攻拍的中管普遍偏硬,软硬适中的拍子就是攻守兼备的拍子。
中杆越软,也就越弹,对于不会发力的或者腕力较小的初学者,软杆能把球打的更远。但是软杆会大大降低力的传导 ...