Бюджет: 1200 UAH Срок: 2 дня
Готовы выполнить Ваш заказ.
Необходимый опыт есть.
Буду рад сотрудничать.
С уважением ,
Артур
Я вам скинул исходники проекта, этот проект запускает 5000 Threads, и в цикле while (true) проходится по всем threads, бесконечно, мне нужно сделать паузу между итерациями цикла в 440 МИКРОсекунд (не миллисекунд) и чтоб она была всегда стабильной, отклонение не должно быть больше 10%, тесты должно быть под нагрузкой, чтоб я понимал что это не копипаст пишите прочитал в своем сообщении
Бюджет: 1200 UAH Срок: 2 дня
Готовы выполнить Ваш заказ.
Необходимый опыт есть.
Буду рад сотрудничать.
С уважением ,
Артур
Я конечно не эксперт. Но я бегло посмотрел ваш код.
У вас очень много потоков, циклов и вложенных циклов.
Плюс в каждом цикле вы создаете новые экземпляры объектов...
Это все очень трудозатратно для процессора. В 50 потоков у меня процессор еще держался, но чем больше потоков, тем больше нагрузка... И не сильно понятно... Как эту нагрузку распределять... У меня на пример 8 ядер... И потоки распределились как сами хотели... Некоторые ядра вообще простаивали в пустую...
Не сильно понятно, какую задачу вы преследуете...
Так можно дойти и до потокового голодания и до состояния, когда открытых потоков на столько много, что процессор тратит все свои ресурсы на то, что бы проверить статус каждого потока, не говоря уже о том, что бы выполнять полезную работу...
Если вам нужно выполнять похожие задачи, в вашем случае одинаковые, во многих потоках одновременно... Можно использовать для этого ресурсы видеокарты...
У неё есть CUDA ядра, которых куда больше чем 5 000... И вы можете с их помощью выполнять любую зацикленную работу, сколько угодно рас. Это куда производительнее центрального процессора... Определенно это более специфическая реализация... Но производительность такого подхода вырастает в сотри раз, бе шуток... Архитектура видеопроцессора такова, что он может за один такт опросить сотри ядер CUDA... В отличии от центрального процессора... Которые тратит очень много времени на создание одного потока, не говоря уже о тысячах...
Добавлю:
- Я тоже погонял проект.
Именно, вот такое решение как у вас не подходит, чтобы держать паузу в 440 микросекунд.
Можно оформить в виде события, которое запускается каждые 440 микросекунд, но надо понимать суть вашей задачи.
По текущему коду не получится так сделать, как вы написали или предложили.
У меня вот так как-то получилось для 500-сот потоков.
Могу дополнить, что с вашим исходным кодом (без изменений) на своем 8-ми ядерном Rayzen 7 в 5 000 потоков вообще не было проблем с паузами... Они были менее 0.44... Смею предположить, что на флагманах типа I9 последнего поколения или Rayzen 9 результаты будут куда лучше... Но что-то мне подсказывает, что для Вас это не выход из ситуации...
Потому нужно понимать... Что конкретно Вам нужно и делать индивидуальное решение проблемы, для конкретной реализации кода... Ведь на сколько я понимаю, это лишь пример...
дуже весело звісно для таких затримок використовувати спінлок, процесор буде задоволений) Значно доцільніше звернутися до того ж мультимедіа таймеру (або що там у віндовсі дає high-resolution таймер), замість того аби грузити процесор непотребом.
Сделал реализацию.
Получается задержка на обработку одного цикла из 5000 Item в 750 микросекунд (release mode).
То есть 440 микросекунд на 5000 Item никак не получится.
Реализовано через 8 потоков (реальное число ядер процессора), где каждый поток по очереди берет очередную Item.
Больше потоков делать бесполезно - будет только падение из-за накладных расходов на переключение контекстов.
После оптимизации удалось снизить задержку до 40 микросекунд.
Теперь можно реализовать.
Загрузка ЦП сейчас 25% и это выводе статуса каждой Item в DataGrid каждую секунду.
Реализовано на WPF.
Ищем опытного Unity-разработчика, который поможет завершить разработку игры. О игре: Жанр: симулятор фермы. Игра уже разрабатывается на Unity. Сначала она создавалась для мобильных устройств, но впоследствии было принято решение выпустить её для Steam (ПК). Что нужно сделать: Доработать игру в соответствии с готовым техническим заданием. Адаптировать существующий функционал под ПК и Steam. Реализовать уже запланированные механики и интерфейс. Что мы предоставляем: Подробное техническое задание. Все необходимые материалы (модели, графика, объекты и т.д.). Фото, видео, скриншоты и записи прохождения оригинальной игры. Готовый план реализации. Мы воссоздаем игру, которая успешно работала более 10 лет назад, поэтому ничего выдумывать или проектировать с нуля не нужно. Все механики, интерфейс и логика уже определены — необходимо качественно реализовать их в Unity. Для ознакомления с проектом добавляем ссылку на один из видеообзоров игры: Вставьте ссылку здесь. Требования: Опыт работы с Unity. Опыт разработки или адаптации игр под ПК/Steam будет преимуществом. Умение работать по готовому техническому заданию. В ответе, пожалуйста, укажите: примеры ваших работ; опыт работы с Unity; ориентировочную почасовую ставку или стоимость выполнения. Один из видеообзоров: https://www.youtube.com/watch?v=5_wKoX7zRc0