Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  BlackBoard unter 2004 langsamer und Daten-Container

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  BlackBoard unter 2004 langsamer und Daten-Container (437 mal gelesen)
Dabrunz
Mitglied



Sehen Sie sich das Profil von Dabrunz an!   Senden Sie eine Private Message an Dabrunz  Schreiben Sie einen Gästebucheintrag für Dabrunz

Beiträge: 127
Registriert: 28.05.2003

erstellt am: 05. Jun. 2003 09:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Tag zusammen.

In meinen Programmen nutzte ich in den AutoCAD2k*-Versionen vor 2004 eigendl. immer das BlackBoard zur Datei übergreifenden Datenhaltung. Zum Teil - und der Anteil ist nicht unerheblich - diente es mir auch als eine Art Datei-Cache: Daten lesen -> konvertieren -> ins BlackBoard.

Ziemlich effektiv war's, aber damit scheint Schluss zu sein, denn die Zugriffe auf diesen Namensraum scheinen mir um so vieles langesamer geworden, dass - gerade bei größeren Datenmengen - der Ansatz zum Scheitern verurteilt scheint.

Meine Fragen sind jetzt:

- Hat hier noch jemand anderes diese Beobachtung gemacht?
- Was habt ihr für eine Meinung zur Implementierung eines quasi-separaten und globalen Daten-Containers, der nicht Zeichnungs übergreifend ist?
- Wie würdet ihr das angehen?
- Welche Kontroll- und Verwaltungs-Methoden sollten da implementiert werden?

Ich habe bisher kein befriedigendes Konzept gefunden. Vielleicht haben wir ja zusammen eine brauchbare Idee ..

Achim Dabrunz

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 13. Jun. 2003 11:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dabrunz 10 Unities + Antwort hilfreich

Hi Achim,
*null-check*
was meinst Du denn mit:
"Implementierung eines quasi-separaten und globalen Daten-Containers, der nicht Zeichnungs übergreifend ist"

Was ist er denn nu? global oder NICHT Zeichnungsübergreifend?

