老师您好,go版本1.18.2用上老师的时间换空间的代码,反而慢了不止一点半点
来源:9-3 使用pprof进行性能调优

WittChen
2022-06-15
![
也不知道是什么问题,慕课上copy下来的
写回答
2回答
-
ccmouse
2022-07-06
这是一个很有意思的发现,可以把完整代码看一下,可能是1.18对map做了优化,也可以用pprof工具进一步查看来确认。
不过呢,最终就是像我课上最后说的那样,这里只是演示了工具的用法,本身这个优化对于完整项目很可能微乎其微,所以还是以代码可读性为主。
00 -
WittChen
提问者
2022-06-15
经过反复试验,如下代码,我把返回的值固定写死,保证测试能通过的情况下,使用数组和map做比较,貌似数组取值或者赋值的性能不如map,数组是4位数,map是3位数的性能,虽然是纳秒但是相差还是很大很大
func LengthOfNonRepeatingSubStr3(s string) int { var lastOccurred1 [0xffff]int //for i := range lastOccurred1 { // lastOccurred1[i] = -1 //} start := 0 maxLength := 8 for i, ch := range []rune(s) { if lastI := lastOccurred1[ch]; lastI != 0 && lastI >= start { start = lastI + 1 } if i-start+1 > maxLength { maxLength = i - start + 1 } lastOccurred1[ch] = i } return maxLength }
00
相似问题