Page 1 of 1

Unique Superseded Update

PostPosted: 07.06.2012, 21:11
by aker
Ich habe bei der Entwicklung verschiedener Programme in VB2008 mitbekommen, wie man die Ermittlung von Superseded Updates beschleunigen.
Im Moment funktioniert das ja so, dass ein sortiertes Dokument über einen Leser zeilenweise gelesen wird und beim Vergleich
Code: Select all
Do While Not inputFile.AtEndOfStream
  strCurrentLine = inputFile.ReadLine()
  If strCurrentLine <> strLastLine Then
    outputFile.WriteLine(strCurrentLine)
  End If
  strLastLine = strCurrentLine
Loop

mit der letzten Zeile abgeglichen wird.
Es ist aber auch möglich zu prüfen, ob ein String eine Zeile bereits enthält (getrennt mit Trennzeichen, z.B. ";")
Code: Select all
If Instr(strFeatureID,"HMV") <> 0 then
   strfeaturetype="HMV"
elseif Instr(strFeatureID,"HMR") <> 0 then
   strfeaturetype="HMR"
elseif Instr(strFeatureID,"SHMR") <> 0 then
   strfeaturetype="SHMR"
elseif Instr(strFeatureID,"SHMV") <> 0 then
   strfeaturetype="SHMV"
End if
(Quelle)
Diesen String könnte man dann wie im Orginal über einen Streamwriter geschrieben werden.
Das würde das Sortieren ersparen und den Vorgang beschleunigen.

VB2008 Beispielcode
Code: Select all
dim oldString as string = "a;b;c;b;a"
dim newString as string = ""
for i as integer = 0 to Ubound(Split(oldString, ";"))
if oldString = "" then
newString = Split(oldString, ";")(i)
else
if newString.Contains(Split(oldString, ";")(i)) = False then
newString = newString = newString & ";" & Split(oldString, ";")(i)
end if
end if
next
' newString wäre nun gleich "a;b;c"


Viele Grüsse

Re: Unique Superseded Update

PostPosted: 14.06.2012, 13:23
by WSUSUpdateAdmin
Moin!

Ich hab' mal spaßeshalber vier weitere Messpunkte eingebaut:
Code: Select all
14.06.2012 14:19:49,68 - Info: Starting sort
14.06.2012 14:19:49,85 - Info: Ending sort
14.06.2012 14:19:49,85 - Info: Starting unique
14.06.2012 14:19:50,26 - Info: Ending unique

Daher sehe ich hier im Moment keinen Handlungsbedarf.

Gruß
Torsten Wittrock

Re: Unique Superseded Update

PostPosted: 14.06.2012, 15:07
by aker
Gut, bei meinem lahmen PC dauert das. Darum der Code zu Beschleunigung

Viele Grüsse

Re: Unique Superseded Update

PostPosted: 14.06.2012, 15:42
by Denniss
Genau, das dürfte sehr stark von der Leistungsfähigkeit des Prozessors (und wohl Speicher) abhängen - viel Kerne, hohe Taktfrequenz und viel Speicher beschleunigen das halt. Eine langsame oder stromsparende CPU niedriger Taktfrequenz und Kernzahl würde bei Optimierungen im Code sicherlich deutlicher abweichen.