美文网首页
2019-01-09python与go线程性能简单对比

2019-01-09python与go线程性能简单对比

作者: cuiyao50 | 来源:发表于2019-01-09 12:42 被阅读0次

python与go线程性能简单对比

2018年05月04日 18:11:51 疯琴 阅读数:690

昨天看到一篇关于python多线程公众号文章,做了简单的对比试验。用python和go做单线程1亿递减到1和两个线程各自从5千万减到1,看程序执行时间:

python一个线程:

def decrement(n):

    while n > 0:

        n -= 1

from time import perf_counter as pc

start = pc()

decrement(100000000)

print(pc() - start)

执行时间:

14.351082861999998

14.311808035000013

13.47257553399993

python两个线程:

import threading

t1 = threading.Thread(target=decrement, args=(50000000,))

t2 = threading.Thread(target=decrement, args=(50000000,))

start = pc()

t1.start()

t2.start()

t1.join()

t2.join()

print(pc() - start)

执行时间:

40.047668924999925

17.143103717999793

36.23898320300009

49.22135359899994

34.21361186399986

go一个线程:

package main

import "fmt"

import "time"

var c chan int

func decrement(n int) {

    for n > 0 {

        n -= 1

    }

}

func main() {

    start := time.Now()

    decrement(100000000)

    fmt.Println(time.Since(start))

}

执行时间:

434.60565ms

425.799923ms

421.821211ms

459.630486ms

go两个线程:

package main

import "fmt"

import "time"

var c chan int

func decrement(n int) {

    for n > 0 {

        n -= 1

    }

    c <- 0

}

func main() {

    start := time.Now()

    c = make(chan int)

    go decrement(50000000)

    go decrement(50000000)

    <-c

    <-c

    fmt.Println(time.Since(start))

}

执行时间:

51.382195ms

61.355949ms

42.02437ms

53.019678ms

38.299514ms

结论

实验环境是同一台虚拟机,python3.6.5,go1.10。

python执行结果不稳定,双线程比单线程还慢,时间大约是一倍。

go执行结果稳定,双线程比单线程快大约10倍。

go比python单线程快n倍。

相关文章

  • 2019-01-09python与go线程性能简单对比

    python与go线程性能简单对比 2018年05月04日 18:11:51 疯琴 阅读数:690 昨天看到一篇关...

  • Lock

    iOS中保证线程安全的几种方式与性能对比 dispatch_queue_set_specific和dispatch...

  • Golang高质量编程与性能调优实战

    高质量编程与性能调优实战 概述 介绍编码规范,帮助大家写出高质量程序 介绍 Go 语言的性能优化建议,分析对比不同...

  • Redis VS Memcache 区别

    网络IO模型 性能对比:(占用的核数,线程数,网络模型) 性能对比:由于Redis只使用单核,而Memcached...

  • iOS 锁的使用

    参考 demo 参考的文章:iOS开发中的11种锁以及性能对比多线程-线程安全 结论: 自旋锁性能 > 信号量 >...

  • Go的性能不如Java?

    Go的性能不如Java? 引战 今天在 知乎 上看到了一个关于 Go 和 Java 性能对比的问题,这种问题通常只...

  • iOS线程安全的锁与性能对比

    iOS线程安全的锁与性能对比 一、锁的基本使用方法 1.1、@synchronized 这是我们最熟悉的枷锁方式,...

  • iOS 线程安全 方式与性能 对比

    一、前言 线程安全 ,保持线程同步的方式各不相同,有@synchronized、NSLock、dispatch_s...

  • Go 性能说明

    Go 性能说明 根据 Go 开发团队和基本的算法测试,Go 语言与 C 语言的性能差距大概在 10%~20% 之间...

  • Go语言性能调优工具——pprof

    Go语言性能调优工具——pprof Go语言对性能要求比较高,所以内置了调优工具pprof,本文简单介绍下工具的使...

网友评论

      本文标题:2019-01-09python与go线程性能简单对比

      本文链接:https://www.haomeiwen.com/subject/hilmrqtx.html