首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有真实的例子来说明python的低效?

有没有真实的例子来说明python的低效?
EN

Stack Overflow用户
提问于 2013-06-12 16:38:44
回答 3查看 1.8K关注 0票数 7

人们总是说Python不如C/ C ++、Java等其他语言那么高效,也建议用C编写瓶颈部分。但我从来没有遇到过这样的问题,也许是因为大多数时候它是你解决问题的方式,而不是语言的效率。

有没有人能说明一些真实的情况?一些简单的代码就很棒了。

EN

回答 3

Stack Overflow用户

发布于 2013-06-12 16:53:50

在SO上已经有了一个答案:Is Python faster and lighter than C++?。它引用了我想在这里首先引用的the Computer Languages Benchmarks Game

因此,Python (当不使用内置C代码时)在进行严重计算时要慢得多。

票数 6
EN

Stack Overflow用户

发布于 2013-06-12 17:03:45

使用插入排序的实际比较,如您所见,C语言的速度要快得多。请注意,这些都是1对1的尝试,在现实世界中,您只需使用Python的排序,它使用https://en.wikipedia.org/wiki/Timsort,效率要高得多。结果:

Python

代码语言:javascript
运行
复制
real  0m0.034s
user  0m0.028s
sys   0m0.008s

C

代码语言:javascript
运行
复制
real  0m0.003s
user  0m0.000s
sys   0m0.000s

Python中的第一个

代码语言:javascript
运行
复制
#!/usr/bin/python

a = [16, 7, 4, 10, 18, 15, 6, 12, 13, 5, 11, 14, 17, 8, 2, 9, 19, 3, 1]
print 'Unsorted: %s' % a

def insertion_sort(a):
    for j in range(1, len(a)):
        key = a[j]
        i = j - 1
        while i >= 0 and a[i] > key:
        a[i+1] = a[i]
        i = i - 1
    a[i+1] = key
    return a

# execute the sort
print 'Sorted: %s' % insertion_sort(a)

C语言中的第二个

代码语言:javascript
运行
复制
#include <stdio.h>
#include <stdlib.h>

/*
    Compile with: 

    cc insertion-sort.c -o insertion-sort
*/
int main(int argc, char **argv) 
{
   int a[20] = {16, 7, 4, 10, 18, 15, 6, 12, 13, 5, 11, 14, 17, 8, 2, 9, 20, 19, 3, 1};
   int i, j, key;
   int len = 20;

   printf("Unsorted: [");
   for ( i = 0; i < len; i++ ) {
       printf(" %d ", a[i]);
   }
   printf("]\n");

   for ( j = 0 ; j < len ; j++ ) 
   {
       key = a[j];
       i = j - 1;
       while ( i >= 0 && a[i] > key ) {
           a[i + 1] = a[i];
           i = i - 1;
       }    
       a[i + 1] = key;
   }

   printf("Sorted: [");
   for ( i = 0; i < len; i++ ) {
       printf(" %d ", a[i]);
   }
   printf("]\n");
}
票数 2
EN

Stack Overflow用户

发布于 2013-06-12 16:44:39

没有一组特定的情况下C或C++会胜出。几乎所有用C或C++编写的占用大量CPU的代码的运行速度都要比同等的Python代码快许多倍。

如果您没有注意到这一点,原因很简单:对于在Python中必须解决的问题,性能从来都不是问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17061118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档