Memory leaks in LiteDac 2.7.26
-
- Posts: 20
- Joined: Sun 05 Jun 2016 17:11
Memory leaks in LiteDac 2.7.26
Hi,
TLiteQuery leaks memory each Open/Close !
See screenshot of AQTime profiler:
Steps to reproduce:
Drop TLiteConnection and TLiteQuery on the form
LiteConnection.Options.Direct:=false;
LiteQuery.Sql.Add('SELECT * FROM SomeTable');
LiteQuery.Open;
LiteQuery.Close;
Close program. See Allocation profiler results.
Important note: LiteDac compiled with {$DEFINE NOSTATIC} because of this problem:
viewtopic.php?f=48&t=34243
Enviroment: RAD Studio Berlin Update 2, AQTime Pro 8.21
TLiteQuery leaks memory each Open/Close !
See screenshot of AQTime profiler:
Steps to reproduce:
Drop TLiteConnection and TLiteQuery on the form
LiteConnection.Options.Direct:=false;
LiteQuery.Sql.Add('SELECT * FROM SomeTable');
LiteQuery.Open;
LiteQuery.Close;
Close program. See Allocation profiler results.
Important note: LiteDac compiled with {$DEFINE NOSTATIC} because of this problem:
viewtopic.php?f=48&t=34243
Enviroment: RAD Studio Berlin Update 2, AQTime Pro 8.21
Re: Memory leaks in LiteDac 2.7.26
We've examined the behavior of the latest version of LiteDAC 2.7.27 using AQtime Pro 8.60 in accordance with your description. Unfortunately we were unable to detect memory leaks. Please let us know whether it is possible to detect memory leaks in the environment using other memory managers (FastMM 4, MadExcept or EurekaLog). Does this problem occur when using the latest version of LiteDAC 2.7.27 ?
-
- Posts: 20
- Joined: Sun 05 Jun 2016 17:11
Re: Memory leaks in LiteDac 2.7.26
Ok, I will try with 2.7.27 and report back.
-
- Posts: 20
- Joined: Sun 05 Jun 2016 17:11
Re: Memory leaks in LiteDac 2.7.26
Hi,
I tested version 2.7.27 and have same memory leaks problems.
Tested with C++Builder Berlin update 2 + CodeGuard
Tested with C++Builder Berlin update 2 + AQTime
Tested with Delphi Berlin update 2 + EurekaLog 7.50
Here is scrrenshot of EurekaLog memory leak report:
Here is a code of my sample project:
Here is TLiteConnection options from Form.dfm:
object Database: TLiteConnection
Database = 'C:\Data\core.db'
ClientLibrary = 'C:\sqlite\sqlite3.dll'
Options.BusyTimeout = 10
Options.ReadUncommitted = True
Options.ForceCreateDatabase = True
LoginPrompt = False
Left = 257
Top = 78
end
Here is DDL of List2 table wich used in sql query:
{$DEFINE NOSTATIC} has been added to LiteDac.inc
LiteDAC compiled using \LiteDAC\Source\Delphi24\make.bat
If you need any additional details - ask me !
Hope you can fix problem soon !
Here is a full EurekaLog memory leak report:
https://yadi.sk/i/2Hs1kNLH39NfNR
I tested version 2.7.27 and have same memory leaks problems.
Tested with C++Builder Berlin update 2 + CodeGuard
Tested with C++Builder Berlin update 2 + AQTime
Tested with Delphi Berlin update 2 + EurekaLog 7.50
Here is scrrenshot of EurekaLog memory leak report:
Here is a code of my sample project:
Code: Select all
procedure TForm1.Button1Click(Sender: TObject);
var
lq:TLiteQuery;
begin
lq:=TLiteQuery.Create(nil);
lq.Connection:=Database;
lq.SQL.Add('SELECT * FROM List2');
lq.Open;
lq.Close;
lq.Free;
ShowMessage('OK');
end;
object Database: TLiteConnection
Database = 'C:\Data\core.db'
ClientLibrary = 'C:\sqlite\sqlite3.dll'
Options.BusyTimeout = 10
Options.ReadUncommitted = True
Options.ForceCreateDatabase = True
LoginPrompt = False
Left = 257
Top = 78
end
Here is DDL of List2 table wich used in sql query:
Code: Select all
CREATE TABLE List2 (
ID INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL,
Email VARCHAR (100) NOT NULL,
FullName VARCHAR (100),
zzz VARCHAR (25),
nnn VARCHAR (50),
bb VARCHAR (50),
zz INTEGER,
kkk DATE,
ddde VARCHAR (50)
);
LiteDAC compiled using \LiteDAC\Source\Delphi24\make.bat
If you need any additional details - ask me !
Hope you can fix problem soon !
Here is a full EurekaLog memory leak report:
https://yadi.sk/i/2Hs1kNLH39NfNR
Re: Memory leaks in LiteDac 2.7.26
We have checked work LiteDAC 2.7.27 for RAD Studio 10.1 Berlin Update 2 with EurekaLog 7.50 according to your description and found no issues. Please specify what exact version of the client sqlite3.dll library you are using in your tests. Are there any memory leaks in your projects when using Direct Mode ?
-
- Posts: 20
- Joined: Sun 05 Jun 2016 17:11
Re: Memory leaks in LiteDac 2.7.26
Hi,
We built sqlite.dll with folowing options:
SQLITE_ENABLE_ICU
SQLITE_CASE_SENSITIVE_LIKE
ICU library statically linked to sqlite.dll
p.s. I checked LiteDAC with default .dll from sqlite.org and found NO memory leaks ! Looks like LiteDAC conflicts with these options.
But we need above options, at least SQLITE_ENABLE_ICU. And LiteDAC should handle sqlite with ICU plugin enabled. If you need - I can send our MSVC project for sqlite.dll building from amalgamation sources.
We built sqlite.dll with folowing options:
SQLITE_ENABLE_ICU
SQLITE_CASE_SENSITIVE_LIKE
ICU library statically linked to sqlite.dll
p.s. I checked LiteDAC with default .dll from sqlite.org and found NO memory leaks ! Looks like LiteDAC conflicts with these options.
But we need above options, at least SQLITE_ENABLE_ICU. And LiteDAC should handle sqlite with ICU plugin enabled. If you need - I can send our MSVC project for sqlite.dll building from amalgamation sources.
Re: Memory leaks in LiteDac 2.7.26
When developing and testing our products to work with SQLite we use only standard SQLite library available on the official project site : http://sqlite.org