Comments on: Оптимизация кода на С# для многоядерных систем – легко! https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/ Programming, architecture and design (С++, QT, .Net/WPF, Android, iOS, NoSQL, distributed systems, mobile development, image processing, etc...) Tue, 26 Jul 2011 16:47:56 +0000 hourly 1 https://wordpress.org/?v=5.4.2 By: Ксения https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-2029 Tue, 26 Jul 2011 16:47:56 +0000 http://vitiy.info/?p=23#comment-2029 Windows каждое ядро видит как отдельный процессор, так что строка
int count = Environment.ProcessorCount;
реально сократит количество кода и подсчитает количество ядер.

]]>
By: NARFULS https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-1577 Thu, 04 Feb 2010 16:28:50 +0000 http://vitiy.info/?p=23#comment-1577 отлично работает. как раз прога под ето дело нуждалась в ускорении примерно в два раза.
главное сработало =))
спасибо

]]>
By: Дмитрий https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-1045 Thu, 04 Dec 2008 11:57:14 +0000 http://vitiy.info/?p=23#comment-1045 Использовал практически код на 2 ядерной машине, но давал 4 потока так как время выполнения каждого было разным. Действительно повышает производительность и нагружает процессор на 100% вместо ~50 в однопоточном варианте. Это была математика часа этак на два.

Просьба не утверждать продукты теоретических измышлений без практической проверки.

]]>
By: Victor Laskin https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-250 Thu, 21 Aug 2008 19:33:00 +0000 http://vitiy.info/?p=23#comment-250 Мой опыт показывает, что если никакой оптимизации нету, то стабильно загрузка двуядерного процессора 50%. Может у меня “бракованная” виртуальная машина…

Насчет красоты кода – да, оптимизация несет в себе необходимость создания чуть более сложных многопоточных структур, но это не значит, что это приведет к коду плохого качества. Кроме того, тут описан лишь подход. Можно, например, использовать BackgroundWorker для рождения дочерних потоков.

]]>
By: Бегемот https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-248 Thu, 21 Aug 2008 13:25:42 +0000 http://vitiy.info/?p=23#comment-248 Учите матчасть!
Даже один поток виртуальная машина .Net(Framework) розкидает по двум ядрам(если он достаточно ресурсоемкий).
Такчто нет заботы самим туда лезть.

А в результате того что тут обсуждаеться ничего кроме “гавнокода” (не побоюсь этого слова) не получится

]]>
By: Victor Laskin https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-101 Tue, 27 May 2008 14:36:19 +0000 http://vitiy.info/?p=23#comment-101 ThreadStart – это делегат

]]>
By: Ilya https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-100 Tue, 27 May 2008 14:14:22 +0000 http://vitiy.info/?p=23#comment-100 Интересно, а почему тоже самое не сделать с помощью делегатов?

]]>
By: alexander https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-61 Thu, 29 Nov 2007 14:39:48 +0000 http://vitiy.info/?p=23#comment-61 Анн, нет… звиняй ошибся это только процеесоры считает. 🙂

]]>
By: alexander https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-60 Thu, 29 Nov 2007 14:30:49 +0000 http://vitiy.info/?p=23#comment-60 ДА, с нахождением количества ядер ты явно перестарался 🙂
Может проще так – Environment.ProcessorCount;
lol

]]>
By: alexander https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-59 Thu, 29 Nov 2007 13:18:32 +0000 http://vitiy.info/?p=23#comment-59 Ок. С этим я соглашусь, однако никто гарантии не даст, что потоки распределяться между ядрами, но вероятность этого уже велика.

Также замечу, что всё-таки уж совсем играться с системой не следует. И 128 потоков на обыденой машине(я не говорю про сервер, напримр тот же Core2 Duo) это слишком много. Тут нужно не забывать, что потоки-потоками, а вот память тоже нужно экономить несмотря на её дешевизну. А в остальном респект! 🙂

]]>
By: Victor Laskin https://vitiy.info/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0-%d0%bd%d0%b0-%d1%81-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%8f%d0%b4%d0%b5%d1%80%d0%bd%d1%8b/#comment-58 Thu, 29 Nov 2007 12:02:52 +0000 http://vitiy.info/?p=23#comment-58 В том то и идея, что все прекрасно работает без геморроя. Достаточно равномерно разделить нагрузку между потоками и они сами распределяться по ядрам. Так что нет нужды каждый поток привязывать к конкретному ядру. Более того можно сделать довольно большое число потоков, не равное числу ядер – например 128. И тоже все будет хорошо. Видел такой пример на сайте АМД.

]]>