我有一个本地库,其自然界面将涉及传递可能大的数字.我预计大约一半是<32位; 另一季度<64位; 接下来的第八个<128位 - 依此类推,没有固定的长度限制.
如果我可以约束值以适合单个寄存器,那么PyLong_FromUnsignedLongLong()和PyLong_AsUnsignedLongLong()将是合适的.
PyLong_FromString()克服了这一点 - 但需要中间表示的不必要的代价._PyLong_FromByteArray()和_PyLong_AsByteArray()减轻了这个成本(通过简化这个中间表示),但是前导下划线让我想知道这是否会导致可移植性问题.
在longintrepr.h中,我发现了struct _longobject ...它暗示它可能是一种直接与内部表示交互的方式......虽然没有关于这种结构的详细文档仍然是一个障碍.
什么方法将导致Python和库之间的最佳吞吐量?有没有我忽略过的文件?