Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Geschwindigkeits Problem

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:  Geschwindigkeits Problem (856 / mal gelesen)
Niggemann
Mitglied



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

Beiträge: 159
Registriert: 31.10.2003

Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010

erstellt am: 05. Jun. 2022 22:02    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 liebe Lispler,
zur Info:
Ich lese mit Lisp Datanorm Dateien ein, bearbeite sie und speicher die Daten in eine Access
Datenbank. Heute sind es 634379 Zeilen.
Mit einem XP Laptop ACAD 2004
Access Treiber Version 4.00.6305.00
Office Paket 2013
Bearbeitungszeit 25 min. und alles ist fertig.
Mit einem neuen Laptop Win10 64 Bit ACAD 2022 zum testen
Access Treiber Version 14.00.7010.1000
Office Paket 2016
Beabeitungszeit über 6h
Da ich eine Anzeige für den Datensatz habe der gerade gelesen wird, kann ich feststellen
das mit zunehmender Zeit das einlesen langsamer wird.
auf beiden Rechnern ist das selbe Lisp installiert.
Ich schreibe die Daten über ADOLISP in die Datenbank ein.
Unter Win 7 64 Bit ACAD 2010 war es deutlich schneller als mit dem Xp Rechner.
Hat jemand eine Idee wie ich die Bremse lösen kann?
Gruß
Niggemann

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: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 07. Jun. 2022 12:30    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 Niggemann 10 Unities + Antwort hilfreich

Hallo Niggemann,
sowas hatte ich mal beim Daten-Auslesen per ODBX.
War der Befehl vlax-ldata-put.

Bei mir lief Schritt für Schritt der Speicher voll und das Lisp wurde immer Langsamer bis praktisch zum Stillstand.
Hab ich rausgefunden indem ich Stück für Stück vom Programm auskommentiert hab bis die Bremse raus war.
Kann sein dass dir auch nichts anderes übrigbleibt als dich Schrittweise dem Übeltäter zu nähern.

Muss ja nicht sein dass dein Programm einen Fehler hat aber vielleicht eine ungünstige Kombination an Befehlen enthält.
Und dass sich manche Lisp-Befehle in neueren Versionen anders verhalten hab ich auch schon erfahren müssen. Da ist auch nicht alles besser blos weil es neuer ist.

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

Gruß
Andreas

http://kraus-cad.de

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

Niggemann
Mitglied



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

Beiträge: 159
Registriert: 31.10.2003

Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010

erstellt am: 07. Jun. 2022 15:02    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 Andreas,
darn habe ich auch schon gedacht, ist aber schwer nachvollziebar.
Ich benutze nur die SQL Befehle insert into, update, delte und select
um in die Datenbank zu schreiben oder abzufragen. Das heist ich lese einen Datanormsatz ändere darin ein oder mehrere Felder und schreibe diesen in die Datenbank. Also einmal insert into oder einmal update danach wird er nächste Datensatz gelesen und geschrieben.
Was ich am Wochenende raus gefunden habe, wenn ich den SQL Server vom System lösche geht es schneller. Ich muß mich auch korrigieren beim einlesen mit dem installierten SQL Server unter Win 10 ACAD 2022 waren
es 9h. Nach dem löschen des SQL Server waren es nur noch 4h. Also scheint das Problem am Access Treiber zu liegen, aber davon habe ich absolut keine Ahnung von wie man dieses Proplem lösen kann.
Alle anderen Lisp Programme die 2000 Datensätze aus der Datenbank laden laufen einwandfrei. Milliesekunden kann ich sowieso nicht sehen.
Gruß
Niggemann

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: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 08. Jun. 2022 08:18    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 Niggemann 10 Unities + Antwort hilfreich

Hm ... vielleicht wäre es interessant obs am Lesen, verarbeiten oder am Schreiben liegt.

Klammer doch mal das Schreiben aus und schau was passiert.

Bei meiner Excel-Schnittstelle hatte ich ganz am Anfang auch Zeile für Zeile bearbeitet, seit ich das Range-Objekt in ein Array auslese (und umgekehrt fürs Schreiben) geht das richtig schnell.
Vielleicht musst du nur irgend eine Kleinigkeit ändern

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

Gruß
Andreas

http://kraus-cad.de

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

Niggemann
Mitglied



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

