Avatar billede krismort Nybegynder
09. juni 2004 - 12:13 Der er 3 kommentarer

brug af select()

Hej
Jeg har fået til opgave at programmerer en skalabil server men ved ikke ret meget om optimering af serverer. Indtil viderer bruger jeg select() til at bstemme om der for eksempel er noget data der skal læses fra en fd, problemet er jo bare at et fd_set ikke er dynamisk det gør nu i sig selv ikke så meget for det skulle ikke være noget problem at lave om på vidt jeg kan se.
Mit/mine spørgsmål er så:
1. Hvad sker der med hensyn til effiktiviteten hvis jeg definerer en FD_SETSIZE  1024 og kun har 50 sockets connected.
2. HVad sker der hvis jeg definerer FD_SETSIZE på 25000 (bare dynamisk) og har 25000 connections ? Hvordan kommer det til at påvirke select metoden ?
3. Ville det være bedre hvis jeg lavede x antal tråde til at håndtere y * fd_set (á 64,standard) ?

Er der nogen som for eksempel kan hoste op med nogen tal på hvor hurtigt select fungerer på et fs_set som er stat til at håndtere x antal sockets, så skal de være meget velkomne til at skrive dem her :)

Tak
  Kristian
Avatar billede danielhep Nybegynder
09. juni 2004 - 20:03 #1
Du skal bruge multiple threads hvis du skal over "64 sockets limitations" fordi der er nogle Service Providers forventer der er 64, og derfor ignorere socket over 64.
Dine tråde skal så vente på nye 64 forbindelser hver.

Man kan godt override FD_SETSIZE til højere, men som sagt for oven så er det ikke godt hvis alle skal være med.
Avatar billede danielhep Nybegynder
09. juni 2004 - 20:03 #2
Mester Kristian :)
Avatar billede danielhep Nybegynder
09. juni 2004 - 20:05 #3
3. Ville det være bedre hvis jeg lavede x antal tråde til at håndtere y * fd_set (á 64,standard) ?

ja det ville være bedre ville jeg sige, da alle kan være, også dem som ikke bruger Microsoft Winsock.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester