C# String Performanz – Macht Optimierung Sinn?

Hi,

Worum geht es hier?

String sind Zeichenketten in Programmiersprachen. Ein wichtiger Aspekt bei C# (und einigen anderen Sprachen) ist, das Strings immutable (unveränderlich) sind.

Was kann man sich darunter vorstellen?

Ein String ist eine Zeichenkette, z.B. “Hallo”. Intern wird der String in einem zusammenhängendem Datenbereich, einem Array, als einzelne Zeichen gespeichert. Hallo ist also [‘H’,’a’,’l’,’l’,’o’]. Möchte man einen String mit einem anderen verknüpften, so kann dies nicht im gleichen Array passieren (es ist ja schon sozusagen “voll”). Je nach Technik wird im Normalfall das Array in ein neues Array umkopiert, welches genug Platz für den neuen String bietet.
weiterlesen →

0 Bytes?

Hallo,

es gibt immer mal Probleme mit 0-Byte Ergebnisdateien. Die entstehen normalerweise aus 2 Gründen:

  • die Software kann den Laser nicht erkennen
  • die Software findet keine Überschneidungspunkte

Zum ersten Bereich gab es bereits den Beitrag mit den Filtern. Der Beitrag ist leider nur die halbe Wahrheit. Wenn der Hintergrundbereich ungünstig ist (Folie/Farbe wurde verwendet, dazu kommen wir unten noch) dann sind die Reflexionen vom Laser eventuell nicht zu erfassen.
weiterlesen →

Generische Singletons mit C#

In der objektorientierten Softwareentwicklung ist es meist verpönt, globale Variablen oder Objekte zu verwenden. Und doch gibt es viele Anwendungen, an denen es einfacher ist ein globales Objekt zu haben, statt Parameterurwälder zu bilden und alles in einzelne Methoden durchzureichen. Ein Anwendungsbeispiel könnte ein globaler Logmechanismus sein.

Eine Lösung bietet das Erzeugungsmuster “Singleton”. Ein Singleton ist ein Entwurfsmuster, welches im Buch Entwurfsmuster . Elemente wiederverwendbarer objektorientierter Software von Gamma, Helm, Johnson und Vlissides (der sogenannten Gang of Four) beschrieben wurde.
weiterlesen →

Simple3DScan 0.1.0

Hallo,

es gibt einige Updates zu der Simple3D-Scansoftware.

Möchte man es wie bisher nutzen, kann man einfach weiter auf der Hauptseite eine Kamera auswählen und einen Scan starten.
Startseite 0.1.0

Neuerungen

Als Hauptneuerungen sind folgende Eigenschaften hinzugekommen:

  • Erweitertes Logging mit Postsharp – im Logordner bleibt nur eine Logdatei, momentan wird zunächst relativ ausführlich geloggt
  • Simple/Advanced Mode ist weggefallen, jetzt sind alle EInstellmöglichkeiten immer sichtbar, aber als einfacher Einstieg muss nur die Programmstartseite genutzt werden
  • Einführung von Konfigurationsdialogen (dazu unten mehr)
  • Einstellmöglichkeiten zur Genauigkeit der Scans.
  • Erweiterte Einstellungen zum Drehteller
  • Sprache ist jetzt Deutsch wählbar (in den Konfigurationen unter “Language”)
  • Einstellmöglichkeiten zur Bilderkennung (auch dazu unten mehr)
  • Fehlerbehebung bei Verbindungsabbruch zu Arduino
  • Versionsnummer im Titel
  • PDB-Dateien werden zum Debuggen mitgeliefert (wenn es jemand möchte)
  • Bei den runden Wahlschaltern gab es hin und wieder Probleme das ein benachbarter Wert genommen wurde die jetzt behoben sein sollten.
  • Kamera kann über den Button “Reload”/”Neu” refreshed werden
  • Während dem Scan werden die Konfigurationsdialoge / manuelle Kontrolle gesperrt

weiterlesen →