Bandbreitenmessung mit Thread, Process
-
Hallo, ich habe nachfolgende Aufgabenstellung bekommen. Ich soll testen wieviel Bandbreite die Nutzung des Netzwerk-Stacks im Vergleich zur Interprocess Kommunikation und zur Treadkommunikation verbraucht. Hierzu soll ich einen 1000 maligen Kopiervorgang von einem Integer Array mit 1000 Elementen implementieren und die Kpierzeit messen.1. mit 2 Processen welche den Array hin und her kopieren dabei soll die Kopierzeit gemessen werden
2. mit einem Process mit 2 Threads die den Array hin und her kopieren dabei soll ebenfalls die Kopierzeit gemmesen werden.
3. mit einem TCP-Client und einem TCP Server (jeweils localhost) die den Array 1000 mal hin und her kopieren.
Kann mir jemand dabei helfen?

-
Fang an und meld dich wenn du auf Probleme stößt.
-
also beim 1. einfach ein programm schreiben was dass array hin und her kopiert:D
und am Anfang und am Ende GetTickCount aufrufen und miteinander vergleichen:D2.Du musst hier mit CreateThread arbeiten z.B so:
DWORD WINAPI ThreadFunc1(LPVOID Data);//hier von 0 bis 500 DWORD WINAPI ThreadFunc2(LPVOID Data);//hier von 501 bis 1000 int main() { HANDLE hThread1 = CreateThread( NULL, 0, ThreadFunc1, 0, 0, &dwThread1 ); HANDLE hThread2 = CreateThread( NULL, 0, ThreadFunc2, 0, 0, &dwThread2 ); } DWORD WINAPI ThreadFunc1(LPVOID Data) { for (int index=0; index<500; index++) { //Array Tausch Code } } DWORD WINAPI ThreadFunc2(LPVOID Data) { for (int index=501; index<1000; index++) { //Array Tausch Code } }ist frei weiß nicht ob der code geht:D
3. müsstest du dich mal mit sockets beschäftigen:
unter:http://www.c-worker.ch/tuts/wstut_op.php
lies dir dass mal durch hoffe ich konnte helfenPS:GetTickCount() gibt die zeit seit systemstart wieder:D