Python的速度够吗,还是应该用Pyrex?

-3 投票
4 回答
521 浏览
提问于 2025-04-17 09:25

信息:我在使用Django框架。
问题:Python的速度够快吗,能提供一个低延迟的网络服务,还是我应该用Pyrex把我的函数转换成C语言?

4 个回答

1

根据我的理解,你其实不想使用Pyrex。你想用的是Cython,因为它是一个更高级的版本,功能更强大。

其次,使用Cython的好处在于,你可以直接用Python写代码。如果发现速度不够快,做的改动也不会太大,就能提升性能。

只有在你确定有问题的时候,才去优化代码。

4

其实,唯一能知道的方法就是试试看。如果你开始遇到性能问题,那就该去分析一下,看看是代码执行的问题,还是其他什么原因导致的延迟。

我个人觉得你应该不会遇到什么问题。不过,这也要看你的网络服务具体在做什么。

4

很多人确实用Python来实现网络服务(所以才有Django这个框架),而且他们觉得在他们的需求下,延迟是可以接受的。所以从这个角度来看,答案可以简单地说是“可以”。

不过,要想给出一个准确的答案,需要更多的信息和研究,这其实不太适合在StackOverflow上讨论。首先,你得知道什么样的速度算是“足够快”(而且为了这个,你还得考虑其他因素,比如网络延迟)。这也显然取决于你具体的实现方式;如果你的程序只是从数据库中获取记录,那么无论你用纯Python还是C,代码执行的时间可能都比数据库和网络的延迟要短。另一方面,如果你在解决一些非常复杂的计算问题,Python可能就不那么合适了。再说,如果你在解决一些特别难实现的计算问题,Python可能会大大缩短你搭建服务所需的时间,通常来说,一个慢的服务总比没有服务要好。

虽然没有具体的知识,但看到其他用Python写的网络服务,我觉得你用Python应该没问题,你可以先试试,然后看看有没有性能瓶颈需要优化。还有一句老话:“过早优化是万恶之源”;在你甚至还没写代码的时候,就考虑优化,实在是太早了。只要不是明显觉得你的方法永远都不够快,就先用最简单的实现,之后再进行优化。

撰写回答