美文网首页
go和python读写文件的效率对比

go和python读写文件的效率对比

作者: Python技术漫谈 | 来源:发表于2019-02-10 20:18 被阅读0次

对比项目

单线程顺序执行程序,在本地磁盘对文件进行读和写。

写文件

执行步骤:

  1. 向本地磁盘写1千万行文本。
  2. 记录写完的时间。

python脚本

import os
import time
file=open("temp-py.txt",'w')

sTime=time.time()
for i in range(int(round(1e8))):#
    file.write("helllo worldhelllo worldhelllo worldhelllo worldhelllo worldhelllo worldhelllo worldhelllo world\n")

file.close()

print("cost time:%d/s"%(time.time()-sTime))

go程序

package main

import (
    "bufio"
    "flag"
    "log"
    "os"
    "time"
)

func main() {
    var filePath string

    flag.StringVar(&filePath, "f", "", "-f=path/to/your/filePath")
    flag.Parse()

    if filePath == "" {
        filePath = os.Getenv("HOME") + "/temp-go.txt"
    }

    file, _ := os.Create(filePath)
    defer file.Close()

    wt := bufio.NewWriter(file)

    //写入1百万行数据,11s
    sTime := time.Now().UnixNano() / 1e6
    for i := 0; i < 1e8; i++ {
        _, err := wt.WriteString("helllo worldhelllo worldhelllo worldhelllo worldhelllo worldhelllo worldhelllo worldhelllo world\n")
        if err != nil {
            log.Println(err)
        }
    }

    wt.Flush()
    eTime := time.Now().UnixNano() / 1e6
    log.Printf("cost time:%d/ms", (eTime - sTime))
}

最后会在磁盘生成一个9.7GB的文本文件。
耗时:

  • python:48s
  • go: 27s

读文件

执行步骤:

  1. 读取前面写入的9.7GB的文本文件。
  2. 记录遍历完每一行所需要的时间。

Python脚本

import os
import time
file=open("temp-go.txt",'r')

sTime=time.time()
while file.readline():#
    pass

file.close()

print("cost time:%d/s"%(time.time()-sTime))

go程序

package main

import (
    "bufio"
    "log"
    "os"
    "time"
)

func main() {
    filePath := os.Getenv("HOME") + "/temp-go.txt"
    file, _ := os.Open(filePath)

    sTime := time.Now().Unix()
    myscan := bufio.NewScanner(file)
    for myscan.Scan() {
    }
    eTime := time.Now().Unix()
    log.Fatalf("cost time:%d/s", (eTime - sTime))

}

执行时间:

  • python:42s
  • go:27s

总结

在最简单的文件IO层面,go语言已经在性能上对python展现出了压倒性的优势,更不用说go的更厉害的goroutine高并发的特性了。


image.png

但是python的优势就是语法简洁,代码量少。

所以:如果要看程序执行效率,还是用go。如果是和人比效率,追求自动化,建议用python。

相关文章

  • go和python读写文件的效率对比

    对比项目 单线程顺序执行程序,在本地磁盘对文件进行读和写。 写文件 执行步骤: 向本地磁盘写1千万行文本。 记录写...

  • Python学习记录之:IO编程

    IO编程 文件读写 Python中文件读写语法和C兼容 读文件使用Python内置的open()函数,传入文件名和...

  • 014.Python文件读写

    Python文件读写 1. 概述 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。...

  • 第05天(异常、文本文件处理)_04

    15_设备文件的使用.go 16_文件的读写.go 17_拷贝文件.go 课堂笔记

  • python学习笔记03

    文件处理 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须...

  • python语法案例必知必会#01

    文件的读写 python中简单的文件读写案例 也可以通过 来写入新的文件 python pow函数 在python...

  • golang操作文件

    用习惯了python, 用go的文件读写,觉得还是有点别扭。先总结下来,后面用的时候,可以查看。 文件读操作 os...

  • Python 极简教程(二十五) - IO(文件读写)

    这里讲的文件读写,是由 Python 提供的最基础的文件读写,主要是对文本文件和二进制文件的读写。 如果想要操作 ...

  • 31.Python:文件读写

    IO操作与读写文件 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。不论哪种,一定...

  • Python3-文件读写

    读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,...

网友评论

      本文标题:go和python读写文件的效率对比

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