Skip to content

Routine calling overhead increased by factor 6 vs Firebird 4.0.0 #7759

@tonne1

Description

@tonne1

Noticed when upgrading from 4.0.0 to 4.0.3, 5.0.0 RC1 is equally affected, Win10, Win11. Test case, simply run an empty stored function one million times:

create or alter function empty_sf
returns varchar(10)
as
begin
  return '';
end;

execute block 
as 
declare i integer = 0;
begin
  while (i < 1000000) do
  begin
    empty_sf();
    i = i + 1;
  end  
end;

Execution times, local machine, factor 6:

4.0.3 10.9 sec
4.0.0 1.9 sec
5.0.0 10.8 sec

Stored procedures are also affected:

create or alter procedure empty_sp
returns (s varchar(10))
as
begin
  s = '';
  suspend;
end;

execute block 
as 
declare i integer = 0;
declare s varchar(10);
begin
  while (i < 1000000) do
  begin
    select s from empty_sp into :s;
    i = i + 1;
  end  
end;

Execution times, local machine, factor 4:

4.0.3 12.8 sec
4.0.0 3.5 sec
5.0.0 13.2 sec

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions