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

go 中指针的执行效率比较

package main
import ("fmt""time"
)
type Books struct {title stringauthor stringsubject stringbook_id int
}
func main() {start := time.Now() // 记录开始时间var Book1 Books        /* 声明 Book1 为 Books 类型 */var Book2 Books        /* 声明 Book2 为 Books 类型 *//* book 1 描述 */Book1.title = "Go 语言"Book1.author = "www.mei.biz"Book1.subject = "Go 语言教程"Book1.book_id = 6495407/* book 2 描述 */Book2.title = "Python 教程"Book2.author = "www.mei.biz"Book2.subject = "Python 语言教程"Book2.book_id = 6495700/* 打印 Book1 信息 */printBooks(Book1)/* 打印 Book2 信息 */printBooks(Book2)duration := time.Since(start) // 计算执行时间fmt.Printf("执行时间: %v\n", duration)// 记录 printBook 函数的执行时间bookStart := time.Now()/* 打印 Book1 信息(使用指针) */printBook(&Book1)/* 打印 Book2 信息(使用指针) */printBook(&Book2)bookDuration := time.Since(bookStart)fmt.Printf("printBook 函数执行时间: %v\n", bookDuration)
}func printBooks( book Books ) {fmt.Printf( "Book title : %s\n", book.title)fmt.Printf( "Book author : %s\n", book.author)fmt.Printf( "Book subject : %s\n", book.subject)fmt.Printf( "Book book_id : %d\n", book.book_id)
}func printBook( book *Books ) {fmt.Printf( "Book title : %s\n", book.title)fmt.Printf( "Book author : %s\n", book.author)fmt.Printf( "Book subject : %s\n", book.subject)fmt.Printf( "Book book_id : %d\n", book.book_id)}

第一次执行时:

go run .\strucd.go
Book title : Go 语言
Book author : www.runoob.com
Book subject : Go 语言教程
Book book_id : 6495407
Book title : Python 教程
Book author : www.runoob.com
Book subject : Python 语言教程
Book book_id : 6495700
执行时间: 1.7398ms
Book title : Go 语言
Book author : www.runoob.com
Book subject : Go 语言教程
Book book_id : 6495407
Book title : Python 教程
Book author : www.runoob.com
Book subject : Python 语言教程
Book book_id : 6495700
printBook 函数执行时间: 1.1665ms

看出指针传参时间执行较快,区别不大。
再执行:

Book title : Go 语言
Book author : www.mei.biz
Book subject : Go 语言教程
Book book_id : 6495407
Book title : Python 教程
Book author : www.mei.biz
Book subject : Python 语言教程
Book book_id : 6495700
执行时间: 1.0595ms
Book title : Go 语言
Book author : www.mei.biz
Book subject : Go 语言教程
Book book_id : 6495407
Book title : Python 教程
Book author : www.mei.biz
Book subject : Python 语言教程
Book book_id : 6495700
printBook 函数执行时间: 688.2µs
(µs 是微秒的符号,读作 “microsecond”。
1 微秒 = 1/1,000,000 秒 = 0.000001 秒
688.2µs = 0.0006882 秒)

http://www.lryc.cn/news/464897.html

相关文章:

  • 单链表的经典算法OJ
  • 视频网站开发:Spring Boot框架的高效实现
  • 【前端】如何制作一个自己的网站(11)
  • 【Conda】提高 Conda 下载速度与兼容性的完美指南
  • 【Flutter】页面布局:层叠布局(Stack、Positioned)
  • SpringBoot实现的汽车票在线预订系统
  • 集合框架14:TreeSet概述、TreeSet使用、Comparator接口及举例
  • uniapp获取底部导航tabbar的高度(H5)
  • 接口测试 —— 如何测试加密接口?
  • 033 商品搜索
  • 身份证二要素实名认证接口-身份证核验接口-身份证实名API
  • 一次恶意程序分析
  • Javaweb基础-vue
  • 2. MySQL数据库基础
  • java集合进阶篇-《泛型》
  • pytorh学习笔记——cifar10(三)模仿VGGNet创建卷积网络
  • 题目:连续子序列
  • 深入解析:Nacos AP 模式的实现原理与应用场景
  • snmpnetstat使用说明
  • linux线程 | 同步与互斥 | 互斥(下)
  • 2024-10-17 问AI: [AI面试题] 讨论 AI 的挑战和局限性
  • go基础(一)
  • python忽略warnings 的方法
  • 2024年底蓝奏云最新可用API接口列表 支持优享版 无需手动抓取cookie
  • Linux常用命令详细解析(含完整命令演示过程)
  • 《使用Gin框架构建分布式应用》阅读笔记:p101-p107
  • 014集——c#实现打开、另存对话框(CAD—C#二次开发入门)
  • 全面升级:亚马逊测评环境方案的最新趋势与实践
  • Java中的异步编程模型
  • opencv 按位操作