Python3测试开发面试题2
-
python的内存池机制
在Python中,内存管理是通过Python的内存管理器和C语言实现的,特别是依赖于CPython的实现。CPython使用一种名为“内存池”(memory pool)的技术来优化小对象(如小整数、短字符串等)的内存分配和释放。这种机制旨在减少内存碎片和提高内存分配的效率。
内存池的工作原理
内存分配策略:
对于小对象,Python使用一个称为“内存池”的机制。每个类型的对象(例如,小整数、短字符串等)都有自己的内存池。
当需要创建新对象时,Python首先检查相应类型的内存池中是否有可用的内存块。如果有,就直接从该内存池中分配内存,这通常比从操作系统请求新内存块要快。
如果内存池中没有可用的内存块,Python才会请求操作系统分配更多的内存到该内存池中。
内存释放:
当对象不再被引用时,Python的垃圾回收器会回收这些对象。对于小对象,这些对象会被放回各自的内存池中,以便将来重用。
这种重用机制减少了垃圾回收过程中对操作系统的内存请求次数,从而提高了程序的整体性能。
-
python数组和列表的区别
-
python常用哪些第三方库
-
dict和list的底层实现
-
python装饰器的作用和用法
-
python迭代器和生成器的使用跟区别
-
python垃圾回收机制
-
线程和进程的区别
-
什么是死锁,死锁的条件
-
如何预防死锁,避免死锁和死锁的发生检查
-
内存泄漏和内存溢出
-
多进程和多线程的应用场景
-
进程通信方式
-
进程和线程的上下文切换
-
协程
-
面相对象三大特点:封装、继承、多态
-
TCP三次握手,四次挥手的过程
-
get和post的区别
-
TCP和UDP的区别
-
一次HTTP请求的过程(输入URL到返回的全过程)
-
OSI七层模型,各层有哪些协议
-
TCP如何保证可靠传输,丢包怎么办
-
TCP如何进行拥塞控制?如何判断发生了拥塞?
-
TCP快重传如何判断丢失
-
UDP想要可靠怎么实现RUDP
-
DNS协议和作用