- 主题:Python 的标准模块 array 是不是内存连续的
【 在 cum 的大作中提到: 】
: new出来的内存是否连续难道不是基于os的内存分配策略?
: 虚拟内存地址当然是连续的,物理内存就不一定了。
python数组这里的连续很可能不是这个意思,
多维数组的连续, 一直就有C布局和F(Fortran)布局的区分,
也就是二维数组线性化为一维线性空间如果展开的问题, C是横展开, 而F(fortran)选择的是列展开。
也就是前者(0,0)和(0,1)是相邻着的, 或者(0,0)和(1,0)是内存相邻着的。
如果数组比较大, 尤其大到CPU的cache不命中, 不同布局对性能是有一定的影响的。
--
FROM 124.126.2.*
【 在 echiz 的大作中提到: 】
: 不是说你忽悠,是开这课的人。
: 当年学数据结构就一脑袋问号,等想明白数据结构讲的是什么的时候,我就纳闷了,为啥数据结构的课要在微机原理和操作系统之前开?
: 现在更离谱,拿java和c#讲数据结构不说,还要拿python讲.......
: ...................
数据结构+算法, 是现代计算机的基石,
数据结构是算法的食材, 一顿大餐, 需要大师傅(厨师)的算法和恰当的食材(数据结构)
但是, 食材也得落地,画出来的饼,鱼缸里只能看的鱼,是不行的。
目前的计算机体系CPU+Memory的冯诺依曼结构, 落地到内存也是必然选择。
--
FROM 124.126.2.*
【 在 easior 的大作中提到: 】
: 老外的书中提到:Python 的 list 也是基于数组的
: 看起来你的 Python 源代码非常熟悉
: 想问一下:老外的说法是正确的嘛?
: ...................
看名字它也不是数组啊, list就是list,
数组是 array 和 ndarray。
--
FROM 124.126.1.*