/usr/bin/python3
和/usr/bin/python3m
可执行文件之间有什么区别?
我在Ubuntu 13.04上观察它们,但Google建议它们也存在于其他发行版中。
这两个文件具有相同的md5sum,但似乎不是符号链接或硬链接;这两个文件具有ls -li
返回的不同inode编号,而测试find -xdev -samefile /usr/bin/python3.3
不会返回任何其他文件。
有人问过similar question on AskUbuntu,但我想了解更多有关这两个文件之间差异的信息。
答案 0 :(得分:92)
归功于chepner,指出我已经有解决方案的链接。
Python实现可以在文件名中包含其他标志 标签酌情。例如,在POSIX系统上,这些标志会 也有助于文件名:
- with-pydebug(flag:d)
- with-pymalloc(flag:m)
- with-wide-unicode(flag:u)
通过PEP 3149。
具体关于m
标志,这就是Pymalloc:
Pymalloc,一个由Vladimir编写的专用对象分配器 Marangozov,是Python 2.1中添加的一项功能。 Pymalloc的意图是 比系统malloc()更快,并且内存开销更少 用于Python程序的典型分配模式。分配器使用 C的malloc()函数用于获取大型内存池然后实现 来自这些池的较小内存请求。
最后,这两个文件可能在某些系统上被硬链接。虽然这两个文件在我的Ubuntu 13.04系统上具有不同的inode编号(因此是不同的文件),但是comp.lang.python post from two years ago显示它们曾经被硬链接。