vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Geschwindigkeitsverlust die Zweite 
Autor: mathemike
Datum: 03.07.12 09:33

Hallo ! Ich habe wieder ein Problem mit einem Geschwindigkeitsverlust beim Umstieg von VB6 in VB.NET. Ich habe eine sehr große Textdatei (2GB), die Zeilen identischer Länge=100 enthält und die sortiert ist. Die Datei soll keinesfalls in eine Datenbank umgewandelt werden und kann auch nicht komplett im Speicher gehalten werden.

Der VB6-Zugriff in der Art

Dim wert as String*102
Open datei for Binary as #1
j=(i-1)*102+1
Get #1,i,wert 'Index ab 1

läuft für vorgegebenen Datensatz Nummer i nicht nur problemlos, sondern extrem schnell. Ich habe eine Suche per Intervallschachtelung drumrum geschrieben, die es mir erlaubt, einen Datensatz in weniger als einer Sekunde zu suchen. Die Länge=102 oben ergibt sich natürlich wegen der beiden Satzendezeichen.

Nun bin ich auf NET umgestiegen und habe die Zeilen wie folgt umgeschrieben :

Dim fs as Filestream, r as Binaryreader, wertc(101) as Char

fs = New Filestream(datei, Filemode.Openorcreate, Fileaccess.Readwrite)
r = New Binaryreader(fs)
j=(i-1)*102
r.Basestream.Position=j
wertc=r.Readchars(102)
wert=New String(wertc) 'Index ab 0

Das Ergebnis ist hier genauso wie beim VB6-Programm. Läuft gut und sicher für vorgegebene Datensatznummer i, erzeugt dieselben Ergebnisse (bis auf die kleine Indexverschiebung). Aber leider dauert der Zugriff circa doppelt so lange. Kann man das schneller hinbekommen ? Mit einem r.readstring klappt es irgendwie nicht. Die Zuweisung in ein Array wertc und dann in einem String wert ist irgendwie überflüssig oder nicht ? Wichtig dabei : Der binäre Zugriff muss unbedingt(!) sein.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Geschwindigkeitsverlust die Zweite1.161mathemike03.07.12 09:33
Re: Geschwindigkeitsverlust die Zweite716Manfred X03.07.12 11:00
Re: Geschwindigkeitsverlust die Zweite700mathemike03.07.12 12:59
Re: Geschwindigkeitsverlust die Zweite720Manfred X03.07.12 13:09
Re: Geschwindigkeitsverlust die Zweite711mathemike03.07.12 13:43
Re: Geschwindigkeitsverlust die Zweite717Manfred X03.07.12 13:52
Re: Geschwindigkeitsverlust die Zweite694ModeratorFZelle03.07.12 14:02
Re: Geschwindigkeitsverlust die Zweite811mathemike03.07.12 14:14
Re: Geschwindigkeitsverlust die Zweite796sv0001003.07.12 18:43

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-2024 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