2012-11-21 52 views
3

我知道如何用Python进行编程,但我也对学习C++感兴趣。我听说它比Python以及我正在编写的程序快得多,我宁愿它们尽可能快速和高效地运行。我知道很多来自编写优秀的代码,但我也想知道是否使用其他语言(如C++)会有所帮助。Internet连接速度与HTTP请求的编程语言速度?

虽然我在思考这个问题,但我意识到由于我的大部分程序主要使用互联网(例如在实施Google API并使用他们的信息向其他网站提交数据),那么语言的速度如果我的互联网连接的速度总是相对相同,则无关紧要。我有两种连接到互联网的方式:Selenium(或某种自动浏览器)用于需要浏览器的内容,以及HTTP请求。

即使我的程序的主要焦点在互联网上,我会看到python和另一种语言之间有多大差异?

谢谢。

+13

总之一句话:零。 Python对于HTTP请求来说足够快(除此之外,无论如何都是本地实现的)。为数百个用户同时服务的整个内容管理系统是用脚本语言编写的。 – Damon

+0

非常感谢! – jacob501

+2

每个人都希望他们的程序尽可能快速和高效地运行。但是你还需要考虑程序是如何轻松编写/维护的,以及避免错误的最佳方法等。 –

回答

2

方案

主要好处,你会从使用被编译成机器代码,你可以做很多字节和位魔法的语言得到。比方说,修改图像数据,转换音频,分析基因组序列数据库的索引。

典型任务

为您服务通常,如果一个完全不同的排序问题网页的页面:你会被加载从硬盘上的资源,直接为他们服务,如果它的图像或声音,或你会被执行不同文本资源上的转换步骤,直到它成为最终的HTML文档。后者将使用模板引擎,数据库查询等。

如果你看到这一点,你可以看到大多数的东西,比如说90-99%都是非常高级的东西 - 在Python中,你将使用一个被许多用户优化的API来获得最佳性能(含义:时间和空间)。 “打开文件”在C中的速度几乎与Python中的速度一样快,所以从中读取并将其提供给某个Socket。在C++中转换文本数据可能会稍微快一点,但是它在Python中,但是它有多快呢?用户很可能愿意等200ms,是吗?这是一个很好的高级模板引擎来转换一些文本的时间。

什么C++和Python可以为你做

一个典型的Python web的服务更快捷地编写和易于部署,然后用C++编写的服务器。如果你使用在C++中执行它,你首先需要处理套接字和连接 - 对于那些使用现有的库或编写自己的处理。如果你使用现有的库(我强烈建议),你基本上不会做任何不同的事情,那么Python就会做。如果你写自己的处理,你有许多,许多你可以做错的低级别的事情,将烧毁你想要的表现。不,那是不是的一个选项。

如果您需要速度,并且Python和服务器和模板框架不够,您应该重新考虑您的架构方法。然后看看c10k-problem并用C编写小部分代码(同样参见this c10k very hot topic)但是我看不到很多理由不使用像Python这样的高级语言,如果您只是在中等规模的应用中寻找性能,复杂的网络服务应用程序。

摘要:不同的

如果你只是从提供服务的硬盘驱动器的文件,我猜你的Python程序甚至会更快那么你的手工制作的C++ - 服务器。如果你使用用C或C++编写的框架,并且只是放在你的静态页面中,那么我猜你得到了一个类似Python的2-5倍的提升。再说一次,如果你的网络应用程序稍微复杂一些,然后服务静态内容,我估计这种差别会很快消失,你最多可以获得1-2倍的速度增益。

这不是所有关于速度...关于C++和Python的另一个区别

一个说明人们不应该忘记:由于C++是真正编译而不是动态的Python中,你会收获很多静态误差使用Python分析。编写正确的代码总是很困难,但是可以用C++和Python来完成,其中测试静态分析 - 后者在C++(我的观点)中更简单。如果这对你来说是一个问题,你可能会再想一想,但你问速度。