LINUX.ORG.RU

Сообщения Unknown_

 

Почему кодеры так любят покупать заряженные процы? Юзлесс?

Смотрите, я прекрасно понимаю, зачем люди отдают деньги за топовые видеокарты. Банально вот смотришь игровые тесты на ютубчике: какой-нибудь киберпанк запущенный на rtx 40xx super и тот же киберпанк, запущенный на видюхе побюджетнее. Там и fps будет больше, картинка лучше, всякие технологии от nvidia вроде RayTracing, DLSS, gsync и тд и тп

Я понимаю, за что я плачу деньги.

А теперь процы.

  1. Для того, чтобы система плавно работала при дефолтных задачах 80%+ кодеров на этой планете (это я еще грубую оценку снизу взял), вполне хватает бюджетного проца.

Запущенная IDE, отладка, корпоративный чат, какой-нибудь мониторинг или инструмент для управления БД, в альт-табе он музыку слушает, ну и пусть даже виртуалка сверху (отмечу, что крайне редко нужно все это сразу)

Так вот. Для этого вполне хватит какого-нибудь AMD Ryzen 5 5600X Я не говорю, что именно этот идеально подходит, просто как бы оцениваю примерно сегмент и цену. А цена около 130 баксов!

  1. Ну если, представим, вдруг окажется мало (не должно), и мы имеем дело с красноглазом, который не трогает траву и прямо таки обмазался CI/CD, постгресами и докерами, то ну какой-нибудь проц класса AMD Ryzen 7 5800X который около 200 баксов стоит! 200 баксов это прям КРАЙ, вы понимаете.

И то, пункт 2 больше похож на какого-нибудь девопса, большинство разрабов больше похожи на пункт 1.

  1. «на топовом проце собирается быстрее». Ага, то есть вот я написал какой-то код, решил потестить, проект собрался за 60 секунд, а на топ проце собрался бы за 20. Вау, вот это да! Я прямо таки побежал, роняя штаны, заносить пол штуки баксов, чтобы эти секунды сэкономить! Ну и как бы кэширование и инкрементальную сборку никто не отменял. Да и я не знаю, насколько это распространено, но я работаю и собираю все на корпоративном сервере, к которому по ssh подключаюсь. Если бы я был бареном в такой конторе, я бы вообще хромбуки бы выдавал, ну ок не хромбуки, но бюджетных Асусов за 60тыщ за глаза бы всем хватило, зачем тебе что-то серьезнее, если ты по сути только в редакторе печатаешь, а все на сервере делается. Но мне с пафосом выдали Т синкпад, потенциал которого я от силы на 20-30% использую, спасибо им, конечно, но интересно, в чем логика челов

  2. И да, я знаю, что есть челы, которые занимаются какими-нибудь численными методами, машинным обучением, каким-нибудь параллельным программированием для навуки и тд. Но их не так много.

// Тогда объясните мне, почему обычные разработчики (обычные не в смысле тупые, а в смысле не относящиеся к этим областям), коих большинство, так любят покупать процы под 700 баксов? Ну и конторы любят хвалиться тем, что выдают «мощное современное железо»,наверное, потому что видят, что красноглазам нравятся игрушки. Хотя пик их требований едва ли превзойдет 200 баксов, а то и 150.

Тогда ЗАЧЕМ все это?

 , , ,

Unknown_
()

Играю на ноуте, который для этого не предназначен, какие последствия или их нет?

Есть Mac Book Air M2. Я хочу поиграть на нем в hoi 4 или даже во что-то потребовательнее, запускаю игру, гамать можно, фпс устраивает, но есть одно «но» - температура CPU под 90-100 градусов, но все отлично работает при этом.

Вопрос такой: это как-то вредит моему ноуту, его ресурсу и, если да, то как именно и в каких масштабах? Короче с чем я могу столкнуться?

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

Перемещено hobbit из general

 , , , ,

Unknown_
()

Задача по оптимизации сервера // С++

Есть сервер, который по запросу клиентов отправляет им определенные данные.

Например, клиент отправляет через TCP сокет последовательно id’шники желаемых блоков данных, сервер их загружает в память и по сути сразу же запускает асинхронную отправку

У меня возник вопрос, как сделать так (архитектура программы), чтобы один и тот же блок данных не грузился 2 раза, если 2 разных клиента попросили один и тот же блок ?

Дело осложняется тем, что отправка не моментальная, ну и async write же требует, чтобы данные находились в памяти до тех пор, пока не придет калбек о том, что отправка завершилась успешно

У меня есть идея

  1. загружать блок в условную MAP вида, этим гарантируем, что он не загрузится дважды. Если блок уже есть в мапе, то просто обновляем список получателей (id блока) - (char *, список получателей: юзер 1, юзер 2, …)

  2. Запускаем отправку async write

  3. Калбек функция async write вычеркнет юзера из списка получателей и, если он пустой, освободит буффер и удалит элемент из мапы.

Это вообще адекватно ? Я просто не знаток многопоточного программирования, а к этой мапе доступ будут иметь 2 потока : поток, который занимается отправкой сообщений, а также поток, который занимается тем, что ложит туда данные (и он же вызывает функцию отправки у первого по оставленному указателю на соединение)

То есть если я просто сделаю условно класс thread safe map и приделаю туда мьютекс, то это же будет работать ? (почему нет)

и в калбеке async write будет вызываться функция наподобие

{ 
   std::unique_lock<std::mutex> lock(_mtx);
   
   map.myList.erase(...user_id);
   if(myList.empty())
   {

      delete [] buffer;
      map.erase (...)
   }
}

Хотя чисто интуитивно if под мьютексом выглядит как трэш какой-то. В общем помогите, пожалуйста, или накидайте альтернативных идей, с меня как обычно.

 , , , ,

Unknown_
()

RSS подписка на новые темы