Parallel.ForEach in action

Imádom, nagyon ügyes dolog. Csak azért nem hajtotta ki jobban a procikat, mert már nem győzték a diszkek.
Érdekes problémaként még az jött elő, hogy több mint 100 szálat indított a Parallel, mert úgy érezte ez jó lesz, de az Sql Server connection poolja alapban max. 100 kapcsolatot engedélyez, így egyes szálak bedugultak. Lejjebb lehet venni a szálak számát, vagy feljebb a poolt. Nekem 80 szál elég volt, úgyse győzte már az SQL Server az adatokat.

3 Responses to “Parallel.ForEach in action”

  1. hrongyorgy Says:

    Nem kellemetlen RDP-n at fejleszteni? En biztos kikeszulnek a mellekattintasok miatt…

  2. Soczó Zsolt Says:

    Nem abban fejlesztek. A saját laptopomon, aztán berakom a kódot subversionbe, onnan update a szerverre, és ott tesztelem az erőforrásigényes kódokat.

  3. Szindbad Says:

    E,

    - Szép példája az absztraction leakingnek, hogy nem bírok - akarmennyire is akarok - megszabadulni az alattam lévő erőforrások egyedi vonatkozásaitól (80-as thread limit).

    - Nem látom a parallel thread inditási/leállítási overheadet

    - Nem látom az f típusát (ez egyébként elépesztően zavar, hogy nekem ugyanúgy ki kell következtetnem, mint a fordítónak. Minek, mikor ott lehetne explicit?)

    - Enterprise applikációban a thread tipikusan olyan előforrás, aminek a használatát minimalizálni kell.

    Kiváncsi lennék egy olyan görbére, ami a MaxDegreeOfParallelism függvényében mutatja a lefutási időket. Kiváncsi lennek, hol az optimum, szerintem a 80 az nagyon sok.

Leave a Reply