Бюджет: 1200 UAH Термін: 2 дні
Готовий виконати Ваше замовлення.
Необхідний досвід є.
Буду радий співпрацювати.
З повагою,
Артур
Бюджет: 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