我正致力于提高python程序的性能,我想知道是否有办法通过禁用数组边界检查来提高性能?我知道Pascal的某些版本允许你这样做。 python有没有这样的功能?
我知道Python并不是为高性能而设计的,但我想知道以这种方式改善性能是否可行;否则是的,我知道切换到C会更快。
答案 0 :(得分:3)
对于普通名单,没有。但是,您可以使用Python C API在C或C ++中创建自己的数据结构/函数(请参阅Extending Python with C or C++),您可以使用它来实现dangerous_unchecked_list
数据结构,其行为类似于常规列表但没有这个检查(或者需要在内部绕过边界检查的其他一些更高级别的数据结构)。对于无法在Python中以最佳方式实现的大型操作,您还可以使用进程间通信(IPC) - 而不是C API - 来调用非Python实现。
但是,在走这条路之前,你应该确保这确实是性能瓶颈。您可能会发现还有其他领域可以获得更大的胜利,例如通过使用更好的算法,选择其他功能或数据结构来实现本地实际上是性能瓶颈,通过预先计算和/或缓存信息,或者通过某些其他方式。
答案 1 :(得分:3)