Beiträge: 159
Registriert: 31.10.2003

Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010

erstellt am: 08. Jun. 2022 15:33    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 Klaus,
danke für den Hinweis, ich hab das schreiben abgeschaltet und es geht schneller, aber beim einlesen wird es mit zunehmender Zeilen Zahl langsamer Beispiel:
bis lese Zeile 1000, hier kann ich die 1. Stelle noch soeben lesen
ab lese Zeile 100000, hier kann ich die 3. Stelle noch soeben lesen
ab lese Zeile 300000, hier kann ich die 5. Stelle gemütlich lesen
und alles wird langsam die CPU Auslastung ist 42%
Die Anzeige der gelesenen Zeilen erfolgt in einem DCL Fenster nicht im Textfenster, die Anzeige im Textfenster dauerte in früheren ACAD Versionen zu lange.
Gerade noch bei einem anderen Programm getestet das nur liest und die Daten wieder auf die Festplatte schreib
ACAD 2004 auf XP Rechner 11 min
ACAD 2022 auf Win 10 Rechner nach 1,5h abgebrochen da erst die Hälfte der Daten verarbeitet wurde. Das gleiche Verhalten mit zunehmenden gelesenen Zeilen wird es langsamer.
ACAD 2022 hat wohl ein Problem Ascii Dateien zu lesen.
Es lebe der Fortschritt!
Gruß
Niggemann

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: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 09. Jun. 2022 07: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 Niggemann 10 Unities + Antwort hilfreich

Speicherst du das Gelesene in einer Liste oder bearbeitest du eine Zeile komplett als "temporärer Datensatz" ?

Wie ist denn deine Schleife fürs Lesen aufgebaut ? Foreach, mapcar oder irgendwas anderes ? Mit welchen Befehlen arbeitest du beim Lesen ? Da muss doch irgendwo die Bremse zu finden sein 

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

Gruß
Andreas

http://kraus-cad.de

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

Niggemann
Mitglied



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

Beiträge: 159
Registriert: 31.10.2003

Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010

erstellt am: 09. Jun. 2022 10: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

