python面试1000题之7-8
7 Python是如何进行内存管理的?
http://developer.51cto.com/art/201007/213585.htm
Python引用了一个内存池(memory pool)机制,即Pymalloc机制(malloc:n.分配内存),用于管理对小块内存的申请和释放
内存池(memory pool)的概念:
当 创建大量消耗小内存的对象时,频繁调用new/malloc会导致大量的内存碎片,致使效率降低。内存池的概念就是预先在内存中申请一定数量的,大小相等 的内存块留作备用,当有新的内存需求时,就先从内存池中分配内存给这个需求,不够了之后再申请新的内存。这样做最显著的优势就是能够减少内存碎片,提升效率。
内存池的实现方式有很多,性能和适用范围也不一样。
python中的内存管理机制——Pymalloc:
python中的内存管理机制都有两套实现,一套是针对小对象,就是大小小于256bits时,pymalloc会在内存池中申请内存空间;当大于256bits,则会直接执行new/malloc的行为来申请内存空间。
关于释放内存方面,当一个对象的引用计数变为0时,python就会调用它的析构函数。在析构时,也采用了内存池机制,从内存池来的内存会被归还到内存池中,以避免频繁地释放动作。
8 解释一下python的and-or语法
http://www.kuqin.com/diveinto_python_document/apihelper_andor.html
与C表达式 bool ? a : b类似,但是bool and a or b,当 a 为假时,不会象C表达式 bool ? a : b 一样工作
本文首发于Python黑洞网,csdn同步跟新
python面试1000题之7-8相关推荐
- python面试1000题之4-6
4 python下多线程的限制以及多进程中传递参数的方式 python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cp ...
- python面试1000题之1-3
利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法. 正解1: def trim(s):while s[:1] == ' ':s = s[1:]whi ...
- BAT机器学习面试1000题系列(第1~305题
1 请简要介绍下SVM,机器学习 ML模型 易SVM,全称是support vector machine,中文名叫支持向量机.SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同 ...
- BAT机器学习面试1000题系列(第150~279题)
首页 博客 学院 下载 GitChat TinyMind 论坛 问答 商城 VIP 活动 招聘 ITeye CSTO 写博客 发Chat leadai的博客 RSS订阅 转 BAT机器学习面试1000 ...
- 【转】BAT机器学习面试1000题系列(1~50)
BAT机器学习面试1000题系列 整理:July.元超.立娜.德伟.贾茹.王剑.AntZ.孟莹等众人.本系列大部分题目来源于公开网络,取之分享,用之分享,且在撰写答案过程中若引用他人解析则必注明原作者 ...
- BAT机器学习面试1000题系列(详细版)
BAT机器学习面试1000题系列 置顶 2017年12月14日 15:19:15 阅读数:20913 几点声明: 1.本文的内容全部来源于七月在线发布的BAT机器学习面试1000题系列: 2.文章中带 ...
- BAT机器学习面试1000题系列(第1~60题)
本文转自: https://mp.weixin.qq.com/s?__biz=MzI4MTQ2NjU5NA==&mid=2247485444&idx=1&sn=adafa439 ...
- BAT机器学习面试1000题系列(第76~149题)
正文共43140个字,124张图,预计阅读时间:108分钟. 76.看你是搞视觉的,熟悉哪些CV框架,顺带聊聊CV最近五年的发展史如何?深度学习 DL应用 难 原英文:adeshpande3.gith ...
- 【转】BAT机器学习面试1000题系列(51~100)
BAT机器学习面试1000题系列 整理:July.元超.立娜.德伟.贾茹.王剑.AntZ.孟莹等众人.本系列大部分题目来源于公开网络,取之分享,用之分享,且在撰写答案过程中若引用他人解析则必注明原作者 ...
最新文章
- 智源博士后合作导师专访 | 曾毅:面向可持续发展的人工智能
- 各种登录源码来了!基础登录、验证码登录、小程序登录...全都要!
- 让你真正体验一次主板超频的步骤以及成功的快乐
- ROW_NUMBER() OVER() 函数用法详解 (分组排序,多例子)
- [设计模式] ------ 观察者模式和他的升级版发布订阅模式
- msgpack java lua_使用lua-cmsgpack序列化和反序列化lua对象
- 数列极差(信息学奥赛一本通-T1427)
- 大数据之-Hadoop完全分布式_集群群起_同时启动上万台集群机器---大数据之hadoop工作笔记0037
- 一年中所有节日的排列顺序_中国传统节日有哪些 按顺序排列全部
- office 打开时蹦出错误:无法读取源文件或磁盘
- 程序员眼中的中国传统文化-王阳明《传习录》21
- windows的消息传递--消息盒子
- 电脑定时执行的软件 - 定时执行专家
- 不3了也不写了....
- 一文详解!对于企业来说,商业智能BI到底有什么意义
- C# 之AutoCAD标注样式定义
- 如何使树梅派的桌面图标大小变化
- 第12章 从美国次贷危机中学到什么
- 《电子技术基础》小结
- Dev c++自带小游戏
热门文章
- GARFIELD@11-11-2004
- java 标识符_java标识符是什么
- python打印字符串全排列_Python实现全排列的打印
- 调试器工作原理--CPU软件断点/硬件断点/单步执行标识
- (93)FPGA模块例化传递参数(defparam)
- Xilinx PCIE IP核接口介绍
- ajax请求接口连不上会报错吗_服务端有异常, 导致: Ajax 请求报错 net::ERR_INCOMPLETE_CHUNKED_ENCODING...
- journalctl -xe mysql_journalctl 日志查看方法
- html 中用canvas加载图片,【实例】使用canvas缓缓加载一个图片到web页面中
- java file list listfiles,Java File listFiles()用法及代码示例