python、java、c、go执行速度对比

java、c、python、go的运算速度对比

python版本

NUM = 111181111   # 这是素数, 因此在循环结束前不会退出

def is_prime(n):
    i = 2
    while i < n:
        if n % i == 0:
            return False
        i += 1
    return True



if __name__ == '__main__':
    is_prime(NUM)

测试的方式是使用linux的time命令,时间统一用total统计,比如统计go语言执行时间的命令如下:

➜  Desktop time ./speed
./speed  1.01s user 0.02s system 97% cpu 1.048 total

统计java如下:

➜  src git:(master) ✗ time java eg.Speed
java eg.Speed  1.14s user 0.05s system 95% cpu 1.256 total

其他几个代码的版本如下:

java版本

package eg;

public class Speed {
    static final long NUM = 111181111L;

    public boolean isPrime(long n) {
        long i = 2L;
        while (i < n) {
            if (n % i == 0) {
                return false;
            }
            i += 1;
        }
        return true;
    }


    public static void main(String[] args) {
        Speed s = new Speed();
        s.isPrime(NUM);
    }
}

c版本

int is_prime(long n) {
    long i = 2L;
    while (i < n) {
        if (n % i == 0) {
            return 0;
        }
        i += 1;
    }
    return 1;
}

int main() {
    const long NUM = 111181111L;
    is_prime(NUM);
}

go版本

package main

func is_prime(n int) bool {
    /* 声明局部变量 */
    var i = 2
 
    for i < n {
        if n % i == 0 { 
            return false
        }
        i++
    }
    return true
    }
func main() {
    const NUM int = 111181111
    is_prime(NUM)
}

最终结果统计如下:

语言执行时间(total)秒
python 2.7.1311.256
python 3.7.011.462
java 1.8.0_121 HotSpot1.256
c (Apple LLVM version 10.0.0)1.069
go 1.8.11.048

结论

go和c最快,java略慢,python2与python3速度差不多,但比前面三种语言慢10倍。原因我也查了一下,
简单来说是因为2点:
1.Python等动态类型语言,在执行每一个简单的操作时都需要大量的指令才能完成(包括做类型判断,不同类型找出各自的方法,执行不同的指令);
2. C语言和Python的数据结构和算法不同.

作者:ThomasYoungK 链接:https://www.jianshu.com/p/d60eff598aa0 来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和图的邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法: 算法设计:研究如何将解决问题的步骤形式化为一系列指令,使得计算机可以执行以求解问题。 算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生唯一的确定输出。 算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界法等。 算法分析:通过数学方法分析算法的时间复杂度(运行时间随数据规模增长的速度)和空间复杂度(所需内存大小)来评估其效率。 学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
### 回答1: Hi! I'm interested in knowing which one is more efficient for web development, Java or Python. Can you help me with that? Of course! Both Java and Python are popular programming languages and have their own advantages when it comes to web development. Java is a statically typed language, which means that the data type of a variable is known at compile time. This can lead to improved performance and reduced errors. On the other hand, Python is dynamically typed, which makes it easier to write code quickly and with fewer lines of code. This can lead to increased productivity and faster development times. In terms of web development, Java is often used for building enterprise-level applications, while Python is used for building more lightweight, dynamic websites. Both languages have a wide range of web frameworks, such as Spring and Django, that can help make web development easier and more efficient. Ultimately, the choice between Java and Python will depend on your specific needs and the type of web development project you are working on. If you need to build a large, complex application, Java might be the better choice, while if you need to build a small, simple website, Python could be the way to go. ### 回答2: JavaPython都是目前非常流行的编程语言,它们在Web开发方面都有其独特的优势和特点。 首先,就开发效率而言,Python通常被认为是一种更高效的语言。Python的语法简洁明了,支持面向对象编程,而且有丰富的第三方库和框架可供使用。例如,Django和Flask是Python中常用的Web开发框架,它们提供了很多现成的功能和工具,可以快速地构建Web应用程序。此外,Python还有很多其他的功能库,如爬虫库Scrapy和数据分析库Pandas,可以大大提高开发效率。 相比之下,Java 在Web开发方面可能相对繁琐些。Java的语法相对复杂,需要更多的代码量来完成相同的功能。但是,Java有着强大的跨平台能力和稳定性,被广泛应用于企业级应用开发。Java的主要Web开发框架有Spring和JavaServer Faces (JSF)等,它们提供了很多功能和工具,可以支持大型复杂的企业应用。 总的来说,Python在简单的Web应用或小型项目中的开发效率更高,而Java在大型企业级应用的开发上更为适合。开发人员可以根据项目的规模和需求来选择合适的语言。 但需要注意的是,开发效率并不是衡量语言好坏的唯一标准。在选择编程语言时,还需要考虑到项目的可扩展性、性能、安全性等方面的需求。同时,个人的技术背景和偏好也是决定选择的重要因素。 ### 回答3: JavaPython作为两种常用的编程语言,都可以用于web开发。但是它们在开发效率方面有一些不同。 首先,Python在语法上比Java更简洁。Python的语法清晰易懂,代码量较少,开发人员可以更快速地完成开发任务。此外,Python还有丰富的库和框架,如Django和Flask,可以帮助开发人员更快地构建web应用程序。 相比之下,尽管Java的语法相对复杂一些,但它也有很多成熟的框架,如Spring和Hibernate,可以大大简化开发。Java还有很多强大的工具和插件,可以提高开发效率。此外,Java是一种静态类型语言,编译检查更加严格,可以减少潜在的错误。 其次,Java的性能比Python更好。Java是编译型语言,而Python是解释型语言,执行效率上Java更占优势。对于需要处理大量数据或高并发的web应用,Java更适合。然而,对于小型项目或快速原型开发,Python更具优势。 最后,就学习曲线而言,Python相对来说更容易上手。初学者可以很快地掌握Python的基本语法,并进行简单的web开发。而Java需要对面向对象思想有一定的了解,并且需要学习一些复杂的语法和概念。 总的来说,JavaPython在web开发效率方面有各自的优势。Python适用于快速原型开发和小型项目,开发速度较快;而Java适用于大型项目和对性能要求高的应用,开发效率相对较高。具体选择哪种语言,应根据具体的项目需求、开发团队的技术能力和偏好来决定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值