Size: a a a

Полуночные айтишники

2019 December 24

N

Nikolay in Полуночные айтишники
Кто печатает, того и тапки
источник

N

Nikolay in Полуночные айтишники
Интересно, будет главным пукашенко или лутин?
источник

Е

Елес in Полуночные айтишники
Nikolay
Интересно, будет главным пукашенко или лутин?
Назик
источник

A

Arstan in Полуночные айтишники
Nikolay
Интересно, будет главным пукашенко или лутин?
Лутин будет собирать лут))
источник

YV

Yuri V in Полуночные айтишники
Бацку как лоха развести не удалось, так ему пистоль к башке приставили 😂😂😂
источник

N

Nikolay in Полуночные айтишники
Поэтому я кредиты не беру :)
источник

YV

Yuri V in Полуночные айтишники
И правильно делаешь 😀
источник

YV

Yuri V in Полуночные айтишники
"Код должен быть читаемым" говорили они

Рассмотрите два примера кода.

Пример 1
token.channel = std::string(first, second);


Пример 2
std::string tmp (first, second);
token.channel.swap(tmp);


Как вы думаете, какой из них быстрее?

На первый взгляд, делают они одно и то же одинаковым образом (ну, почти одинаковым) - конструируют строку из итераторов и используют move semantic чтобы положить ее на место, верно? А первый пример удобочитаем, и именно он должен использоваться, аминь?

Тадаааааам! Пример 2 быстрее в абсолютном исчислении на 25%. (Так как оба фрагмента взяты из тела цикла с лямбдой, ну, вы понели, да, чем пахнут спелые фиги? Пахнут они фигово)

Почему так получается? Во втором примере нету temporary (да, не смотрите на название переменной tmp, она на стеке и с хорошей локальностью) и алгоритмическая сложность сильно меньше (и на 140 байт меньше ассемблера, и не по данным godbolt). А string.swap вообще самая быстрая штука. Кроме того, это единственная возможность реализовать emplace (конструирование на месте) для контейнеров string.

PS. Казалось бы, что такого? Возьмем Xeon X5470 вместо ARM, всего делов-то. И пусть сервер пашет, он железянный, верно? Зато код читаемый. 😂😂😂
источник

YV

Yuri V in Полуночные айтишники
Казалось бы, да? Явно задекларированная переменная, конструктор, вызов функции - должно быть в три раза медленнее, верно? А вот поди ж ты! У первого сложность O(2n). У второго - только O(n). 25% - это итоговый performance gain целиком приложения. Конкретно этот код - разница вдвое.
источник

Е

Елес in Полуночные айтишники
источник

YV

Yuri V in Полуночные айтишники
источник

N

Nikolay in Полуночные айтишники
Ракета пошла
источник

N

Nikolay in Полуночные айтишники
В Караганде и Астане видно должно быть
источник

N

Nikolay in Полуночные айтишники
источник

N

Nikolay in Полуночные айтишники
Ахахахаха
источник

N

Nikolay in Полуночные айтишники
Оно реально существует
источник

N

Nikolay in Полуночные айтишники
Видос на 4 с половиной часа :)
источник

S

Svyat in Полуночные айтишники
Еще бывают видосы как своп отключать "чтобы комп не тормозил" 😂
источник

N

Nikolay in Полуночные айтишники
Суд Бельгии взыскал с Казахстана государственные активы на $540 млн в пользу молдавского олигарха Анатола Стати – генерального директора и единственного акционера Ascom Group SA, сообщает Cision.

«Брюссельский суд первой инстанции вынес решение по делу, в котором Республика Казахстан выступает против Ascom Group SA, в соответствии с которым он признал и обеспечил исполнение арбитража на сумму $540 млн против Республики Казахстан», - говорится в пресс-релизе компании.
источник

N

Nikolay in Полуночные айтишники
Вот почему доллар падает :))))
источник