-
> Для защиты от многопоточности getMem и freemem обёрнуты > мьютексом(спин-локом).
Понятно. Я по наивности думал, что это решено на уровне ядра оси ))
> А то что у вас глючит, то я писал у вас защиты от локов > никакой, нет.
Так а что Вы конкретно имеете в виду? Что значит "защита от локов"? Сами нити ведь работают норм, и друг другу не мешают. Друг друга они не лочат. Можете пример привести?
-
> Для защиты от многопоточности getMem и freemem обёрнуты > мьютексом(спин-локом). А, кажется, я понял. При очень частом обращении к GetMem() / FreeMem() львиная доля времени тратится на них, а не на полезные вычисления. Поэтому и получается простой в нитях. А там, видимо, это относительно часто происходит. Но, все равно, непонятно, почему на двух ядрах загрузка 100%, а на восьми - только 3%. Что, при почти одной тактовой частоте i7 2,3 ГГц настолько быстрее "считает", чем Core-II Duo 2,16 ГГц? Или на i7 GetMem() настолько медленнее работает? Казалось бы, а проц-то здесь при чем? ОС везде одна и та же.
|