Hallo Klaus,
die Datanorm Datei ist im Prinzip eine CSV Datei ähnliche eine Excel Datei, nur mit dem Unterschied das in der 1. Zeile keine Feldnamen stehen. Ein Artikel kann je nach Satztyp 1 - ca. 50 Zeilen enthalten.
Beispiel eines einfachen Artikels mit 2 Zeilen:
A;A;1515457;00;CIMC VDE Einmaulschlssel        112726;SW 24 1000V isoliert;1;0;St;0; ;D;;
B;A;1515457;112726;112726; ;;;;4021103127261; ;83;0;1; ;;
so einen Artikel lese ich mit einer while ein und erstelle mir eine Zeile, diese werte ich aus und bearbeite wenn nötig einige Felder.
Die Felder bekommen eine Varialbe die ich vorher auf "" gesetzt habe.
(setq SKA "" VKZ_A "" ART_NR "" TKZ "" ART_TEXT1 "" ART_TEXT2 "" PKZ "" P_EINHEIT "" EINHEIT "" BRUTTO_PREIS "" RABATT_GRUPPE "" H_WARENGRUPPE "" LANGTEXT "")
danach durch forste ich die Zeile um die Felder zu füllen
(setq SEMI 0)(setq Z-NR 1)
      (repeat (strlen n)
      (setq X (substr n Z-NR 1) Z-NR (+ 1 Z-NR))
(cond ((= SEMI 0) (setq SKA X))
            ((= SEMI 1) (setq VKZ_A X))
            ((= SEMI 2) (setq ART_NR        (strcat ART_NR X)))
            ((= SEMI 3) (setq TKZ          (strcat TKZ X)))
            ((= SEMI 4) (setq ART_TEXT1    (strcat ART_TEXT1 X)))
            ((= SEMI 5) (setq ART_TEXT2    (strcat ART_TEXT2 X)))
          usw.
Wenn ich die Zeile abgearbeitet habe schreibe ich sie mit update oder insert in die Datenbank und das in dieser Variante schon über 10 Jahre
in einer anderen Variante über 25 Jahre ohne Probleme.
Gruß
Niggemann

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: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 09. Jun. 2022 14:23    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 Niggemann 10 Unities + Antwort hilfreich

Hallo Niggemann,
da hab ich grade auch keine Idee mehr ohne selbst das Programm mal auseinanderzunehmen.

Schreibst du die Daten direkt nach der Bearbeitung zurück in die Datei oder erst mal in eine Datenliste ?
Ich hab hier z.B. so ein "modernes" SharePoint-Laufwerk und das ist soooo elend langsam.

Ach übrigens ... ich heiße Andreas

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

Gruß
Andreas

http://kraus-cad.de

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

Niggemann
Mitglied



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

Beiträge: 159
Registriert: 31.10.2003

Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010

erstellt am: 09. Jun. 2022 16:24    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 Andreas,
mit dem Namen tut mir leid war keine böse Absicht.
Ich lese einen Artikel und speicher diesen sofort wieder.
Gerade habe ich mal einen Test gemacht wenn mein Lisp ausser lesen
nichts macht, nur zum lesen von 634379 Zeilen brauche ich genau 4 min.
Also muß in apply, strcat, substr oder reverse sich was zwichen ACAD 2004 und ACAD 2022 geändert haben, den diese 4 Befehle benutze ich noch.
In der Hilfe habe ich dazu nichts gefunden.
Gruß
Niggemann

Nachtrag
Gleiche Daten mit gleichen Lisp
ACAD 2004 nur lesen 1 min 62 sec,
mit Asatz verarbeiten  ohne schreiben 5 min
ACAD 2022 nur lesen 4 min,
mit Asatz verarbeiten  ohne schreiben 11 min
Dies Zeilen beinhalten den Asatz:
        (cond ((and (= (substr ZEILE 1 1) "A")
                (or (/= STK1 nil)(/= STK2 nil)(/= STK3 nil)
    (/= STK4 nil)(/= KZ1 nil)(= SUCHEN 1))
                ); ende and
              (setq A_SATZ ZEILE Z-NR 1)
                (setq SKA nil VKA nil AARTNR nil TKZ nil KTEXT1 nil KTEXT2 nil PKZ nil PE nil)                   
                (setq ME nil APREIS nil RABG nil WARG nil LTNR nil)
                (repeat (strlen A_SATZ)
        (setq X (substr A_SATZ Z-NR 1) Z-NR (+ 1 Z-NR))
                (if (= ";" X)(setq SEMI (+ 1 SEMI) X ""))
                (cond ((= SEMI 0)(setq SKA X))
                      ((= SEMI 1)(setq VKA X))
                      ((= SEMI 2)(setq AARTNR (cons X AARTNR)))
                      ((= SEMI 3)(setq TKZ (cons X TKZ)))
                      ((= SEMI 4)(setq KTEXT1 (cons X KTEXT1)))
                      ((= SEMI 5)(setq KTEXT2 (cons X KTEXT2)))
                      ((= SEMI 6)(setq PKZ X))
                      ((= SEMI 7)(setq PE X))
                      ((= SEMI 8)(setq ME (cons X ME)))
                      ((= SEMI 9)(setq APREIS (cons X APREIS)))
                      ((= SEMI 10)(setq RABG (cons X RABG)))
                      ((= SEMI 11)(setq WARG (cons X WARG)))
                      ((= SEMI 12)(setq LTNR (cons X LTNR))); Langtextnummer
                ); ende cond
                ); ende repeat
                (setq AARTNR (reverse AARTNR) AARTNR (apply 'strcat AARTNR))
                (setq TKZ (reverse TKZ) TKZ (apply 'strcat TKZ))
                (setq KTEXT1 (reverse KTEXT1) KTEXT1 (apply 'strcat KTEXT1))
                (setq KTEXT2 (reverse KTEXT2) KTEXT2 (apply 'strcat KTEXT2))
                (setq ME (reverse ME) ME (apply 'strcat ME))
(setq ME1 ME)
          (cond ((or (= ME "S")(= ME "ST")(= ME "STK")(= ME "St")
                      (= ME "STCK")(= ME "stck")(= ME "Stck"))
                      (setq ME STK1 ZSTK1 (+ 1 ZSTK1)))
                ((or (= ME "M")(= ME "m"))
                      (setq ME STK2 ZSTK2 (+ 1 ZSTK2)))
                ((or (= ME "PAAR")(= ME "PR")(= ME "Paar"))
                      (setq ME STK3 ZSTK3 (+ 1 ZSTK3)))
                ((or (= ME "SET")(= ME "Set"))
                      (setq ME STK4 ZSTK4 (+ 1 ZSTK4)))
                ((or (= ME "PK")(= ME "Pack"))
                      (setq ME STK5 ZSTK5 (+ 1 ZSTK5)))
;(ME T)
            ) ; ende cond
            (setq APREIS (reverse APREIS) APREIS (apply 'strcat APREIS))
            (setq RABG (reverse RABG) RABG (apply 'strcat RABG))
            (setq WARG (reverse WARG) WARG (apply 'strcat WARG))
            (setq LTNR (reverse LTNR) LTNR (apply 'strcat LTNR))
            (if (/= KZ1 nil)(setq VKA KZ1))
            (setq A-SATZ (strcat SKA ";" VKA ";" AARTNR ";" TKZ ";" KTEXT1 ";"
                                KTEXT2 ";" PKZ ";" PE ";" ME ";" APREIS ";" RABG ";"
                                WARG ";" LTNR ";" ))
; zum Testen auskommentiert
;X          (if (= SCHREIBEN 1 )(write-line A-SATZ EIN))
;X          (if (and E2 (= SCHREIBEN 1 ))(write-line AARTNR EIN2))
                (setq Z-NR 1)(setq SEMI 0)
              ); ende ausdr. "A"
              ((and (= (substr ZEILE 1 1) "A")(= SUCHEN 0)(= SCHREIBEN 1)
                    (= KZ1 nil)) (write-line ZEILE EIN))
        )

[Diese Nachricht wurde von Niggemann am 09. Jun. 2022 editiert.]

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: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 10. Jun. 2022 07:17    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 Niggemann 10 Unities + Antwort hilfreich

Da ist doch gar nichts schlimmes drin   .
Man kann das zwar etwas optimieren aber zeitkritisch ist hier auf den ersten Blick gar nichts.

Bau mal (notfalls Zeilenweise) das hier ein:

Code:
(defun k_time_ms (/ z)
;;; gibt die aktuelle Zeit in der Form HH:MM:SS:MS zurück
  (setq z (getvar "cdate"))
  (setq z (- z (fix z)))
  (setq z (substr (rtos z 2 9) 3))
  (while (< (strlen z) 8)
    (setq z (strcat z "0"))
  )
  (setq z (strcat (substr z 1 2)
  ":"
  (substr z 3 2)
  ":"
  (substr z 5 2)
  ":"
  (substr z 7 3)
  )
  )
)

Also (print k_time_ms)

Dann bekommst du schön nacheinander die Zeit von einem Befehl zum nächsten und siehst ziemlich gut wo genau die Bremse ist. Hat mir auch schon oft bei sowas geholfen.


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

Gruß
Andreas

http://kraus-cad.de

[Diese Nachricht wurde von Andreas Kraus am 10. Jun. 2022 editiert.]

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

Niggemann
Mitglied



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

Beiträge: 159
Registriert: 31.10.2003

Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010

erstellt am: 10. Jun. 2022 10:30    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 Andreas,
deinen Vorschlag werde ich am Wochenende testen, die Idee ist gut.
Aber was ist wenn ACAD den Rechner nicht richtig nutzt?
Von meinen 12 Kernen auf der CUP werden nur 2 genutzt, Kern 2 und 4, die aber richtig und der Rest schlummert vor sich hin, freigeben für ACAD sind alle 12 Kerne, und wenn man das hochrechnet wenn alle 12 Kerne arbeiten würden sieht es ganz andwers aus. Die Frage ist dann nur gibt es eine Einstellung um ACAD zu sagen das es auf Voller Leistung laufen soll.
Gruß
Niggemann

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2020
Plateia, Canalis
Visual Basic

erstellt am: 10. Jun. 2022 13: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 Niggemann 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Niggemann:
Von meinen 12 Kernen auf der CUP werden nur 2 genutzt, Kern 2 und 4, die aber richtig und der Rest schlummert vor sich hin, freigeben für ACAD sind alle 12 Kerne, und wenn man das hochrechnet wenn alle 12 Kerne arbeiten würden sieht es ganz andwers aus. Die Frage ist dann nur gibt es eine Einstellung um ACAD zu sagen das es auf Voller Leistung laufen soll.

Das wird sich auch so schnell nicht ändern:

Zitat:
Um Multi-Core-Prozessoren vollständig auszunutzen, verwenden Sie Multi-Thread-Software. AutoCAD ist vorwiegend eine Single-Thread-Anwendung.

Grüße
Klaus 

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

Niggemann
Mitglied



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

Beiträge: 159
Registriert: 31.10.2003

Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010

erstellt am: 12. Jun. 2022 22: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

So das Wochenende mit testen verbracht
Deine Funktion war mir eine große Hilfe, hab sie aber ändern müssen da ab ACAD 2017 sich was geändert wurde, lt. Offline Hilfe ACAD 2022.
    (defun K_TIME_MS (/ z ms)
;;; gibt die aktuelle Zeit in der Form HH:MM:SS:MS zurück
      (if (<= (atof (getvar "ACADVER")) 22.0)
      (progn
        (setq z (getvar "cdate"))
        (setq z (- z (fix z)))
        (setq z (substr (rtos z 2 9) 3))
        (while (< (strlen z) 8)
        (setq z (strcat z "0"))
        )
        (setq z (strcat (substr z 1 2) ":" (substr z 3 2) ":" (substr z 5 2) ":" (substr z 7 3)))
      );ende progn
      (progn
        (setq ms (getvar "MILLISEC"))
        (setq z (strcat (rtos (getvar "cdate") 2 6)(substr ms (- (strlen ms) 2))))
        (setq z (strcat (substr z 10 2) ":"(substr z 12 2) ":" (substr z 14 2) ":" (substr z 16 3)))
      );ende progn
      )
;      (print Z)
    )
Nach dem ich die Funktion eingebaut habe und meine Anzeige der gelesenen Zeilen im DCL Fenster abgeschaltet habe bekomme ich folgende Zeiten bei den mehr als 600000 Zeilen:
ACAD 2022 Anzeigen der gelesenen Zeilen abgeschaltet nur lesen und Asatz bearbeiten mit abschalten der Zähler ZSTK1 und ZSTK2 nur noch 20 min
3 Zeilen in 1ms verabeitet dann 15 ms pause und wieder 3 Zeilen in 1ms verarbeite bei 0 - 50 Zeilen
2 Zeilen in 1ms verabeitet dann 15 ms pause und wieder 1 -2  Zeilen in 1ms verarbeite bei 300000 - 300050 Zeilen
Mit Anzeigen der gelesenen Zeilen eingeschaltet nur lesen ohne schreiben 32 min, also ist die Anzeige der gelesenen Zeilen eine Bremse. Eine Anzeige im Textfenster geht nicht da dieses während der Laufzeit nicht aktualisiert wird.
Mit eingeschalteten Zähler 21 min
Zähler ZSTK1 ist am Ende bei 303846
Zähler ZSTK2 ist am Ende bei 9170
Also machen solche Variablen kaum was aus.
Ich gehe mal davon aus das man daran nichts ändern kann, an Lisp
scheint es nicht zu liegen.
Da hat wohl Autodesk kräftig an der Konsole geschraubt,
das Problem  kann ich nur etwas minimieren und habe dafür aber keine Information wieviel Zeilen gelesen werden und ob das Programm noch arbeitet.
Nur zur Info, ACAD 2004 schreibt nach der Zeitmessung 11 - 14 in 1 ms
ohne eine Pause von 15 ms einzulegen.
Gruß
Niggemann

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: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 13. Jun. 2022 08:33    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 Niggemann 10 Unities + Antwort hilfreich

Moin Niggemann,
genau diesen Effekt hatte ich bei meiner Excel-Schnittstelle auch, deshalb hab ich die umprogrammiet und lese das Range-Objekt in ein Array und mache daraus eine Liste zum verarbeiten. Beim Schreiben dann andersrum. Seitdem gehts wieder.
Da hab ich alle Infos hier im Forum gefunden. Danke nochmal an alle Beteiligten.

Mit so großen Dateien hab ich zum Glück nichts zu tun aber der Effekt ist wohl der Selbe ... interessant.
Keine Ahnung was genau ADesk da geändert hat (und warum überhaupt) aber ärgerlich ist es auf alle Fälle.

Vielleicht weis ja jemand mit welchen Tricks man Dateizugriffe beschleunigen kann, da hab ich mich noch nicht so mit beschäftigen müssen.

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