vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Suche nach besserer Performance 
Autor: VBStein
Datum: 21.05.08 19:09

Hai,

winzige Rechnung: 33000 * 256 = 8.448.000 Bytes.

VB hat ja dann Tapfer hin und her geschaufelt wenn es sich nicht ganz aufgehängt hat, weil ein String größer 2,2 MB ist ja schon ziemlich am Limit. Verdacht: Vielleicht wurde sogar ein Variant damit beglückt und vielleicht ist fList sogar gar nicht explicit als String deklariert worden.

Eigentlich ist ein Array aus Strings ja überflüssig wenn ich den Member: pFrom so betrachte.

<i>pFrom

Pointer to a buffer that specifies one or more source file names. Multiple names must be null-separated. The list of names must be double null-terminated.</i>

Das muss kein String sein.

Jetzt mal überlegen:
Wenn ich das Array, das bisher die Pfad und Dateinamen, als String deklariere habe ich nicht das gewünschte Format das pFrom gerne hätte, also muss ich umständiglich aus dem Array einen String basteln, von dem ich bisher Glück hatte, dass mit das String - Limit nicht um die Ohren fliegt.
Ich sehe darin: Einen Weg zuviel und mehrere Risiken zuviel - zuviele Schritte als wenn man von Anbeginn an die Filenames in ein Byte-Array speichert! Und dann ohne weiteren Kommentar den Zeiger auf das Byte Array an pFrom übergibt und schon läuft es.
Jetzt hab VB aber für Byte nicht ein Byte sondern ein Byte sind tatsächlich zwei Byte im Speicher

Noch weiter grübeln. Ich zerlege mal einen Stringnahmen in char[] ein Nullbyte was mir ZeroMemory aus einem riesigen Stück Speicher zimmert und füge char für char die Filenames in diesen Speicherteppich ein, dessen Addresse ich dann an pFrom unterjuble und schon brummt die Kiste

Also ich würde das mit einer Klasse lösen die die Filenamen entgegennimmt, sie in einen Speicher packt und als Eigenschaft dann die Addresse auf diesen Bereich liefert, der einfach an pFrom übergeben wird.

Kein Array, kein String sondern eine Klasse erledigt die Aufbereitung der Daten die pFrom erwartet.
Wenn Interesse daran besteht sein Programm um richtige Größenordnungen zu beschleunigen, dann poste ich die Klasse
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Suche nach besserer Performance982luet21.05.08 17:57
Re: Suche nach besserer Performance535Zardoz21.05.08 18:08
Re: Suche nach besserer Performance489luet21.05.08 19:08
Re: Suche nach besserer Performance507VBStein21.05.08 19:09

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel