среда, 18 февраля 2015 г.

Tail latency

Tail latency - это когда, например, по 90-му процентилю сервер обрабатывает наши запросы за 50 мллисекунд, а по 99-му за 1 секунду. Это очень плохо, т.к. некоторые пользователи будут ждать ответа непростительно долго.
В этой статье рассматриваются некоторые возможные источники tail latency
В таблице ниже сводка из статьи:

понедельник, 2 февраля 2015 г.

Специальные функции-члены в C++ 2

Здесь я рассказывал про специальные функции члены, при каких условиях они генерируются, при каких нет. При этом я не указал важный нюанс, касающийся шаблонов.
Допустим у нас есть код:
struct MyStruct {
    MyStruct() = default;

    template <typename T>
    MyStruct &operator=(const T&) {
        std::cout << "template copy assignment\n";
        return *this;
    }

    template <typename T>
    MyStruct(const T&) {
        std::cout << "template copy ctor\n";
    }
};

int main() {
    MyStruct c1;
    MyStruct c2 = c1;
    c1 = c2;
}
На экран, как не странно, не будет выведено ничего. В предыдущем посте я писал о том, что если определить оператор копирующего присваивания или конструктор копирования, то компилятор не генерирует оператор копирующего/перемещающего присваивания и конструктор копирования/перемещения. Но подобное правило не работает для шаблонных функций, поэтому компилятор сгенерировал все версии специальных функций по-умолчанию.