- 博客(180)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 python(64) 内存的几个现象,主动释放内存
在 Python 中使用 gc.collect() 方法清除内存使用 del 语句清除 Python 中的 内存方法用于清除或释放 Python 中未引用的内存。未引用的内存是无法访问且无法使用的内存。可选参数generation是一个整数,值的范围是0到2。它使用方法指定要收集的对象的生成。在 Python 中,寿命短的对象存储在0代中,而寿命较长的对象存储在1或2代中。每当调用具有默认generation值等于2的时,将清除垃圾收集器维护的列表。
2024-07-08 10:45:24 724
原创 python(63): dict: del/pop不释放内存
Python中的字典,只有不再使用的时候才会释放对应的内存。在使用 pop 或者 delete 删除字典中的item(或者说entry)后,为了保证hash table 探测链的完整,那个被删除的entry只是被标记成了空,并没有真正被删除掉,所以该字典的内存占用没有得到释放。这是为了避免多度重建hash table。
2024-06-25 10:07:46 313
原创 CAN(1) 入门介绍
CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。
2024-03-31 23:49:54 497
原创 pandas读写excel,csv
时,构造好的字典形式:{第一列的列名:{第一行的行名:value值,第二行行名,value值},....};这个构造方式的好处就是,很容易得到 列名与某一行值形成得字典数据;对应的行名与各值之间的字典数据类型,例如在源数据上面我想得到在。这一列行名与各值之间的字典,直接在生成字典查询列名为。2,{ }表示字典数据类型,字典中的数据是以。的形式显示,是键名和键值一一对应形成的。得到三个键值对,列名、行名、值各一个,各值所生成的列表集合,例如我想得到。时,可以很方面得到 在。唯一区别就是,这里的。
2024-03-21 16:40:22 586
原创 python(53): 多线程与多进程
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。关于多进程和多线程,教科书上最经典的一句话是“线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
2023-12-06 17:20:33 1030
原创 python multiprocessing 报错cannot pickle ‘_io.TextTOWrapper‘ object
这个问题主要是出在了在multiprocessing中,开新的process的时候有对象是一个 _io.TextIOWrapper,而这个类很大可能是你打开了一个文件并将其赋值给了一个变量同时该文件没有关上,那么这个变量就是一个 _io.TextIOWrapper 对象,且这个对象在multiprocessing中是不能被序列化的。解决方式是将变量 _io.TextIOWrapper 在 开新的process的时候关掉或者不共享。.........
2022-08-18 11:37:55 3336
转载 网络(11): TCP与UDP协议的区别以及原理
针对这些问题,tcp协议为每一个连接建立了发送缓冲区,从建立链接后的第一个字节的序列号为0,后面每个字节的序列号就会增加1,发送数据时,从数据缓冲区取一部分数据组成发送报文,在tcp协议头中会附带序列号和长度,接收端在收到数据后需要回复确认报文,确认报文中的ack等于接受序列号加长度,也就是下包数据发送的起始序列号,这样一问一答的发送方式,能够使发送端确认发送的数据已经被对方收到,发送端也可以发送一次的连续的多包数据,接受端只需要回复一次ack就可以了。TCP是基于连接的,而UDP是基于非连接的。.....
2022-08-16 14:23:12 235
原创 python(47): 多线程多进程应用-批量造数据小结
1.2 写进多个dbf文件,每个dbf文件关联两个sql文件-关联列为1.3的累加列1.3 dbf文件两列全局唯一并累加1.4 sql文件三列全局唯一并累加。
2022-08-11 11:39:01 637
转载 为什么要用where 1=1
代码中为什么要在sql语句后面加一个看似多余的where 1=1 ?先来看一段代码<select id="queryBookInfo" parameterType="com.ths.platform.entity.BookInfo" resultType="java.lang.Integer"> select count(id) from t_book t where 1=1<if test="title !=null and title !='' "> AND ti
2022-04-12 11:16:10 281
原创 python(39): 异常处理try...except…finally的执行规则
try…except…finallyfinally的功能:不管try中的代码是否有异常,最终都会调用finally中的代码finally可以结合try...except,try...except...else使用,也可以仅有try和finally。1. 一定要避免在finally中编写return,raise等会终止函数的语句。2. try中已经有return 还执行finally吗?...
2022-04-12 10:37:08 1811
原创 python(38): pip在线/离线安装,not a supported *on this platform,查找可支持的库版本
方法1:win32常用:import pip;print(pip.pep425tags.get_supported())amd64常用:import pip._internalprint(pip._internal.pep425tags.get_supported())或import pip._internal.pep425tags或import wheel.pep425tags as w方法2:
2022-04-01 17:33:35 2144
原创 python(37): json操作
JSON在python中分别由list和dict组成。这是用于序列化的两个模块:json: 用于字符串和python数据类型间进行转换 pickle: 用于python特有的类型和python的数据类型间进行转换Json模块提供了四个功能:dumps、dump、loads、loadpickle模块提供了四个功能:dumps、dump、loads、loadjson dumps把数据类型转换成字符串 dump把数据类型转换成字符串并存储在文件中 loads把字符串转换成数据类型 load..
2022-03-31 16:39:05 2542
原创 pytest(13): 钩子函数
pytest钩子函数参考:pytest文档70-Hook钩子函数完整API总结 - 上海-悠悠 - 博客园API Reference — pytest documentation
2022-02-25 19:47:27 1342
原创 pytest(12): 三种参数化方案
pytest.fixture() 使用 fixture 传 params 参数实现参数化 @ pytest.mark.parametrize 允许在测试函数或类中定义多组参数,在用例中实现参数化 pytest_generate_tests 允许定义自定义参数化方案或扩展。参考:pytest文档69-Hook函数之参数化生成测试用例pytest_generate_tests - 上海-悠悠 - 博客园How to parametrize fixtures and test funct
2022-02-25 19:39:34 2337
原创 算法(2):排序算法-快速-归并-计数
快速排序是一种非常高效的排序算法,采用 “分而治之” 的思想,把大的拆分为小的,小的拆分为更小的。其原理是,对于给定的记录,选择一个基准数,通过一趟排序后,将原序列分为两部分,使得前面的比后面的小,然后再依次对前后进行拆分进行快速排序,递归该过程,直到序列中所有记录均有序。步骤:分解--递归--合并设当前待排序序列为R[low:high],其中low ≤ high,如果待排序的序列规模足够小,则直接进行排序,否则分3步处理。1、分解在R[low:high]中选定一个元素R[pivot],以此
2022-02-10 18:35:05 149
转载 Redis缓存设计及常见问题
Redis缓存设计及常见问题 缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常应用的开发至关重要。下面会介绍缓存使用技巧和设计方案,包含如下内容:缓存的收益和成本分析、缓存更新策略的选择和使用场景、缓存粒度控制法、穿透问题优化、无底洞问题优化、雪崩问题优化、热点key重建优化。缓存的收益和成本分析 下图左侧为客户端直接调用存储层的架构,右侧为比较典型的缓存层+存储层架构。缓存加入后带来的收益和成本。收益:①加速读写:因为缓存通常都是全内存的,而存储层通常读..
2022-02-08 16:42:30 224
redis做后台缓存方案,缓存数据库数据,数据一致性怎么实现?
2021-07-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人