您的位置:首页 > 游戏 > 游戏 > 研发项目流程八个阶段_小程序商城如何运营_源码网站_seo优化评论

研发项目流程八个阶段_小程序商城如何运营_源码网站_seo优化评论

2024/11/14 21:39:51 来源:https://blog.csdn.net/m0_73337964/article/details/143570220  浏览:    关键词:研发项目流程八个阶段_小程序商城如何运营_源码网站_seo优化评论
研发项目流程八个阶段_小程序商城如何运营_源码网站_seo优化评论

代码获取:

go get -u github.com/xzhHas/tools@latest 

栈和队列我分别使用了切片和list实现,具体性能是切片比较高。
以下是压测案例:
在这里插入图片描述

代码测试:

package mainimport ("fmt""github.com/xzhHas/tools/queue""github.com/xzhHas/tools/stack""testing"
)type CustomStruct struct {ID   intName stringAge  intSex  boolData []byte
}func BenchmarkStackAndQueue(b *testing.B) {// 测试 int 类型b.Run("TestIntStack", func(b *testing.B) {s1 := stack.NewStackArray[int]()b.ResetTimer() // 重置计时器,防止初始化时间被计算进来for i := 0; i < 100000; i++ {s1.Push(i)}// 测试栈顶元素for i := 0; i < 100000; i++ {_, _ = s1.Peek() // 获取栈顶元素}for i := 0; i < 100000; i++ {_, _ = s1.Pop()}})b.Run("TestIntStackList", func(b *testing.B) {s2 := stack.NewStackList[int]()b.ResetTimer()for i := 0; i < 100000; i++ {s2.Push(i)}// 测试栈顶元素for i := 0; i < 100000; i++ {_, _ = s2.Peek() // 获取栈顶元素}for i := 0; i < 100000; i++ {_, _ = s2.Pop()}})b.Run("TestIntQueueArray", func(b *testing.B) {q4 := queue.NewQueueArray[int]()b.ResetTimer()for i := 0; i < 100000; i++ {q4.Enqueue(i)}// 测试队列头尾元素for i := 0; i < 100000; i++ {_, _ = q4.Front() // 获取队列头部元素_, _ = q4.Back()  // 获取队列尾部元素}for i := 0; i < 100000; i++ {_, _ = q4.Dequeue()}})b.Run("TestIntQueueList", func(b *testing.B) {q3 := queue.NewQueueList[int]()b.ResetTimer()for i := 0; i < 100000; i++ {q3.Enqueue(i)}// 测试队列头尾元素for i := 0; i < 100000; i++ {_, _ = q3.Front() // 获取队列头部元素_, _ = q3.Back()  // 获取队列尾部元素}for i := 0; i < 100000; i++ {_, _ = q3.Dequeue()}})// 测试 string 类型b.Run("TestStringStack", func(b *testing.B) {s1 := stack.NewStackArray[string]()b.ResetTimer()for i := 0; i < 100000; i++ {s1.Push(fmt.Sprintf("string-%d", i))}// 测试栈顶元素for i := 0; i < 100000; i++ {_, _ = s1.Peek() // 获取栈顶元素}for i := 0; i < 100000; i++ {_, _ = s1.Pop()}})b.Run("TestStringStackList", func(b *testing.B) {s2 := stack.NewStackList[string]()b.ResetTimer()for i := 0; i < 100000; i++ {s2.Push(fmt.Sprintf("string-%d", i))}// 测试栈顶元素for i := 0; i < 100000; i++ {_, _ = s2.Peek() // 获取栈顶元素}for i := 0; i < 100000; i++ {_, _ = s2.Pop()}})b.Run("TestStringQueueArray", func(b *testing.B) {q4 := queue.NewQueueArray[string]()b.ResetTimer()for i := 0; i < 100000; i++ {q4.Enqueue(fmt.Sprintf("string-%d", i))}// 测试队列头尾元素for i := 0; i < 100000; i++ {_, _ = q4.Front() // 获取队列头部元素_, _ = q4.Back()  // 获取队列尾部元素}for i := 0; i < 100000; i++ {_, _ = q4.Dequeue()}})b.Run("TestStringQueueList", func(b *testing.B) {q3 := queue.NewQueueList[string]()b.ResetTimer()for i := 0; i < 100000; i++ {q3.Enqueue(fmt.Sprintf("string-%d", i))}// 测试队列头尾元素for i := 0; i < 100000; i++ {_, _ = q3.Front() // 获取队列头部元素_, _ = q3.Back()  // 获取队列尾部元素}for i := 0; i < 100000; i++ {_, _ = q3.Dequeue()}})// 测试自定义结构体类型b.Run("TestCustomStructStack", func(b *testing.B) {s1 := stack.NewStackArray[CustomStruct]()b.ResetTimer()for i := 0; i < 100000; i++ {s1.Push(CustomStruct{ID: i, Name: fmt.Sprintf("custom-%d", i)})}// 测试栈顶元素for i := 0; i < 100000; i++ {_, _ = s1.Peek() // 获取栈顶元素}for i := 0; i < 100000; i++ {_, _ = s1.Pop()}})b.Run("TestCustomStructStackList", func(b *testing.B) {s2 := stack.NewStackList[CustomStruct]()b.ResetTimer()for i := 0; i < 100000; i++ {s2.Push(CustomStruct{ID: i, Name: fmt.Sprintf("custom-%d", i)})}// 测试栈顶元素for i := 0; i < 100000; i++ {_, _ = s2.Peek() // 获取栈顶元素}for i := 0; i < 100000; i++ {_, _ = s2.Pop()}})b.Run("TestCustomStructQueueArray", func(b *testing.B) {q4 := queue.NewQueueArray[CustomStruct]()b.ResetTimer()for i := 0; i < 100000; i++ {q4.Enqueue(CustomStruct{ID: i, Name: fmt.Sprintf("custom-%d", i)})}// 测试队列头尾元素for i := 0; i < 100000; i++ {_, _ = q4.Front() // 获取队列头部元素_, _ = q4.Back()  // 获取队列尾部元素}for i := 0; i < 100000; i++ {_, _ = q4.Dequeue()}})b.Run("TestCustomStructQueueList", func(b *testing.B) {q3 := queue.NewQueueList[CustomStruct]()b.ResetTimer()for i := 0; i < 100000; i++ {q3.Enqueue(CustomStruct{ID: i, Name: fmt.Sprintf("custom-%d", i)})}// 测试队列头尾元素for i := 0; i < 100000; i++ {_, _ = q3.Front() // 获取队列头部元素_, _ = q3.Back()  // 获取队列尾部元素}for i := 0; i < 100000; i++ {_, _ = q3.Dequeue()}})
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com