Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
Страниц: [1] 2 3 4 ... 10
 1 
 : Сегодня в 16:27 
Автор Aether - Последний ответ от Aether
Кстати, в glibc используется блокировка в malloc. На ней легко сломаться, если из обработчика сигнала сделать malloc.
Из обработчика сигнала?

Оптимальное количество потоков сильно зависит от решаемых задач и предназначения хоста.
Задача по типу рендеринга: есть небольшое число исходных данных, и по ним нужно рассчитать группу матриц на разные случаи их комбинаций.

 2 
 : Сегодня в 11:59 
Автор oktonion - Последний ответ от oktonion
Да легко

Код: (C++)
//никогда так не пишите
class IneffectiveString
{
public:
        IneffectiveString &operator=(IneffectiveString other)
        {
                for (int i = 0; i < _str.length(); ++i)
                {
                        _str.pop_back();
                }

                for (int i = 0; i < other._str.length(); ++i)
                {
                        _str.push_back(other._str[i]);
                }

                return *this;
        }
private:
        std::string _str;
};
 


Хотя сказал что "легко", а вообще как-то сложно написать неэффективное копирование. Ну допустим там тяжеловесная операция какая то, запрос в базу данных. Это так все, из области никак не соприкасающейся с рассматриваемой задачей в итоге то.

 3 
 : Сегодня в 11:43 
Автор oktonion - Последний ответ от Алексей++
oktonion, даже в случае наикривейшего оператора присваивания - это что же там нужно такое намутить, чтобы производительность упала Улыбаюсь А, кроме того, вообще наткнуться хотя бы один раз на ситуацию "a=a" , не говоря уж о возникновении её где-то в долгом цикле

 4 
 : Сегодня в 10:54 
Автор oktonion - Последний ответ от oktonion
Алексей++, если там нетривиальный тип то может иметь какой то выигрыш проверка указателя по производительности, если еще и в этом типе хреново перегружен оператор присваивания. Для тривиальных типов проблемы не вижу.
Джон, это же int'ы всякие.

 5 
 : Сегодня в 08:44 
Автор oktonion - Последний ответ от Алексей++
Джон, а что будет, я ничего такого не вижу

 6 
 : Сегодня в 08:32 
Автор Люсь - Последний ответ от Джон
Ром, нууу будь толстеньким и розовощёким! С днем рождения!!! Пью Пью Пью

 7 
 : Сегодня в 08:30 
Автор oktonion - Последний ответ от Джон
Маленькая рекомендация

Код: (C++)
inline bitmask& operator=(const bitmask &other)
{
        _val = other._val;
        return *this;
}

в операторе присваивания проверять указатель

Код: (C++)
inline bitmask& operator=(const bitmask &other)
{
     if(this != &other)
     {
        _val = other._val;
     }
     return *this;
}

Иначе при a = a; ...

 8 
 : Сегодня в 08:23 
Автор Люсь - Последний ответ от Алексей++
Рома, поздравляю )

 9 
 : Сегодня в 07:58 
Автор Aether - Последний ответ от RXL
Кстати, в glibc используется блокировка в malloc. На ней легко сломаться, если из обработчика сигнала сделать malloc.

Оптимальное количество потоков сильно зависит от решаемых задач и предназначения хоста. На десктопе легко могут быть сотни-тысячи потоков и слабая загрузка его 2-4 ядер. На сервере может быть частичная или полная загрузка всех его десятков ядер незначительно превосходящим числом потоков. Если рассчитываешь, что потоки будут блокироваться на IO, можно увеличить их число. К примеру, для MySQL рекомендована настройка N+2. Для web-сервера можно взять N*2.

 10 
 : Сегодня в 07:32 
Автор Люсь - Последний ответ от Aether
RXL, поздравляю тебя с днём рождения. Желаю тебе здоровья крепкого, успехов в делах, и побольше свободного времени для развития хобби.

Страниц: [1] 2 3 4 ... 10
Powered by SMF 1.1.21 | SMF © 2015, Simple Machines