所以我正在阅读关于内存对齐的一些文章(以及关于StackOverflow的几个问题),我理解为什么这样的结构:
df.names.str.split(r'\s*[\[\{\(]').str[0]
0 City1
1 City2
2 City with a Space
Name: names, dtype: object
将有填充。 另外很明显,如果处理器只能从对齐的偏移中读取,则来自未对齐的存储器的提取会更慢。
但为什么处理器只能从对齐的内存中读取?为什么它不能只从随机地址读取数据?你知道,来自随机存取存储器......
答案 0 :(得分:0)
我取决于处理器。某些处理器根本不允许未对齐的访问。其他处理器可以,但它往往会更慢。
在您的示例中(如果字段是打包的并且允许对齐,则如果处理器尝试读取i,则通常需要从内存中取出来获取它。
某些处理器会利用多次访问的性能来检索未对齐的数据。其他人根本不允许。
答案 1 :(得分:0)
所以我进一步挖掘并发现this post。 这是我正在寻找的答案。