当前位置: 首页 > news >正文

社区门户网站规范化建设网站设计论文总结

社区门户网站规范化建设,网站设计论文总结,wordpress电影豆瓣,深圳我的网站听说google出品的go语言也是系统开发中常用的,性能到底怎么样,还是老办法,让DeepSeek写个程序跑一下,基于以往的经验,直接让它同时编写有缓冲和无缓冲版本。 package mainimport ("bufio""fmt"&qu…

听说google出品的go语言也是系统开发中常用的,性能到底怎么样,还是老办法,让DeepSeek写个程序跑一下,基于以往的经验,直接让它同时编写有缓冲和无缓冲版本。

package mainimport ("bufio""fmt""os""sort""time"
)// 无缓冲版本
func unbufferedSort(filename string) error {lines, err := readLines(filename)if err != nil {return err}sort.Strings(lines) // Go标准库的优化排序for _, line := range lines {fmt.Println(line) // 无缓冲直接输出}return nil
}// 带缓冲版本 (默认4MB缓冲区)
func bufferedSort(filename string, bufferSize int) error {lines, err := readLines(filename)if err != nil {return err}sort.Strings(lines)// 创建缓冲写入器writer := bufio.NewWriterSize(os.Stdout, bufferSize)defer writer.Flush()for _, line := range lines {_, err := writer.WriteString(line + "\n")if err != nil {return err}}return nil
}// 通用文件读取函数
func readLines(filename string) ([]string, error) {file, err := os.Open(filename)if err != nil {return nil, err}defer file.Close()var lines []stringscanner := bufio.NewScanner(file)for scanner.Scan() {lines = append(lines, scanner.Text())}return lines, scanner.Err()
}func main() {if len(os.Args) < 3 {fmt.Println("Usage:")fmt.Println("  sort_lines <filename> <mode> [bufferSize]")fmt.Println("Modes: unbuffered, buffered")os.Exit(1)}filename := os.Args[1]mode := os.Args[2]start := time.Now()var err errorswitch mode {case "unbuffered":err = unbufferedSort(filename)case "buffered":bufferSize := 4 * 1024 * 1024 // 默认4MBif len(os.Args) > 3 {_, err = fmt.Sscanf(os.Args[3], "%d", &bufferSize)if err != nil {fmt.Printf("Invalid buffer size: %v\n", err)os.Exit(1)}}err = bufferedSort(filename, bufferSize)default:fmt.Println("Invalid mode")os.Exit(1)}if err != nil {fmt.Printf("Error: %v\n", err)os.Exit(1)}elapsed := time.Since(start)fmt.Fprintf(os.Stderr, "Processing time: %s\n", elapsed)
}

编译执行

go/bin/go build -o gosort sort_lines.go
time ./gosort varchar.txt buffered > /dev/null
Processing time: 3.497140997sreal    0m3.554s
user    0m0.621s
sys     0m0.366s
time ./gosort varchar.txt unbuffered > /dev/null
Processing time: 3.720407838sreal    0m4.603s
user    0m0.755s
sys     0m0.474s
time ./gosort varchar.txt buffered > vcc.txt
Processing time: 3.798995799sreal    0m3.855s
user    0m0.681s
sys     0m0.301stime ./gosort varchar.txt buffered 65536 > vcc.txt
Processing time: 3.891683917sreal    0m3.959s
user    0m0.627s
sys     0m0.380stime ./gosort varchar.txt unbuffered > vcc.txt
^Creal    1m26.182s
user    0m3.305s
sys     0m7.983s
nm -D gosort >go.h
nm: gosort: no symbols
nm gosort >go.h

如上所示,带缓冲的版本性能尚可,缓冲区大小影响不大。无缓冲版本只能用离奇来表示,而且go语言默认编译就是优化,也没啥可以调优的。
与Zig语言一样,编译出的是静态版本,看不出调用了哪些系统库函数。

后记
张泽鹏先生提醒我是否在WSL上测试,根据以往的经验WSL的读写性能比较糟糕
改用windows版本,比较正常
C:\d>gosort varchar.txt buffered > vcc.txt
Processing time: 600.3093ms

C:\d>gosort varchar.txt unbuffered > vcc.txt
Processing time: 2.4327929s

http://www.dtcms.com/a/439922.html

相关文章:

  • 网站建设与维护学什么科目海珠建网站公
  • 新网 网站备案页面设计span
  • xampp本地搭建网站泰安人才网公司
  • 网站维护费南海网站制作
  • 做网站需要绑定电脑ip吗网站建设工具哪个好用
  • ps做产品的网站张家口职教中心计算机网站建设
  • Java基础-API复习知识1
  • 门户网站开发难点项目经理证书怎么考
  • 网站运营策划书如何做酒店网站设计
  • 许昌住房和城乡建设部网站自适应网站cms
  • 北京企业网站开发平面广告怎么做
  • 手机端网站开发书籍网站搭建南京
  • 广安门内网站建设WordPress播放h265
  • 外贸网站推广平台xd网页设计教程
  • 空滤网站怎么做站长工具搜索
  • 怎么做网站的轮播图单县建设局网站
  • 东莞有哪些好的网站建设公司建设学院网站的意义
  • 通过apache建设网站张家港早晨网站建设
  • 如何搜索网站的内容物流企业
  • 坑梓网站建设咨询4233网页游戏大全
  • 专业网站优化公司报价哪个网站可以做头像
  • 健康实训室建设介绍:整合先进设备与课程,赋能健康领域实训教学升级
  • 网站安全建设模板下载传媒公司取名 创意
  • 唐山网站建设价格中国室内设计师
  • 网站建设专业简介张家港网站建设模板
  • 做公司网站怎么推广沧州北京网站建设
  • h5制作工具网站外贸自建站有哪些
  • 安顺北京网站建设德国室内设计联盟
  • 搭建网站的价格wordpress 博客页面
  • 湖南省建设安监局官网站怎样制作网络平台