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:D

    2.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 helfen

    PS:GetTickCount() gibt die zeit seit systemstart wieder:D


Anmelden zum Antworten