IOCP és a Delphi
2005-01-11T00:14:19+01:00
2005-01-16T14:02:07+01:00
2022-07-27T06:33:45+02:00
  • Gondolom vannak "bejáratott" szoftverek, amiket lehet több/nagyobb gépen futtatni, és így ugyanezt a teljesítményt el lehet érni. Nem tudom, megtérül-e valamilyen értelemben egy ilyen "erőmű" fejlesztése.

    Tömeges érdeklődést magához vonzó hely nem lehet túl sok az országban; ezeknek a kiépítésére, üzemeltetésére meg rendelkezésre áll a megfelelő összeg ahhoz, hogy ne érdekelje őket egy "nem szokványos" szofver megoldás.

    Amúgy hobbinak jó.
    Mutasd a teljes hozzászólást!
  • 2000-3000 user és afelett már minden %-nyi processzorhasználat számít, minden kilóbájt foglalt memória is. a szerver számítógépek erőforrásai is végesek =(sajnos). Nem tudom hallottál-e a DC++-ról, a nagyobb huboknak gyakran 5000 egyidejű kapcsolatot is el kell kezelni úgy hogy a szerverszámítógép midnössze 2 max 3ghz-es proci, kb 1 giga memo. Ez nem sok, jól be kell osztani. Egyik ismerősöm most csinált egy DC++ szervert, és az IOCP-s módszerrel eddig az a legkevesebb procit és memót használó szerver program, úgy, hogy vagy 4x gyorsabban tölti be a userlistát, és egy gondolatnyi lagg és szaggatás sincs benne... (tesztelve 3000 useren, procihasználat 15%-20%, memófoglalás az 1 gigából 300-350 mega) szerintem ez igencsak jó eredmény! :) És a programozója C++-t használt, és az MSDN-en kívül semmi segítség nélkül csinálta meg. Minden tiszteletem az övé! :) Remélem egyszer én is ilyen jó programozó leszek!
    Mutasd a teljes hozzászólást!
  • Szóval tudom mit fogok használni ezen túl,


    Kíváncsi lennék rá, hogy mi az a feladat, aminek a megoldásában ezek a többlet programozási lehetőségek többlet eredményt hoznak?
    Mutasd a teljes hozzászólást!
  • Megint én.

    ezt találtam:

    http://www.codeproject.com/internet/winsockiocp.asp
    http://www.ormerod.demon.co.uk/patches.htm

    az első linkről letölthető forráskód hibás, a működő a demon-on található

    C++ forrás, simán le is fordítottam...
    nekem tetszik.

    a teszt kliense is jó. A lefordított, szabadonfutó (nem debugger alól futú) szerverrerányomtam egy csomó tesztklienst flood módban...
    az eredmény az, hogy 50 floodostesztkliens felett csak 100% procihasználat, így nem is kísérteleztem tovább...

    nem szeretnék senki jóhírének ártani de csináltam egy tesztet.
    csináltam egy indy szervert delphi alatt, és szintén rányomtam a floodos tesztklienseket... 7 (azaz hét)db-ig jutottam, mert utána totál leakadt az indy 10!
    Utána csináltam egy ICS szervert (FPiette http://www.overbyte.be) majd szintén rá eresztettem a floodos tesztklienseket.. egészen pontosan 80 darabot, ami nem semmi... a processzorhasználat 35% körül volt!

    Szóval tudom mit fogok használni ezen túl, amig meg nem jelenik egy normális, működő IOCP-s kjomponens delhire.. tudom hogy már van már iocp-re specializálódott delphi komponens, ( IOCP support classes ) de szerintem még lenne mit fejleszteni rajta, mert nekem egyfolytában access violation-ozik. (még a mellékelt példaprogija is) Nah.. egyelőre ennyi! :D
    Mutasd a teljes hozzászólást!
  • Nézz utána, csinálj pár példaprogramot, és külj be egy pár részes cikket a témáról. Aztán ezzel hátha népszerű lesz annyira a téma, hogy majd más is utánanéz, és akkor lesz kivel beszélgetni.
    Mutasd a teljes hozzászólást!
  • Natessék! Úgy látom ebben az izgalmas témában is csak magammal beszégethetek!
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Hallottam erről az IOCP-ről,
    (Input/Output Completion Port)
    Gondoltam ez nem is olyan rossz, és az Indy-ben is lehet olvasni róla:


    Indy 10 will also contain support for multiple interfaces to the TCP
    layer including Winsock (current), IO Completion Ports and Overlapped
    I/O. You can choose simply by telling Indy which one to use. IOCP code
    is realy ugly and Overlapped I/O is not very pretty either. But with
    Indy 10, you will write Indy code just like you do now, and you wont
    have to deal with the gory details.


    és ezt is


    Support for the Windows Fiber and IOCP APIs
    Indy 10 provides support for the Fiber and I/O Completion Ports API in the Windows platforms. This support is designed to aid in creating more scalable servers where thousands of simultaneous client connections are required. For small- and medium-sized projects, the traditional thread-based servers are still available.
    Fiber and IOCP APIs are supported only for the Windows 2000, 2003, and XP operating systems using Delphi version 7. Windows 95, 98, and ME are not supported. Delphi compilers prior to version 7 are also unsupported due to critical changes in the VCL since those releases.


    de csak ennyi! semmi többet...
    Pl nem tudja valaki, hogy lehetne ezt kihasználni delphiben, az indy-vel vagy más módon? Igazából kimondhatatlanul örülnék valami működő IOCP-s szerver példaproginak!
    Mutasd a teljes hozzászólást!
abcd