Project

General

Profile

Actions

Support Request #12026

closed

Performance-Problems with DDL-Codec

Added by hidden over 3 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Customer:
CARIAD
Department:
D/CS-G33
Requester's Priority:
Normal
Support Level:
2nd Level
Resolution:
Solved Issue
Product Issue Numbers:
Affected Products:
Platform:
Windows 10 64bit
Topic:
ADTF::DDL
FAQ Links:

Description

Support Anfrage:

Wir übertragen mittels Media Description Codec eine recht große Datenstruktur zwischen zwei Plugins. Das Struct sieht wie folgt aus: * eine Liste mit bis zu 40 Objekten * jedes Objekt hat wiederum 64 Elemente * Flach gesehen geht es insgesamt um 2572 Elemente, sollten alle 40 Objekte wirklich gesetzt werden

Schon bei 6 Objekten kriege ich merkliche Performance-Probleme auf meinem HP zBook.

In der Loop werden also Codec-bezogene Aufrufe der folgenden Art je Element getätigt:

access_element::find_index(m_oCodecFactory, "lstObj[" + cString::FromType(nObj)  + "].bIsStatic", nMediaDescIdx);
oCodec.SetElementValue(nMediaDescIdx, i_sObjList[nObj].bIsStatic); 

Habt ihr einen Tip, wie man hier mehr Performance reinkriegt? Als letzte Lösung überlegen wir, den Codec wegzulassen und die Struktur selbst zusammenzusetzen.

Lösung:

Die schnellste Variante ist es die Struktur einfach direkt als C-Struktur im Sample zu befüllen. Die DDL beschreit ja dann genau diese Struktur, das hat also keinen Nachteil. Ein Codec macht nur Sinn wenn Ihr die Struktur nicht kennt und dynamisch befüllen müsst (z.b. über eine Konfigurationseinstellung, etc.).

Ansonsten kann man das ganze noch beschleunigen, wenn ihr die teure stringbasierte Suche mit find_index in die Initialisierung verschiebt und die Indizes cached, dann sollte man nahe an die C-Struktur Variante herankommen.

Actions #1

Updated by hidden over 3 years ago

Nachtrag: Der oben beschriebene Ouput wird mit ca. 100 Hz (alle 10 ms) erzeugt.

Actions #2

Updated by hidden over 3 years ago

  • Status changed from New to In Progress
  • Topic set to ADTF::DDL
Actions #3

Updated by hidden over 3 years ago

Hi Patrick,

die schnellste Variante ist es die Struktur einfach direkt als C-Struktur im Sample zu befüllen. Die DDL beschreit ja dann genau diese Struktur, das hat also keinen Nachteil. Ein Codec macht nur Sinn wenn Ihr die Struktur nicht kennt und dynamisch befüllen müsst (z.b. über eine Konfigurationseinstellung, etc.).

Ansonsten kann man das ganze noch beschleunigen, wenn ihr die teure stringbasierte Suche mit find_index in die Initialisierung verschiebt und die Indizes cached, dann sollte man nahe an die C-Struktur Variante herankommen.

Grüße,

Martin

Actions #4

Updated by hidden over 3 years ago

Danke für die Tips.

Das Ticket kann geschlossen werden.

Actions #5

Updated by hidden over 3 years ago

  • Status changed from In Progress to To Be Closed
  • Resolution set to Solved Issue
Actions #6

Updated by hidden over 3 years ago

  • Subject changed from Performance-Probleme mit DDL-Codec to Performance-Problems with the DDL-Codec
  • Description updated (diff)
Actions #7

Updated by hidden over 3 years ago

  • Subject changed from Performance-Problems with the DDL-Codec to Performance-Problems with DDL-Codec
Actions #8

Updated by hidden over 3 years ago

  • Status changed from To Be Closed to Closed
  • Private changed from Yes to No
Actions #9

Updated by hidden over 3 years ago

  • Project changed from 11 to Public Support
Actions #10

Updated by hidden over 2 years ago

  • Customer changed from Car.SW Org. to CARIAD
Actions

Also available in: Atom PDF