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、尽量使用局部变量