review-questions
questions:
python字典中items()和iteritems()的区别
items()返回的是列表对象,而iteritems()返回的是迭代器对象
print dic.items() #[('a', 'hello'), ('c', 'you'), ('b', 'how')] print dic.iteritems() #<dictionary-itemiterator object at 0x020E9A50> 深究:iteritor是迭代器的意思,一次反悔一个数据项,知道没有为止 for i in dic.iteritems(): print i 结果:('a', 'hello') ('c', 'you') ('b', 'how')
python是如何进行内存管理的?
垃圾回收机制
-- 引用计数 -- Python为每个对象维护一个引用计数 -- 当引用计数为0的 代表这个对象为垃圾 -- 标记清除 -- 解决孤立的循环引用 -- 标记根节点和可达对象 -- 不可达视为垃圾 -- 分代回收 -- 解决标记清除的效率问题 -- 0代 1代 2代 -- 阈值 (700,10,10) -- 当调用c的接口开辟内存和销毁内存的差值为700的时候出发0代回收 -- 0代触发10次 触发1代回收 -- 1代触发10次 触发2代回收 -- 每次回收结束 没有被回收的对象放入下一代
关于python程序的运行性能方面,有什么手段提升性能?
1、使用多进程,充分利用机器的多核性能 2、对于性能影响较大的部分代码,可以使用C或C++编写 3、对于IO阻塞造成的性能影响,可以使用IO多路复用来解决 4、尽量使用Python的内建函数 5、尽量使用局部变量