Autor Beitrag
Visum
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Mi 28.01.09 21:50 
Hallo zusammen!

Ich versuche mich gerade an Named Pipes und dabei ist mir die ein oder andere Frage gekommen:

Zum einen: Die Pipe ist "synchron" (PIPE_WAIT). Hat die Puffergröße, die ich beim erstellen der Pipe angebe jetzt überhaupt irgendeine Aussage? Ich habe das ganze mit verschiedenen Größen getestet und keinen Unterschied feststellen können. Ich hab die Puffergröße sogar auf einen Wert kleiner der verschickten Nachricht (3kb bei einer Nachrichtengröße von 4kb) gesetzt. Müsste die Pipe dann nicht eigentlich komplett blockieren?

Zum anderen: Wie erstelle ich zum senden/empfangen einen Buffer mit beliebiger Größe?

Hoffe ihr könnt mir helfen,
vis

_________________
Was blubbert kommt in den Teich!
Visum Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Sa 31.01.09 14:11 
"Update" ..

Also, die zweite Frage hat sich lösen lassen. Hab über AllocMem den Speicher reserviert und im Read/WriteFile die Größe einfach explizit angegeben. Sieht zwar etwas komisch aus, aber hat seinen Zweck erfüllt.

Die erste Frage versteh ich immernoch nicht.

Und es ist noch eine dritte Frage zu Pipes hinzugekommen: Das Programm dient dazu den Datendurchsatz über eine Pipes bei verschiedenen Buffergrößen zu testen. Dabei ist aufgefallen, dass die Übertragungsraten auf meinem Netbook (Win XP SP3 32Bit, SingleCore Atom, 1GB Ram) höher waren als auf meinem Rechner daheim (Vista 64 Bus., Core2Quad, 4GB Ram). Hat dafür jemand eine Erklärung? Oder kann es sein, dass unter Vista der QueryPerformanceCounter anders funktioniert als unter XP und dadurch die Messung verfälscht wird?

(Ich hoffe die neue Frage weicht jetzt nicht zu sehr vom Thema ab)

Gruß,
vis

_________________
Was blubbert kommt in den Teich!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 31.01.09 14:48 
user profile iconVisum hat folgendes geschrieben Zum zitierten Posting springen:
Oder kann es sein, dass unter Vista der QueryPerformanceCounter anders funktioniert als unter XP und dadurch die Messung verfälscht wird?
Machst du nur eine Messung von wenigen Mikrosekunden? Dann kannst du das Ergebnis vergessen. Die Messdauer muss schon etwas höher sein. Normalerweise macht man 100 Durchläufe oder so und teilt das Ergebnis dadurch.

user profile iconVisum hat folgendes geschrieben Zum zitierten Posting springen:
Dabei ist aufgefallen, dass die Übertragungsraten auf meinem Netbook (Win XP SP3 32Bit, SingleCore Atom, 1GB Ram) höher waren als auf meinem Rechner daheim (Vista 64 Bus., Core2Quad, 4GB Ram). Hat dafür jemand eine Erklärung?
Die Geschwindigkeit des RAMs kann ein Grund sein. 4 GiB heißt ja nicht, dass der auch schnell ist. No name RAM bringt teilweise deutlich merkbare Leistungseinbußen.
Visum Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Sa 31.01.09 20:40 
Ich messe mehrere Durchläufe und nehme davon die Zeit. Der Ram ist auch kein NoName-Gedöns.

Und ich hab grad nochmal drübergeschaut .. nen Rechenfehler gefunden .. und jetzt sieht das ganze aus wie erwartet.

Von daher ist bereits alles erledigt.

Danke trotzdem ;)

_________________
Was blubbert kommt in den Teich!