Skip to content

Commit 7411434

Browse files
committed
Improve accuracy.
1 parent 35ba335 commit 7411434

File tree

1 file changed

+13
-22
lines changed

1 file changed

+13
-22
lines changed

src/jrd/exe.cpp

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1361,8 +1361,6 @@ const StmtNode* EXE_looper(thread_db* tdbb, jrd_req* request, const StmtNode* no
13611361

13621362
SINT64 lastPerfCounter = fb_utils::query_performance_counter();
13631363
const StmtNode* profileNode = nullptr;
1364-
ULONG lastProfiledLine = node->line;
1365-
ULONG lastProfiledColumn = node->column;
13661364

13671365
while (node && !(request->req_flags & req_stall))
13681366
{
@@ -1380,24 +1378,22 @@ const StmtNode* EXE_looper(thread_db* tdbb, jrd_req* request, const StmtNode* no
13801378

13811379
if (attachment->isProfilerActive() && !request->hasInternalStatement())
13821380
{
1383-
if (profileNode &&
1384-
profileNode->hasLineColumn &&
1385-
profileNode->isProfileAware() &&
1386-
(profileNode->line != lastProfiledLine || profileNode->column != lastProfiledColumn))
1381+
if (node->hasLineColumn &&
1382+
node->isProfileAware() &&
1383+
(!profileNode ||
1384+
!(node->line == profileNode->line && node->column == profileNode->column)))
13871385
{
1388-
const SINT64 currentPerfCounter = fb_utils::query_performance_counter();
1386+
if (profileNode)
1387+
{
1388+
const SINT64 currentPerfCounter = fb_utils::query_performance_counter();
13891389

1390-
attachment->getProfilerManager(tdbb)->afterPsqlLineColumn(request,
1391-
profileNode->line, profileNode->column,
1392-
currentPerfCounter - lastPerfCounter);
1390+
attachment->getProfilerManager(tdbb)->afterPsqlLineColumn(request,
1391+
profileNode->line, profileNode->column,
1392+
currentPerfCounter - lastPerfCounter);
13931393

1394-
lastPerfCounter = currentPerfCounter;
1395-
lastProfiledLine = profileNode->line;
1396-
lastProfiledColumn = profileNode->column;
1397-
}
1394+
lastPerfCounter = currentPerfCounter;
1395+
}
13981396

1399-
if (node->hasLineColumn)
1400-
{
14011397
profileNode = node;
14021398

14031399
attachment->getProfilerManager(tdbb)->beforePsqlLineColumn(request,
@@ -1448,12 +1444,7 @@ const StmtNode* EXE_looper(thread_db* tdbb, jrd_req* request, const StmtNode* no
14481444
}
14491445
} // while()
14501446

1451-
if (attachment->isProfilerActive() &&
1452-
!request->hasInternalStatement() &&
1453-
profileNode &&
1454-
profileNode->hasLineColumn &&
1455-
profileNode->isProfileAware() &&
1456-
(profileNode->line != lastProfiledLine || profileNode->column != lastProfiledColumn))
1447+
if (attachment->isProfilerActive() && !request->hasInternalStatement() && profileNode)
14571448
{
14581449
const SINT64 currentPerfCounter = fb_utils::query_performance_counter();
14591450

0 commit comments

Comments
 (0)