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

Python的速度够快吗,还是应该使用Pyrex?,python,django,pyrex,Python,Django,Pyrex,信息: 我用的是Django。 问题: Python的速度是否足以提供低延迟web服务,或者我应该使用Pyrex将我的函数转换为C吗?真的,您了解IMO的唯一方法就是尝试一下并查看。如果您开始遇到性能问题,那么是时候分析一下,看看是代码执行还是其他原因导致了延迟 就我个人而言,我认为你不会有任何问题。但是,这又取决于您的web服务到底在做什么。如果您考虑将尚未编写的代码翻译为C,那么您最好从一开始就用C编写web服务。这将使您获得尽可能低的延迟 很多人确实使用Python来实现web服务,因此D

信息: 我用的是Django。 问题:
Python的速度是否足以提供低延迟web服务,或者我应该使用Pyrex将我的函数转换为C吗?

真的,您了解IMO的唯一方法就是尝试一下并查看。如果您开始遇到性能问题,那么是时候分析一下,看看是代码执行还是其他原因导致了延迟


就我个人而言,我认为你不会有任何问题。但是,这又取决于您的web服务到底在做什么。

如果您考虑将尚未编写的代码翻译为C,那么您最好从一开始就用C编写web服务。这将使您获得尽可能低的延迟

很多人确实使用Python来实现web服务,因此Django根本不存在,并且发现它对于他们的目的来说足够低的延迟。因此,从某种意义上说,答案是微不足道的“是”

要正确回答这个问题需要更多的信息和研究,这并不适合SO的格式。对于初学者来说,您需要知道速度有多快才算足够快,即使如此,您也需要计算出由于其他因素(如网络延迟)会导致多少延迟。这显然也取决于你的实现是什么;如果您的程序所做的只是从数据库中获取记录,那么无论您使用纯Python还是C.OTOH,代码的执行可能会因数据库和网络延迟而相形见绌。如果您正在解决任意大的NP难计算问题,Python可能会开始变得不那么吸引人。OTOOH,如果您正在解决非常棘手的实现计算问题,Python可能会大大减少您获得服务所需的时间,而且速度慢的服务通常比不存在的服务更可取


由于没有实际的具体知识,使用Python编写的其他web服务的存在使我直觉地认为,使用Python可能会很好,您应该去做,然后看看是否有任何性能瓶颈可以从Pyrex中受益。通常的过早优化是所有邪恶路线的根源;在编写任何代码之前考虑优化都为时过早。只要你不盲目地认为你的方法永远都不够快,那就用最简单的实现,以后再加快速度。

据我所知,你无论如何都不想使用Pyrex。您希望使用,因为它是同一事物的更高级版本

其次,使用Cython之类的东西的好处当然是,您可以用Python编写代码,如果速度不够快,那么所做的更改就不会太大,无法获得所需的加速


当你知道有问题时,要进行优化。

如果不知道速度有多快就很难回答。此外,我不认为web服务中的大部分延迟通常是由于代码执行造成的。两点:1显著的延迟来自DB查询2您可能需要PyPy,一个CPU密集型任务。当我们谈到这一点时:看到今天的Haskell太不一样了,没有明确的需求就无法学习。