Was hältst Du von 'ner ini-Datei?
(Ich hab' da geade was zum lesen und schreiben in Lisp gebaut...

------------------
Ciao,
Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dabrunz
Mitglied



Sehen Sie sich das Profil von Dabrunz an!   Senden Sie eine Private Message an Dabrunz  Schreiben Sie einen Gästebucheintrag für Dabrunz

Beiträge: 127
Registriert: 28.05.2003

erstellt am: 13. Jun. 2003 13:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi.

Sieht nach meiner Standard-Schwäche aus: Ich hab' nicht konkret genug beschrieben, was ich eigendlich machen will und warum. Aber der Reihe nach:

Zitat:
Was hältst Du von 'ner ini-Datei?

Wenig, denn ich will ja gerade einen Datei-Cache implementieren. Voreinstellungen für Dialoge oder Benutzer-Eingaben, Programm-Einstellungen und Applikations-relevante Daten liegen ja immer in haufenweise Dateien herum - ist zumindest bei mir so. Werden die Daten jetzt beim Initialisieren des Programms aufbereitet, dann würde ich diese Ergebnis gerne im Speicher halten, denn die Daten werden durchaus häufiger abgefragt. Wichtig scheint mir auch, darauf hinzuweisen, dass es natürlich keinen Sinn macht Daten zu cachen, wenn sie nur von einem Befehl oder einer Routine benutzt werden. Mir geht's hier um Applikationen, bei denen der Anwender hin und wieder mal einen AutoCAD-Befehl aufruft, aber in der Regel mit dem Befehlen der Applikation selbst arbeitet.

Bisher arbeiteten meine Programme nach folgendem Muster:

Code:

(1) Check: Alle benötigten Daten schon im BlackBoard?
    JA -> freuen
    NO -> aus Dateien zusammensuchen, aufbereiten und in BB schreiben

(2) Befehl ausführen - bei Bedarf Daten aus BB holen


Die Vorteilen lagen für mich auf der Hand:


  • Datei-Inhalte müssen nur einmal pro ACAD-Session auf Korrektheit geprüft werden
  • Datei-Inhalte müssen nur einmal pro ACAD-Session in Programm-DatenStrukturen übersetzt werden
  • keine überflüssigen Datei-Zugriffe mehr - gerade bei zentral im Netz abgelegten Konfigurations-Dateien oder DatenBank-Zugriffen sinnvoll

Wegen akuter Langsamkeit - hier auch die Frage, ob's auch sonst noch jemand beobachtet hat - fällt aber das BB für größere Tabellen unter 2004 flach.

Also speiche ich jetzt innerhalb eines Zwischenschritts meine Daten zusätzlich im DocumentNameSpace, d.h. ich benutze globale Variablen, die auch nach Abschluss des Befehls erhalten lesbar bleiben, damit zumindest ein Teil der Vorteile von voher erhalten bleibt.

Zitat:
Was ist er denn nu? global oder NICHT Zeichnungsübergreifend?

Das - hoffe ich - klärt sich nun auch: Beides, nennen wir's mal Super-Globals.

Und genau darum geht es mir! Ich würde gerne ein - zumindest von den an der Diskussion und Entwicklung Beteiligten - akzeptiertes Konzept für diese Super-Globals entwerfen und anschließend ein Verwaltungs- und Abfrage-Modul fertig stellen, mit dem über eine Hand voll Funktionen der Zugriff auf diese Daten ermöglicht wird.

Wie sieht's aus? Jemand Interesse? Oder hab' ich wieder zu fabulös 'rumgelabert?

Achim Dabrunz

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 13. Jun. 2003 13:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dabrunz 10 Unities + Antwort hilfreich

Hallo Achim,

prinzipiell ist das sicher interessant, ich arbeite in solchen Fällen auch nur mit globalen Variablen, mit dem Nachteil, dass diese für jede Zeichnung neu gebastelt werden müssen.
Mir fällt allerdings keine Lösung ein, wie man das anders machen sollte, als eben über das BB. Nur die INI-Lösung von Marc wäre dann interessant, wobei dann zusätzliche Prüfroutinen rein müßten, ob die Datei nun aktuell ist, oder eben nicht. Alles ziemlich aufwendig.

Zusammengefasst heißt das: Interesse ja, aber mir fehlt im Moment einfach der Ansatz einer sinnvollen Lösung.  Vielleicht hast du ja was?

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
4 Neue Tool's im FreeDownload(gesamt 33)!?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Konstrukteur Technischer Systemplaner BIM (m/w/d)

Von Industriebetrieb, Forschungszentrum, Krankenhaus, Büroimmobilie und Hochschule bis zur Elbphilharmonie oder Antarktisstation: Unsere über 300 Ingenieure sorgen für zukunftsweisende Energiesysteme, modernste gebäudetechnische Anlagen und innovative Gebäudedigitalisierung!

Im Geschäftsfeld Engineering erarbeiten unsere Ingenieurteams modernste Designlösungen für Energie- und Gebäudetechnik in allen relevanten Branchen und Institutionen....

Anzeige ansehenElektrotechnik, Elektronik
Dabrunz
Mitglied



Sehen Sie sich das Profil von Dabrunz an!   Senden Sie eine Private Message an Dabrunz  Schreiben Sie einen Gästebucheintrag für Dabrunz

Beiträge: 127
Registriert: 28.05.2003

erstellt am: 27. Jun. 2003 18:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

OK - nach einigen Tagen Abstinenz ganz kurz meinen Hauch einer Idee:

(0) Das Ding braucht einen Namen - ich nenn's IOCache

(1) Zumindest eine globale Variable werden wir brauchen, die alle Daten in Form eines Assoziations-Baums (kurz: AssocTree) bereit hält. Vorteil: Alle wesendlichen Basis-Funktionen für Daten-Zugriff und -Manipulations gibt's schon.

(2) Wir brauchen ein Kennzeichen, mit dem Zeichnungen innerhalb der gleichen AutoCAD-Session zur Synkronisation der der Daten gezwungen werden, wenn aus einer Zeichnung heraus eine Änderung erfolgt.

(2.1) Wir brauchen eine Kopie der Daten im BlackBoard-Namensraum, von dem aus die Synkronisation erfolgen kann, weil's der einzige Speicherplatz innerhalb einer AutoCAD-Session ist, auf den alle Zeichnungs-Namensräume zugreifen können.

(2.2) Alle Zugriffs- und Manipulations-Funktionen sollten in er Lage sein, zu prüfen, ob die DatenBasis synkronisiert werden muss und im Ideal das auch bei jedem Aufruf tun.

(3) Jede Applikation sollte unterscheiden können, welche Daten Ihr gehören und wenn's nicht die Programm-Logik erfordert die Finger von Teilen des AssocTrees lassen, die sie nix angehen. (Vielleicht sollten Applikationen ihre Zugriffs-Logik ebenfalls zur Verfügung stellen - aber wie??)

(4) Wesendliche Funktionen (unvollständig):


  • (IOCache-get <Application> <AssocTreePfad> )
  • (IOCache-set! <Application> <AssocTreePfad> <Wert> )
  • (IOCache-sync? <Application> )
  • (IOCache-sync! <Application> <toBlackBoard?> )
  • (IOCache-setSyncMark! <Application> )
  • (IOCache-removeSyncMark! <Application> )
  • (IOCache-clear! <Application> )

Was fehlt noch?
Oder ist's anders vorstellbar?

Achim Dabrunz

[Diese Nachricht wurde von Dabrunz am 30. Juni 2003 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz