Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Speicher wird voll und Programm wird langsamer bis zum Stillstand

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
Autor Thema:   Speicher wird voll und Programm wird langsamer bis zum Stillstand (341 mal gelesen)
Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1192
Registriert: 11.01.2006

WIN 10
ACAD 2017

erstellt am: 04. Aug. 2020 13:58    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

Hallo zusammen,
ich habe folgende LISP-Konstuktion:
Code:
(foreach dwgname files_list
    (vla-open (setq dbx (k_get_interface_object))
      dwgname
    )
;;; mach was in der Datei
    (k_erfassung_work dbx)
    (k_rp004_work dbx)
    (k_elt_002 "Erfassen" dbx)
    (vla-saveas dbx dwgname)
    (not (vl-catch-all-error-p
  (vl-catch-all-apply
    'vlax-release-object
    (list DBX) ;_DBX-Verknüfung wieder freigeben
  )
)
    )
    (gc)
    (princ)
  )

Das Problem dabei ist dass bei jeder Datei die Speicherauslastung (im Task Manager) hochläuft und das LISP etwas langsamer wird bis es einfach stehenbleibt und ich ACAD per Taskmanager killen muss. Mehr als 4-5 Dateien nacheinander gehen nicht. Dann muss ich ACAD schließen, neu starten und mit den Dateien weitermachen. Die aktuelle Datei schließen bringt auch nichts, ACAD muss komplett zu. Nervt ganz schön.

Ich hab mich noch nicht mit Speicherbedarf usw. beschäftigt weil ich bisher kein Problem damit hatte.
Hab mal zum Ausprobieren (gc) ins Programm geschrieben ... hat nix gebracht.
Kann mir mal jemand einen kräftigen Tritt in die richtige Richtung geben ?

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1677
Registriert: 11.10.2004

Window 8.1
ACAD 2012-2020
CIVIL 2012 - 2020
BricsCAD V14-V20
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050

erstellt am: 08. Aug. 2020 15:11    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 Andreas Kraus 10 Unities + Antwort hilfreich

Hallo Andreas,
ich würde zumindestens die Rückgabe der Funktion VL-CATCH-ALL-ERROR-P auswerten:
Code:

(if (vl-catch-all-error-p
        (vl-catch-all-apply
          'vlax-release-object
          (list DBX) ;_DBX-Verknüfung wieder freigeben
        )
      )
    (alert "Fehler bei Release")
  )

Desweiteren würde ich alle Funktionen auskommentieren und dann immer nur eine testen, um zu prüfen, ob diese Deinen Speicher zumüllen.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Multifilter Youtube

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1192
Registriert: 11.01.2006

WIN 10
ACAD 2017

erstellt am: 09. Aug. 2020 12:13    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

Danke Jörn,
hab gestern noch dran rumprobiert.
Die Funktion (k_rp004_work dbx) ermittelt für alle Blockeinfügungen Raumpolygone und schreibt Daten in die Objekte.
Wird dann für Massenermittlung, Raumbuch, Schemapläne, usw. verwendet.

Folgende Erkenntnisse:
- Es liegt NICHT an ODBX
- es liegt ziemlich eindeutig daran dass die Daten in die Objekte geschrieben werden.
- ich verwende dafür erweiterte Elementdaten, muss noch testen ob das mit Attributen auch passieren würde.
- das reine Ermitteln der Daten macht nichts, erst das Schreiben der Daten erhöht der Speicherbedarf.
- Wenn (k_rp004_work dbx) nicht ausgeführt wird oder dort das Schreiben in die Objekte auskommentiert ist, läuft alles super.

Meine Funktion um Daten in Objekte zu schreiben ist ziemlich komplex weil hier beliebige Daten in beliebige Objekte geschrieben werden können. Ich reduziere das mal auf EEDs und schau mal was passiert.

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1192
Registriert: 11.01.2006

WIN 10
ACAD 2017

erstellt am: 09. Aug. 2020 15:50    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

Hab auch noch z.B. das hier gefunden:
https://ww3.cad.de/foren/ubb/Forum54/HTML/003875.shtml#000004

Ist zwar von 2003 aber kann ja sein dass sich da nix getan hat 

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1677
Registriert: 11.10.2004

Window 8.1
ACAD 2012-2020
CIVIL 2012 - 2020
BricsCAD V14-V20
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050

erstellt am: 10. Aug. 2020 07:40    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 Andreas Kraus 10 Unities + Antwort hilfreich

Hallo Andreas,
wie speicherst Du die erweiterten Elementdaten an die Objekte, mit ENTMOD und Gruppencode -3 oder über vla-SetXData?

Ich hatte vor ein paar Jahren auch schon mal ein Problem mit Xdaten innerhalb eines DBX-Objektes gehabt, dann habe ich anstelle ENTMOD vla-SetXdata verwendet und der Spuk war vorbei. Leider weiß ich nicht mehr, wodrin in meinem Fall das Problem lag, aber für Dich wäre es vielleicht ein Versuch wert, es mit einer anderen Variante zu probieren.
Viel Glück.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Multifilter Youtube

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1192
Registriert: 11.01.2006

WIN 10
ACAD 2017

erstellt am: 10. Aug. 2020 17:19    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

Hm ... also ich verwende grade vla-SetXData und wollte jetzt mal die ENTMOD-Methode versuchen.
Is ja lustig 
Hatte aber heute noch keine Zeit. Die Arbeit, die Arbeit.

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1192
Registriert: 11.01.2006

WIN 10
ACAD 2017

erstellt am: 10. Aug. 2020 21:35    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

Ich glaube es ist _UNDO.
Habs grade ausprobiert, teste es aber nochmal morgen in der Firma auf der Maschine wo es die Probleme gab.

Wenn ich _UNDO ausschalte bleibt hier der Speicherbedarf wo er ist. Schwankt wärend der Ausführung etwas aber so im Großen Ganzen tut sich nix.
Wär ja fast zu einfach um gleich drauf zu kommen 

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1192
Registriert: 11.01.2006

WIN 10
ACAD 2017

erstellt am: 23. Sep. 2020 08:32    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

Hatte endlich wieder Zeit zum Suchen 
Habs gefunden 
Oh ... wie blöd war das denn   

Hab eigene INI-Dateien die ich so aufgebaut habe dass ich die mit LOAD laden kann.
Dabei wird auch gecheckt ob sich was aktualisiert hat.
Das ist mir in eine Schleife geraten und ich hatte bei jedem Zugriff auf die INI-Daten auch einen LOAD-Befehl um die Datei zu checken.
Bei JEDER Änderung von Attributen, Parameter, EEDs.
Hunderte von LOADs

Das macht den Speicher voll und den Rechner langsam.

Jetz hab ich ein LOAD am Anfang und dann ist Ruhe.

Ich frage mich aber ob man irgendwie verhindern kann dass, wenn mit LOAD immer wieder dasselbe geladen wird, der Speicher immer weiter vollläuft und ACAD ausgebremst wird.
Wenn da jemand was weiß ... ich lerne gerne dazu 

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1192
Registriert: 11.01.2006

WIN 10
ACAD 2017

erstellt am: 23. Sep. 2020 08:54    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

Update zu meiner Antwort 

Es ist nicht LOAD ... es ist vlax-ldata-put 

Jetzt weiß ich was ich umbauen muss

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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)2020 CAD.de | Impressum | Datenschutz