-
Notifications
You must be signed in to change notification settings - Fork 17.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmd/compile: pgo after CL 449477 cause worse performance on benchmark #68974
Comments
That CL changed some inlining threshould. What function inlining changes at that CL, like it was not inlined before the CL and inlined after, or vice versa? What type of benchmark is it? Is it a micro benchmark? How is the profile collected? Thanks. |
Benckmark come from open source code that I wrote while researching compilation principles.It reads the test data and processes it.
no,benchmark calls multiple functions,and according to the benchmark data, the time is in the microsecond level.
run |
I use I got: // old inline , but new not inline hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Tree).parserExpr at gitee.com/u-language/u-language/ucom/ast2\parser.go:210:30 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Tree).parserExpr at gitee.com/u-language/u-language/ucom/ast2\parser.go:584:32 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Tree).parserExpr at gitee.com/u-language/u-language/ucom/ast2\parser.go:876:28 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Tree).parserExpr at gitee.com/u-language/u-language/ucom/ast2\parser.go:915:27 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Tree).parserType at gitee.com/u-language/u-language/ucom/ast2\parser.go:196:27 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Tree).parserType at gitee.com/u-language/u-language/ucom/ast2\parser.go:837:28 ---------------- // new inline , but old not inline hot-budget check allows inlining for call bufio.(*Reader).ReadLine at gitee.com/u-language/u-language/ucom/internal/utils\Split.go:55:34 hot-budget check allows inlining for call bufio.(*Reader).ReadSlice at bufio\bufio.go:401:25 hot-budget check allows inlining for call bufio.(*Reader).fill at bufio\bufio.go:372:9 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*FuncNode).C at gitee.com/u-language/u-language/ucom/cast2\utoc.go:66:5 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Object).C at gitee.com/u-language/u-language/ucom/ast2\type.go:1289:15 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Package).AddFile at gitee.com/u-language/u-language/ucom/parser\buildmode2.go:104:13 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Sbt).AddStruct at gitee.com/u-language/u-language/ucom/ast2\parser.go:816:17 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Sbt).add at gitee.com/u-language/u-language/ucom/ast2\sbt.go:94:14 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Sbt).have at gitee.com/u-language/u-language/ucom/ast2\sbt.go:288:19 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*StructDecl).c at gitee.com/u-language/u-language/ucom/ast2\type.go:1123:5 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Tree).SubRbrace at gitee.com/u-language/u-language/ucom/ast2\parser.go:53:14 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Tree).SubRbrace at gitee.com/u-language/u-language/ucom/check3\check3.go:67:14 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Tree).parserCase at gitee.com/u-language/u-language/ucom/ast2\parser.go:119:15 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*Tree).parserObject2 at gitee.com/u-language/u-language/ucom/ast2\parser.go:332:24 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*VarNode).C at gitee.com/u-language/u-language/ucom/cast2\utoc.go:73:12 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*stack).AutoPop at gitee.com/u-language/u-language/ucom/ast2\expr3.go:395:19 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*stack).PopValue at gitee.com/u-language/u-language/ucom/ast2\expr3.go:262:42 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*stack).PopValue at gitee.com/u-language/u-language/ucom/ast2\expr3.go:303:66 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*stack).PopValue at gitee.com/u-language/u-language/ucom/ast2\expr3.go:348:19 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.(*stack).PushValue at gitee.com/u-language/u-language/ucom/ast2\expr3.go:254:14 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.newstack at gitee.com/u-language/u-language/ucom/ast2\parser.go:282:15 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.tocVarNode at gitee.com/u-language/u-language/ucom/ast2\type.go:141:13 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/ast2.utoCCall at gitee.com/u-language/u-language/ucom/ast2\type.go:782:14 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/astdata.Generate_method_symbol at gitee.com/u-language/u-language/ucom/ast2\type.go:1469:41 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/cast2.generateCFile at gitee.com/u-language/u-language/ucom/cast2\package.go:114:16 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/cast2.generateHeaderFile at gitee.com/u-language/u-language/ucom/cast2\utoc.go:41:20 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/cast2.nodeCmp at gitee.com/u-language/u-language/ucom/cast2\utoc.go:98:17 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/check3.CheckPackage at gitee.com/u-language/u-language/ucom/parser\buildmode2.go:118:21 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/check3.CheckTree at gitee.com/u-language/u-language/ucom/check3\package.go:11:12 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/check3.checkBoolExpr at gitee.com/u-language/u-language/ucom/check3\check3.go:730:15 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/check3.checkFunc at gitee.com/u-language/u-language/ucom/check3\check3.go:61:12 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/check3.check_selector_Left_right at gitee.com/u-language/u-language/ucom/check3\check3.go:555:50 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/check3.getFuncName at gitee.com/u-language/u-language/ucom/check3\check3.go:262:47 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/check3.retType at gitee.com/u-language/u-language/ucom/check3\check3.go:123:17 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/data.(*Slice[go.shape.interface { C(*strings.Builder); CDecl(*strings.Builder); String() string }]).Add at gitee.com/u-language/u-language/ucom/ast2\parser.go:380:19 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/data.(*Slice[go.shape.interface { C(*strings.Builder); CDecl(*strings.Builder); String() string }]).Add at gitee.com/u-language/u-language/ucom/ast2\parser.go:818:20 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/data.(*Slice[go.shape.interface { C(*strings.Builder); CDecl(*strings.Builder); String() string }]).Add at gitee.com/u-language/u-language/ucom/ast2\parser.go:984:20 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/internal/utils.FindU at gitee.com/u-language/u-language/ucom/parser\buildmode2.go:64:27 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/internal/utils.GeneratePackageSymbol at gitee.com/u-language/u-language/ucom/ast2\parser.go:366:42 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/internal/utils.GeneratePackageSymbol at gitee.com/u-language/u-language/ucom/cast2\utoc.go:56:47 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/internal/utils.ReadLine at gitee.com/u-language/u-language/ucom/internal/utils\Split.go:42:26 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/internal/utils.ReadLine at gitee.com/u-language/u-language/ucom/lex\lex.go:64:32 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex.(*Scan).parserToken at gitee.com/u-language/u-language/ucom/lex\scan.go:367:40 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex.autoAddToken at gitee.com/u-language/u-language/ucom/lex\scan.go:126:16 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex.autoAddToken at gitee.com/u-language/u-language/ucom/lex\scan.go:129:16 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex.autoAddToken at gitee.com/u-language/u-language/ucom/lex\scan.go:138:16 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex.autoAddToken at gitee.com/u-language/u-language/ucom/lex\scan.go:153:16 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex.autoAddToken at gitee.com/u-language/u-language/ucom/lex\scan.go:203:16 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex.autoAddToken at gitee.com/u-language/u-language/ucom/lex\scan.go:285:14 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex.autoAddToken at gitee.com/u-language/u-language/ucom/lex\scan.go:58:16 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex.autoAddToken at gitee.com/u-language/u-language/ucom/lex\scan.go:76:16 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex.scanMLCEnd at gitee.com/u-language/u-language/ucom/lex\lex.go:30:17 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\expr3.go:262:61 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\expr3.go:303:85 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\expr3.go:389:21 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:244:18 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:26:22 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:26:62 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:272:33 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:295:19 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:300:19 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:332:39 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:396:20 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:442:18 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:492:43 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:495:20 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:593:22 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:593:43 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:669:30 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:707:21 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/lex2.(*FileToken).Next at gitee.com/u-language/u-language/ucom/ast2\parser.go:826:19 hot-budget check allows inlining for call gitee.com/u-language/u-language/ucom/parser.openfileAndStat at gitee.com/u-language/u-language/ucom/parser\test.go:46:35 hot-budget check allows inlining for call internal/poll.(*FD).destroy at internal/poll\fd_mutex.go:213:20 hot-budget check allows inlining for call internal/reflectlite.Swapper at sort\slice.go:23:29 hot-budget check allows inlining for call os.(*File).readdir at os\dir.go:98:33 hot-budget check allows inlining for call os.(*file).close at os\file_posix.go:25:21 hot-budget check allows inlining for call os.Open at gitee.com/u-language/u-language/ucom/parser\test.go:68:22 hot-budget check allows inlining for call os.OpenFile at os\file.go:309:17 hot-budget check allows inlining for call os.Stat at gitee.com/u-language/u-language/ucom/parser\parser.go:30:27 hot-budget check allows inlining for call os.openFileNolog at os\file.go:329:25 hot-budget check allows inlining for call path/filepath.Join at path/filepath\path.go:425:16 hot-budget check allows inlining for call path/filepath.WalkDir at gitee.com/u-language/u-language/ucom/internal/utils\utils.go:59:25 hot-budget check allows inlining for call path/filepath.join at path/filepath\path.go:225:13 hot-budget check allows inlining for call reflect.implements at reflect\value.go:3484:15 hot-budget check allows inlining for call runtime.(*activeSweep).end at runtime\mgcsweep.go:405:18 hot-budget check allows inlining for call runtime.(*fixalloc).alloc at runtime\mheap.go:1108:53 hot-budget check allows inlining for call runtime.(*gcControllerState).enlistWorker at runtime\mgcwork.go:304:28 hot-budget check allows inlining for call runtime.(*gcControllerState).update at runtime\mcache.go:212:21 hot-budget check allows inlining for call runtime.(*gcWork).init at runtime\mgcwork.go:207:9 hot-budget check allows inlining for call runtime.(*gcWork).tryGet at runtime\mgcmark.go:1170:18 hot-budget check allows inlining for call runtime.(*itabTableType).find at runtime\iface.go:55:15 hot-budget check allows inlining for call runtime.(*lfstack).push at runtime\mgcwork.go:420:16 hot-budget check allows inlining for call runtime.(*mcache).refill at runtime\malloc.go:855:11 hot-budget check allows inlining for call runtime.(*mcentral).uncacheSpan at runtime\mcache.go:159:43 hot-budget check allows inlining for call runtime.(*mheap).alloc at runtime\mcentral.go:246:19 hot-budget check allows inlining for call runtime.(*mheap).nextSpanForSweep at runtime\mgcsweep.go:373:31 hot-budget check allows inlining for call runtime.(*mspan).initHeapBits at runtime\mcentral.go:255:16 hot-budget check allows inlining for call runtime.(*mspan).nextFreeIndex at runtime\malloc.go:848:30 hot-budget check allows inlining for call runtime.(*mspan).refillAllocCache at runtime\mbitmap.go:182:21 hot-budget check allows inlining for call runtime.(*pallocBits).summarize at runtime\mpagealloc.go:425:31 hot-budget check allows inlining for call runtime.(*scavengerState).run at runtime\mgcscavenge.go:631:38 hot-budget check allows inlining for call runtime.(*spanSet).pop at runtime\mgcsweep.go:106:29 hot-budget check allows inlining for call runtime.(*spanSet).pop at runtime\mgcsweep.go:108:32 hot-budget check allows inlining for call runtime.(*spanSet).reset at runtime\mgcsweep.go:259:29 hot-budget check allows inlining for call runtime.casgstatus at runtime\mgcmark.go:569:12 hot-budget check allows inlining for call runtime.concatstrings at runtime\string.go:60:22 hot-budget check allows inlining for call runtime.copystack at runtime\stack.go:1112:11 hot-budget check allows inlining for call runtime.copystack at runtime\stack.go:1214:11 hot-budget check allows inlining for call runtime.findObject at runtime\mgcmark.go:1237:42 hot-budget check allows inlining for call runtime.forEachG at runtime\mgc.go:1591:10 hot-budget check allows inlining for call runtime.funcMaxSPDelta at runtime\stack.go:1081:32 hot-budget check allows inlining for call runtime.gcAssistAlloc1 at runtime\mgcmark.go:475:17 hot-budget check allows inlining for call runtime.getempty at runtime\mgcwork.go:439:16 hot-budget check allows inlining for call runtime.greyobject at runtime\mgcmark.go:1238:17 hot-budget check allows inlining for call runtime.growWork_faststr at runtime\map_faststr.go:227:19 hot-budget check allows inlining for call runtime.handoff at runtime\mgcwork.go:297:20 hot-budget check allows inlining for call runtime.mProf_FlushLocked at runtime\mprof.go:373:19 hot-budget check allows inlining for call runtime.mProf_Malloc at runtime\malloc.go:1280:14 hot-budget check allows inlining for call runtime.makeBucketArray at runtime\map.go:1051:45 hot-budget check allows inlining for call runtime.memclrHasPointers at runtime\map.go:371:21 hot-budget check allows inlining for call runtime.netpoll at runtime\proc.go:1327:18 hot-budget check allows inlining for call runtime.notewakeup at runtime\proc.go:1753:13 hot-budget check allows inlining for call runtime.pcvalue at runtime\symtab.go:1074:17 hot-budget check allows inlining for call runtime.pcvalue at runtime\symtab.go:1109:17 hot-budget check allows inlining for call runtime.pcvalue at runtime\symtab.go:1117:17 hot-budget check allows inlining for call runtime.preemptM at runtime\preempt.go:231:14 hot-budget check allows inlining for call runtime.putfull at runtime\mgcwork.go:446:9 hot-budget check allows inlining for call runtime.runSafePointFn at runtime\proc.go:2677:17 hot-budget check allows inlining for call runtime.runqgrab at runtime\proc.go:6192:15 hot-budget check allows inlining for call runtime.scanblock at runtime\mgcmark.go:284:11 hot-budget check allows inlining for call runtime.scanobject at runtime\mgcmark.go:1192:13 hot-budget check allows inlining for call runtime.semawakeup at runtime\lock_sema.go:161:13 hot-budget check allows inlining for call runtime.shrinkstack at runtime\mgcmark.go:775:14 hot-budget check allows inlining for call runtime.startm at runtime\proc.go:2532:8 hot-budget check allows inlining for call runtime.step at runtime\symtab.go:1091:15 hot-budget check allows inlining for call runtime.sweepone at runtime\mgcsweep.go:299:15 hot-budget check allows inlining for call runtime.trygetfull at runtime\mgcwork.go:216:21 hot-budget check allows inlining for call runtime.typedmemmove at runtime\map.go:680:14 hot-budget check allows inlining for call runtime.typehash at runtime\alg.go:130:23 hot-budget check allows inlining for call runtime.wakep at runtime\proc.go:3235:7 hot-budget check allows inlining for call runtime.wakep at runtime\proc.go:4242:9 hot-budget check allows inlining for call runtime.wbBufFlush at runtime\mgcmark.go:1174:15 hot-budget check allows inlining for call sort.Slice at gitee.com/u-language/u-language/ucom/cast2\utoc.go:97:12 hot-budget check allows inlining for call sort.insertionSort_func at sort\zsortfunc.go:73:22 hot-budget check allows inlining for call strings.Join at gitee.com/u-language/u-language/ucom/astdata\utils.go:12:21 hot-budget check allows inlining for call sync.(*Map).dirtyLocked at sync\map.go:239:17 hot-budget check allows inlining for call sync.(*Map).missLocked at sync\map.go:133:16 hot-budget check allows inlining for call sync.(*Pool).Get at gitee.com/u-language/u-language/ucom/ast2\expr3.go:66:19 hot-budget check allows inlining for call sync.(*Pool).Get at gitee.com/u-language/u-language/ucom/internal/utils\sync.go:26:19 hot-budget check allows inlining for call sync.(*Pool).Put at gitee.com/u-language/u-language/ucom/ast2\expr3.go:464:15 hot-budget check allows inlining for call sync.(*Pool).Put at gitee.com/u-language/u-language/ucom/internal/utils\pool.go:17:12 hot-budget check allows inlining for call sync.(*Pool).getSlow at sync\pool.go:140:17 hot-budget check allows inlining for call sync.(*Pool).pin at sync\pool.go:107:15 hot-budget check allows inlining for call sync.(*Pool).pin at sync\pool.go:131:17 hot-budget check allows inlining for call sync.(*poolChain).popHead at sync\pool.go:138:26 hot-budget check allows inlining for call sync.(*poolChain).popTail at sync\pool.go:163:30 hot-budget check allows inlining for call sync.(*poolChain).pushHead at sync\pool.go:111:20 hot-budget check allows inlining for call sync.(*poolDequeue).popHead at sync\poolqueue.go:261:26 hot-budget check allows inlining for call syscall.FullPath at os\types_windows.go:195:34 hot-budget check allows inlining for call syscall.GetConsoleMode at os\file_windows.go:46:28 hot-budget check allows inlining for call syscall.GetFileAttributesEx at os\stat_windows.go:39:35 hot-budget check allows inlining for call syscall.GetFileType at os\file_windows.go:49:35 hot-budget check allows inlining for call syscall.GetFullPathName at syscall\exec_windows.go:163:27 hot-budget check allows inlining for call syscall.UTF16FromString at syscall\syscall_windows.go:97:27 hot-budget check allows inlining for call syscall.UTF16PtrFromString at os\stat_windows.go:31:42 hot-budget check allows inlining for call syscall.UTF16PtrFromString at syscall\exec_windows.go:156:30 hot-budget check allows inlining for call unicode/utf8.appendRuneNonASCII at unicode/utf8\utf8.go:380:27 |
Go version
go version devel go1.24-f428c7b7 Sat Aug 3 05:06:40 2024 +0000 windows/amd64
Output of
go env
in your module/workspace:What did you do?
Repeat step:
git clone https://gitee.com/u-language/u-language.git -b pgo2024-8-20
cd u-language
Set environment variable URoot to the current path
cd ucom
go test -run=ssss -bench="ComplierToCBuildMode2/多文件" -count=10 -pgo off > new.txt && sleep 20 && go test -run=ssss -bench="ComplierToCBuildMode2/多文件" -count=10 -pgo default.pgo > pgo.txt && benchstat new.txt pgo.txt
What did you see happen?
pgo does not cause performance degradation
What did you expect to see?
I tried tip,happen pgo cause worse performance on benchmark.
I tried 4b43b74 , no happen pgo cause worse performance on benchmark.
git bisect to 1b03568
The text was updated successfully, but these errors were encountered: