|
Registriert seit: 8. Jan 2007 479 Beiträge |
#7
Mal umgebaut und auch extrem langsam >5s irgendwo muss da ein Problem drin stecken, obwohl das Objekt und alles vollkommen einfach sind.
Delphi-Quellcode:
PS: Bitte verweise im mORMot Forum auf diesen Thread und schließe deine
unit frm_Main;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, mormot.core.base, mormot.core.data, mormot.core.json, mormot.core.rtti, mormot.core.test, mormot.core.perf, mormot.core.os; type {$M+} TecRmiData = class private FTypeId: string; FTcdTypeId: string; FHerstSchluessel: string; FTypSchluessel: string; FVvs_Schluessel: string; FTypVvsPruefziffer: string; FFahrzeugklasse: string; FCodeAufbau: string; FFabrikMarke: string; FAmtlKlartextTyp: string; FVariante: string; FVersion: string; FHandelsName: string; FHerstText: string; FAmtlKlartextaufbau: string; FTxtKraftstoffKurz: string; FCodeKraftstoff: string; FHubraum: string; FAnzAchsen: string; FAbgasrichtlTg: string; FNationaleEmiklasse: string; FAntriebsachs: string; FNennleistungKw4: string; FNennleistungElektro30Min: string; FHoechstgeschwindigkeit: string; FAnzahlSitze: string; FMasseFahrbereitMin: string; FMasseFahrbereitMax: string; FTechZulGesamtMasse: string; FZulMaxAchsLast1: string; FZulMaxAchsLast2: string; FCo2Kombi: string; FStandgeraeusch3: string; FDrehStandgeraeusch: string; FFahrgeraeusch3: string; FTechnZulAnhaengerLastGebrem: string; FTechnZulAnhaengerLastUngebrem: string; FLeistungsGew: string; FLaengeMin: string; FLaengeMax: string; FBreiteMin: string; FBreiteMax: string; FHoeheMin: string; FHoeheMax: string; FStuetzLast: string; FBereifAchse1: string; FBereifAchse2: string; FGenehmigungsNr01: string; FGenehmigungsDat01: string; FBemerkungenAusnahmen: string; FAnmerkungen: string; FTxAnbringFzidnr: string; FBaumuster: string; FTxGetrTyp: string; FFelgeAchse1: string; FFelgeAchse2: string; published property TypeId: string read FTypeId write FTypeId; property TcdTypeId: string read FTcdTypeId write FTcdTypeId; property HerstSchluessel: string read FHerstSchluessel write FHerstSchluessel; property TypSchluessel: string read FTypSchluessel write FTypSchluessel; property Vvs_Schluessel: string read FVvs_Schluessel write FVvs_Schluessel; property TypVvsPruefziffer: string read FTypVvsPruefziffer write FTypVvsPruefziffer; property Fahrzeugklasse: string read FFahrzeugklasse write FFahrzeugklasse; property CodeAufbau: string read FCodeAufbau write FCodeAufbau; property FabrikMarke: string read FFabrikMarke write FFabrikMarke; property AmtlKlartextTyp: string read FAmtlKlartextTyp write FAmtlKlartextTyp; property Variante: string read FVariante write FVariante; property Version: string read FVersion write FVersion; property HandelsName: string read FHandelsName write FHandelsName; property HerstText: string read FHerstText write FHerstText; property AmtlKlartextaufbau: string read FAmtlKlartextaufbau write FAmtlKlartextaufbau; property TxtKraftstoffKurz: string read FTxtKraftstoffKurz write FTxtKraftstoffKurz; property CodeKraftstoff: string read FCodeKraftstoff write FCodeKraftstoff; property Hubraum: string read FHubraum write FHubraum; property AnzAchsen: string read FAnzAchsen write FAnzAchsen; property AbgasrichtlTg: string read FAbgasrichtlTg write FAbgasrichtlTg; property NationaleEmiklasse: string read FNationaleEmiklasse write FNationaleEmiklasse; property Antriebsachs: string read FAntriebsachs write FAntriebsachs; property NennleistungKw4: string read FNennleistungKw4 write FNennleistungKw4; property NennleistungElektro30Min: string read FNennleistungElektro30Min write FNennleistungElektro30Min; property Hoechstgeschwindigkeit: string read FHoechstgeschwindigkeit write FHoechstgeschwindigkeit; property AnzahlSitze: string read FAnzahlSitze write FAnzahlSitze; property MasseFahrbereitMin: string read FMasseFahrbereitMin write FMasseFahrbereitMin; property MasseFahrbereitMax: string read FMasseFahrbereitMax write FMasseFahrbereitMax; property TechZulGesamtMasse: string read FTechZulGesamtMasse write FTechZulGesamtMasse; property ZulMaxAchsLast1: string read FZulMaxAchsLast1 write FZulMaxAchsLast1; property ZulMaxAchsLast2: string read FZulMaxAchsLast2 write FZulMaxAchsLast2; property Co2Kombi: string read FCo2Kombi write FCo2Kombi; property Standgeraeusch3: string read FStandgeraeusch3 write FStandgeraeusch3; property DrehStandgeraeusch: string read FDrehStandgeraeusch write FDrehStandgeraeusch; property Fahrgeraeusch3: string read FFahrgeraeusch3 write FFahrgeraeusch3; property TechnZulAnhaengerLastGebrem: string read FTechnZulAnhaengerLastGebrem write FTechnZulAnhaengerLastGebrem; property TechnZulAnhaengerLastUngebrem: string read FTechnZulAnhaengerLastUngebrem write FTechnZulAnhaengerLastUngebrem; property LeistungsGew: string read FLeistungsGew write FLeistungsGew; property LaengeMin: string read FLaengeMin write FLaengeMin; property LaengeMax: string read FLaengeMax write FLaengeMax; property BreiteMin: string read FBreiteMin write FBreiteMin; property BreiteMax: string read FBreiteMax write FBreiteMax; property HoeheMin: string read FHoeheMin write FHoeheMin; property HoeheMax: string read FHoeheMax write FHoeheMax; property StuetzLast: string read FStuetzLast write FStuetzLast; property BereifAchse1: string read FBereifAchse1 write FBereifAchse1; property BereifAchse2: string read FBereifAchse2 write FBereifAchse2; property GenehmigungsNr01: string read FGenehmigungsNr01 write FGenehmigungsNr01; property GenehmigungsDat01: string read FGenehmigungsDat01 write FGenehmigungsDat01; property BemerkungenAusnahmen: string read FBemerkungenAusnahmen write FBemerkungenAusnahmen; property Anmerkungen: string read FAnmerkungen write FAnmerkungen; property TxAnbringFzidnr: string read FTxAnbringFzidnr write FTxAnbringFzidnr; property Baumuster: string read FBaumuster write FBaumuster; property TxGetrTyp: string read FTxGetrTyp write FTxGetrTyp; property FelgeAchse1: string read FFelgeAchse1 write FFelgeAchse1; property FelgeAchse2: string read FFelgeAchse2 write FFelgeAchse2; end; {$M-} TecRmiDataDynArray = array of TecRmiData; type {$M+} TKbaDataResult = class(TObject) private FSearchKey: string; FTooMuchResults: Boolean; FNumberOfResults: Integer; FNumberOfPossibleResults: Integer; FFoundData: TecRmiDataDynArray; public destructor Destroy; override; published property SearchKey: string read FSearchKey write FSearchKey; property TooMuchResults: Boolean read FTooMuchResults write FTooMuchResults; property NumberOfResults: Integer read FNumberOfResults write FNumberOfResults; property NumberOfPossibleResults: Integer read FNumberOfPossibleResults write FNumberOfPossibleResults; property FoundData: TecRmiDataDynArray read FFoundData; end; {$M-} type TfrmMain = class(TForm) btnSpeed: TButton; procedure btnSpeedClick(Sender: TObject); private FTimer: TPrecisionTimer; public end; var frmMain: TfrmMain; implementation {$R *.dfm} destructor TKbaDataResult.Destroy; begin ObjArrayClear(FFoundData); inherited Destroy; end; procedure TfrmMain.btnSpeedClick(Sender: TObject); begin var data: TKbaDataResult := TKbaDataResult.Create; try var jsonFileName: TFileName := ChangeFileExt(Executable.ProgramFileName, '.json'); var json: RawJson := StringFromFile(jsonFileName); if json = '' then begin SetLength(data.FFoundData, 500); for var i: Integer := 0 to High(data.FFoundData) do begin data.FFoundData[i] := TecRmiData.Create; for var run: TRttiCustomProp in Rtti.ByClass[TecRmiData].Props.List do run.SetValueText(data.FFoundData[i], TSynTestCase.RandomIdentifier(10 + Random(20))); end; if ObjectToJsonFile(data, jsonFileName) then json := StringFromFile(jsonFileName); end; FTimer.Start; if ObjectLoadJson(data, json) then ShowMessage(Format('Total time Delphi: %s', [FTimer.Time])); finally data.Free; end; end; initialization Rtti.RegisterObjArrays([ TypeInfo(TecRmiDataDynArray), TecRmiData]); end. ![]() Bis bald... Thomas Geändert von mytbo (10. Jan 2024 um 18:08 Uhr) Grund: Benchmark-Wert hinzugefügt |
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |