我知道这些术语通常用于性能的实现/优化方面。最近一直在研究并尝试搜索,但没有找到任何例子清晰地阐述/描述这些概念,并意识到它们在真实世界的开发场景中的问题/概念。有人可以详细解释这些术语、示例场景以及这些概念和术语可能被使用的地方吗?谢谢。
"样板代码"与性能无关:它只是指定义应用程序或使用某些框架所需的标准代码。这些代码在每个应用程序中很可能是相同的。
另一方面,“热点”意味着代码的某一部分被执行多次,因此它的性能对整个应用程序的性能非常重要。通常通过实际剖析来确定热点:如果一个代码被执行多次但其对性能的影响很小,则不是热点。
CTypedPtrArray<CPtrArray,COperation *>::operator[]() line 1555 + 23 bytes
TcProcess() line 246 + 14 bytes ---> COperation* pOp = oplist[i];
CMhAck::Handler() line 165
doit() line 297 + 12 bytes
main() line 318
CTypedPtrArray<CPtrArray,CJob *>::operator[]() line 1555 + 23 bytes
SchProcess() line 212 + 14 bytes ---> pJob = joblist[i];
COpAck::Handler() line 145
doit() line 297 + 12 bytes
main() line 318
CTypedPtrArray<CPtrArray,CTask *>::operator[]() line 1555 + 23 bytes
TcProcess() line 249 + 18 bytes ---> pTask = pOp->tasks[pOp->iCurTask];
CMhAck::Handler() line 165
doit() line 297 + 12 bytes
main() line 318
CTypedPtrArray<CPtrArray,CTask *>::operator[]() line 1555 + 23 bytes
COperation::~COperation() line 57 + 15 bytes ---> CTask* p = tasks[i];
COperation::`scalar deleting destructor'() + 37 bytes
TcProcess() line 259 + 28 bytes
CTskAck::Handler() line 193
doit() line 297 + 12 bytes
main() line 318
我假设您已经对“样板文件”这个术语有足够的定义。我想通过一个例子来支持您的理解。
如果您来自Java背景并最近转向Scala,您会意识到在Java中,您不能编写没有分号(;)的语句。此外,为了运行程序,编写数千条语句也不是什么稀奇事。你猜得没错,你最终会编写很多重复的低影响代码,但这恰好是Java编译器所需的代码。Scala是一种简洁的语言,因为它减少了编写样板代码的需要。在Scala中,您不必编写分号。希望这足够简单明了。