我想找到更快的:结构与数组。因此,我编写了一个GO代码,在其中我将4个int值(1、2、3和4)写入一个结构的成员,然后写入一个长度为4的数组。我试图找出写入所需的时间。
案例1:首先,我将值写入结构,然后写入数组。在这里,我发现数组比结构要快。
package main
import (
"fmt"
"time"
)
type abc struct {
a, b, c, d int
}
func main() {
var obj abc
t1 := time.Now()
obj.a = 1
obj.b = 2
obj.c = 3
obj.d = 4
t2 := time.Since(t1)
fmt.Println("Struct access time: : ", t2)
a := make([]int, 4)
t3 := time.Now()
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
t4 := time.Since(t3)
fmt.Println("Array access time: : ", t4)
}
情况2:其次,我将值写入数组,然后写入结构。在这里,我发现结构比数组要快。
package main
import (
"fmt"
"time"
)
type abc struct {
a, b, c, d int
}
func main() {
var obj abc
a := make([]int, 4)
t3 := time.Now()
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
t4 := time.Since(t3)
fmt.Println("Array access time: : ", t4)
t1 := time.Now()
obj.a = 1
obj.b = 2
obj.c = 3
obj.d = 4
t2 := time.Since(t1)
fmt.Println("Struct access time: : ", t2)
}
为什么性能取决于我首先写的内容?我首先写的那个似乎慢一些。为什么会这样呢?
另一个答案解释了时序差异,让我们进入结构与切片。
如果编译器可以在编译时确定切片足够大,则访问切片的元素和结构将生成相同的代码。当然,实际上,实际上,编译器通常不会知道切片的大小,并且将根据您使用的是结构还是切片来应用完全不同的优化,因此,要衡量性能,您必须查看整体程序及其行为,而不仅仅是一项特定的操作。
本文向大家介绍以下代码的执行顺序?相关面试题,主要包含被问及以下代码的执行顺序?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: //输出2,6,5,3,4,1 为什么呢?具体请参考我的文章: 从promise、process.nextTick、setTimeout出发,谈谈Event Loop中的Job queue
我有两个操作step\u 1()和step\u 2(),希望在step\u 1()之后执行step\u 2()。 对于普通java,这将是: 对于vertx,我必须使用vertx-compose()。我说得对吗? 根据https://groups.google.com/forum/#哦!topic/vertx/FuvlPLpoGOA,我不需要序列代码的未来。 “如果你想按顺序完成每个请求,你不需要
When executing a test class that contains one or more test methods, a number of extension callbacks are called in addition to the user-supplied test and lifecycle methods. See also: Test Execution Ord
模块顺序和返回代码 你不能简单地把一个模块放到一个部分中,希望它能完成它应该做的工作。 模块在一个部分中列出的顺序至关重要。
我有一个表示当前状态对象“cell”列表。 我知道并行解决一个问题总是需要一个开销。在这种情况下,它在我的循环中加速。你能推荐什么方法来加速我的循环?
当使用Angular keyvalue管道遍历对象的属性时,如下所示: 我遇到过一个问题,即属性没有按照预期的顺序迭代。这条评论表明,我不是唯一一个经历过这个问题的人: 如何在Angular中使用ngFor循环对象属性