Python的速度是否足够,还是应该使用Pyrex?

时间:2012-01-03 03:11:25

标签: python django pyrex

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

4 个答案:

答案 0 :(得分:4)

真的,你能知道(IMO)的唯一方法就是尝试并查看。如果您开始遇到性能问题,那么是时候进行概要分析,看看它是否是代码执行,或者 else 导致延迟。

就个人而言,我认为你没有问题。但话又说回来,这取决于你的网络服务到底在做什么。

答案 1 :(得分:4)

很多人使用Python来实现Web服务(因此存在Django),并为其目的找到足够低的延迟。所以从某种意义上说,答案是微不足道的“是”。

要正确回答需要更多信息和学习,并且不适合SO的格式。对于初学者来说,你需要知道“足够快”的速度有多快(甚至为此,你需要弄清楚由于其他因素(例如网络延迟)会有多少延迟。它显然取决于你的实现实际上是什么;如果您的所有程序都是从数据库中获取记录,那么无论您使用纯Python还是C. OTOH,代码执行都可能因数据库和网络延迟而相形见绌,如果您正在解决任意大的NP难计算问题,Python可能会开始看起来有点不那么有吸引力了。 OTOOH,如果你解决实现计算问题真的很棘手,Python可能会大大减少你完成服务所需的时间,而慢速服务通常比不存在服务更好。

由于没有实际的具体知识,用Python编写的其他Web服务的存在让我觉得你可能在Python中很好,你应该去做,然后看看是否存在任何性能瓶颈受益于Pyrexed。通常会有“过早优化是所有邪恶的根源”的考虑因素;在您编写任何代码之前,为时尚早考虑优化。只要你的方法永远不够快就不明显,那就选择最简单的实现并在以后加快速度。

答案 2 :(得分:1)

如果您考虑将您尚未编写的代码翻译成C语言,那么您也可以从一开始就在C语言中编写Web服务。这将使您获得尽可能低的延迟。

答案 3 :(得分:1)

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

其次,使用像Cython这样的东西肯定是你可以用Python编写你的代码,如果它不够快,那么改变并不是你需要的加速。

在您知道存在问题时进行优化。