Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  MicroStation/PowerDraft (J, V8, XM, V8i)
  MDL Fehler in V8i

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:  MDL Fehler in V8i (916 mal gelesen)
cdv
Mitglied
Freiberufler


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

Beiträge: 15
Registriert: 24.11.2011

Win V7 Prof 64 bit
V8, V8i

erstellt am: 15. Jul. 2013 11:36    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

Eine Frage an MDL- Entwickler:

Scheinbar tritt bei massenhaften Zugriffen auf die Oberfläche in der V8i (bei "pure" MDL- Programmen) ein Fehler auf - MicroStation friert komplett ein.
Z.B.
  for (i=0; i<200000; i++)
  {
      percentcomplete = 100*(i+1)/200000;
      mdlDialog_completionBarUpdate (dbPStatus, "hallo", percentcomplete);
  }
friert irgendwo "in der Mitte" ein.

Dito bei Ausgabe über mdlOutput_message oder eine eigene Dialogbox. D.h. bei länger laufenden
Prozessen ist ein Feedback an den Nutzer nicht möglich. Der Witz: mit V8 übersetzt läuft's - dann
halt nur mit der "rustikalen" Oberfläche.
Das sieht irgendwie so aus, dass Bentley hierbei ein Speicher, Handle oder sonstwas überläuft...
Die Frage: Ist der Effekt bekannt und vor allem  - zu umgehen?

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

stark
Moderator
Dipl.Informatiker


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

Beiträge: 680
Registriert: 27.06.2001

MicroStation V8i auf Windows 7 + 8.1

erstellt am: 15. Jul. 2013 13:46    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 cdv 10 Unities + Antwort hilfreich

Hab ich so nicht beobachtet, allerdings macht es m.E. auch wenig Sinn, die kompletten 200000 Nachrichten 'ausdrucken' zu lassen. Wenn ich mit solchen Mengen rechne, kann ich im Vorfeld schon definieren, das z.B. bloß jeder 2000. Wert überhaupt eine Änderungsnachricht bewirkt. Im Hintergrund muss nämlich für jeden String eine neue Variableninstanz erzeugt werden (könnte ja anders sein), welche dann irgendwann bereinigt wird (Garbage Collector) und das kann durchaus eine Weile dauern.

mal davon abgesehen, das bei mir die Funktion mdlDialog_updateCompletionBar heißt, wenn sich da was getan hätte, dann ggf. auch mit dem Hintergrund geänderter Speichernutzung. Das mit V8 übersetzt und mit V8i laufen lassen da was ändert würde mich wundern. In V8 (bis 2004) war die Speicherverwaltung (ohne .Net im HIntergrund schon anders, aber für echte MDL und keine Nativcode Sachen sollte es da keinen Unterschied geben

------------------
Wer's nur glaubt, weiß es nicht !
Rechtschreibfehler gibt's gratis 

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

cdv
Mitglied
Freiberufler


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

Beiträge: 15
Registriert: 24.11.2011

Win V7 Prof 64 bit
V8, V8i

erstellt am: 15. Jul. 2013 14:05    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 stark, ein weinig hatte ich ja auf eine Reaktion von Dir spekuliert...
- offensichtlich gibt es tatsächlich beide Funktionen (siehe MDLAPIFunctionReference)
- GarbageCollektor kann gut sein, ist aber so oder so Mist...
- Na klar kann man vorher in etwa abschätzen, wie oft man solche Aufrufe braucht. Trotzdem habe ich jetzt den höheren Aufwand, weil sich irgend jemand die Implementation leicht gemacht hat. Und kann bei jedem Aufruf eines Fensters überlegen, wie oft der vorkommt.
- Meine Behauptung bzgl .der V8 überprüfe ich noch mal...

Viele Grüße und danke für die Antwort
Thomas

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

cdv
Mitglied
Freiberufler


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

Beiträge: 15
Registriert: 24.11.2011

Win V7 Prof 64 bit
V8, V8i

erstellt am: 15. Jul. 2013 14: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

Und Du hattest recht - mit der V8- Version klemmt's genau so.
Allerdings nur in der V8i, in der V8 läuft's.
Da ergeben sich aber gleich weitere, grundsätzliche Fragen:
Wenn mir schon von hinten durch die Brust ein GarbageCollector untergejubelt wird - kann ich dann wenigstens auch "von Hand" aufräumen? Analog GC.Collect in VB?

Viele Grüße
Thomas

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

stark
Moderator
Dipl.Informatiker


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

Beiträge: 680
Registriert: 27.06.2001

MicroStation V8i auf Windows 7 + 8.1

erstellt am: 15. Jul. 2013 15:56    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 cdv 10 Unities + Antwort hilfreich

Ich kann das Ganze bei mir auch mal testen, wird allerdings diese Woche nix, bin ab morgen früh in Holland bei Bentley, es könnte im Extremfall auch noch am Zusammenspiel mit der Grafik liegen, schließlich läuft alles über DirectX, auch die Dialogsteuerung, und es gibt bekannte Probleme z.T. mit der DirectX11 als auch mit den Treibern bei NVIDIA (angeblich mit dem letzten beseitigt)

------------------
Wer's nur glaubt, weiß es nicht !
Rechtschreibfehler gibt's gratis 

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