![]() |
Datenbank: PostgreSQL • Version: 8.3 • Zugriff über: Zeos
Speicherverbrauch Zeoslib auf Postgres
Hallo zusammen,
ich teste den Zugriff über Zeos auf Postgres. Dabei habe ich bei einer ganz einfachen Anwendung (ZConnection, ZQuery, Datasource, DBGrid) festgestellt das der Speicherverbrauch ungewöhnlich hoch ist. Bei einer Tabelle mit 7000 Datensätze (3,5MB) hat die Testanwendung einen Speicherverbrauch von 234MB nach dem Daten laden! Wenn ich bei der ZQuery-Komponente die Eigenschaft ReadOnly=false setze braucht die Anwendung nach dem Daten laden 5MB, was ich bei einer Tabellengröße von 3,5MB absolut in Ordnung finde. Bin für jede Hilfe oder Tipp sehr dankbar. Starsky |
Re: Speicherverbrauch Zeoslib auf Postgres
Wie gehabt : ohne Quelltext keine Hilfsmöglichkeit !
|
Re: Speicherverbrauch Zeoslib auf Postgres
Delphi-Quellcode:
Hallo Hansa,
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, ZConnection, Grids, DBGrids, ZAbstractTable; type TForm1 = class(TForm) DBGrid1: TDBGrid; ZConnection1: TZConnection; DataSource1: TDataSource; ZQuery1: TZQuery; private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} end. wie oben schon beschrieben, eine ganz einfache Anwendung. Es ist alles nur zusammengeklickt und dann mit dem Taskmanager beobachtet mit den beschriebenen Speicherverhalten. Einmal mit der Einstellung ZQuery1.Readonly:=false // 234MB einmal mit ZQuery1.Readonly:=true // 5MB Starsky |
Re: Speicherverbrauch Zeoslib auf Postgres
Wie sieht den die Abfrage aus?
Läuft der Server lokal oder remote? |
Re: Speicherverbrauch Zeoslib auf Postgres
Delphi-Quellcode:
Die Datenbank läuft lokal.
object Form1: TForm1
Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 236 ClientWidth = 383 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object DBGrid1: TDBGrid Left = 0 Top = 0 Width = 383 Height = 236 Align = alClient DataSource = DataSource1 TabOrder = 0 TitleFont.Charset = DEFAULT_CHARSET TitleFont.Color = clWindowText TitleFont.Height = -11 TitleFont.Name = 'Tahoma' TitleFont.Style = [] end object ZConnection1: TZConnection Protocol = 'postgresql-8' HostName = 'localhost' Database = 'testdb' User = 'postgres' Password = 'postgres' Connected = True DesignConnection = True Left = 16 Top = 48 end object DataSource1: TDataSource DataSet = ZQuery1 Left = 16 Top = 144 end object ZQuery1: TZQuery Connection = ZConnection1 Active = True ReadOnly = True SQL.Strings = ( 'select * from kunde') Params = <> Left = 16 Top = 96 end end Dieses verhalten ist aber auch mit allen anderen Tabellen festzustellen. Die Testtabelle hat keine übergroßen Felder (keine BLOBS oder TEXT Felder) Starsky |
Re: Speicherverbrauch Zeoslib auf Postgres
Soweit ich das bei mir Beobachten konnte,
ist dieser Speicherverbrauch normal. Steigt aber bei komplexeren Abfragen nicht wesentlich an. // Grüße Martin |
Re: Speicherverbrauch Zeoslib auf Postgres
Wenn ich die Zeos Komponenten
durch ADO (AdoConnection, AdoDataset) über OLE-ODBC teste braucht die Anwendung auch nur 5MB um die Kundentabelle zu laden. Ich habe das mit einer noch größeren Tabelle (72000 Datensätze) getestet. Da schmiert mir die komplette IDE ab nachdem der Speicherverbrauch auf über 2GB angewachsen war. Ich nutze die Zeos Version 6.6.2-RC. Gibt es da vielleicht irgendein Patch von dem ich nicht weiß? Starsky |
Re: Speicherverbrauch Zeoslib auf Postgres
Hallo,
kompilier das doch mal mit fastmm4 oder memcheck. Heiko |
Re: Speicherverbrauch Zeoslib auf Postgres
Ich habe festgestellt das der hohe Speicherverbrauch
durch die Verbindung vom Datasource zum DBGrid ensteht. Wenn ich die Zuordnung vom Datasource zum DBGrid entferne, ist der Speicherverbrauch normal. Wenn ich die Verbindung wieder herstelle steigt der Speicherverbrauch um das 50-fache. Liegt das jetzt an der Zeos-Komponente? Starsky |
Re: Speicherverbrauch Zeoslib auf Postgres
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz