Как стать автором
Обновить

Комментарии 34

«Но я делаю игры, а не играю в них»


Уже давно безопаснее для нервов покупать игровую консоль, где все игры оптимизированы под железо, чем расстраиваться, что для новой игры нужно купить железо дороже чем у разработчика, чтоб не тормозило ничего.
> покупать игровую консоль, где все игры оптимизированы под железо

Такое уже даже на пикабу не заявляют.
Оптимизировано — это когда все настройки в low и на каждом экземпляре консоли 10-30 fps?
Вопрос bottleneck не раскрыт, процессор не упирается в полку по загрузке.
Особенно в контексте
> Самый дешевый китайский SSD
Имхо надо было комплексно смотреть загрузку на систему, а не тяп-ляп график загрузки процессора и всё.
Если вы ограничены в бюджете, можно взять даже самый дешевый SSD на 8 или 16 Gb

У меня возникло стойкое впечатление, что эта статья написана несколько лет назад, а не в 2018-м, когда можно купить за 55$ SSD на 120Гб с трёхлетней гарантией, поставить на него систему с софтом и поместить туда-же проект.
Процессор практически все время трудится на максимальной частоте 4700 Mhz, однако на 100% не загружается.

Где график загрузки по ядрам? Эти «не 100%» могут быть как одним загруженным полностью ядром, что говорит о плохой оптимизации задачи под многопоточность, так и равномерно недогруженными всеми ядрами, что говорит об узком месте где-то ещё, например в дисковой подсистеме. В этом случае вывод что
что первому не хватает потоков, а второму частоты, поэтому оба процессора показывают одинаково плохой результат
плавно меняется на вариант «дисковая система одинаково тормозная в обоих случаях». И это легко и непринуждённо проверяется вдумчивым просмотром графиков perfmon-а.
P.S. Можно ещё много чего написать, но ограничусь одним советом автору: если уж не умеете грамотно тестировать систему на предмет узких мест, то луче погуглите нормальные обзоры. Наверняка их немало, в том числе и в разрезе эффективной системы для вашей среды разработки.

У меня 256 за 110$, и это я считаю дешевым. В тестах нагрузка на диск и на память были незначительные, хотя в свое время после перехода на этот ssd время импорта уменьшилось вдвое.

Что вы подразумеваете под «незначительной нагрузкой на диск»? Вы смотрели длину очереди, активное время диска, время ответа диска? При интенсивной случайной выборке может уже иметь значение не MB/s, а IOPS.
В любом случае, если приложение занимает не 100% процессорного времени, то есть только два варианта — либо оно однопоточное, либо в системе есть другое узкое место. Вы же в своей статье не предпринимаете никаких попыток это выяснить.
Поддержу, статья расстроила, думал тут будет хардкорщина, поиск истины, а не вот это вот всё.
Я не спец по железу и не гик, извините. Написал статью сугубо со стороны разработчика.
Два года назад брал второй компьютер для особых нужд, купил значит списанный офисный ящик со стажем 8 лет за 4к, кажется; Процессор Celeron 2 ядра, 2 гигабайта оперативки, встроенная видеокарта на 256, с ShaderModel ниже трех (!). Поставил Unity, пятерку, где уже были pbr-шейдеры. Чудо, работает, сам редактор не тормозит нисколько, оптимизация у них внутри кайфовая. Задержки компиляции (я использую mono) конечно были, но не больше 30 секунд компилировалось. Сама игра была в космосе, около 200 объектов, среднее количество полигонов на объект ну где-то ~120, материалы все с картами нормалей и картами светимости (ну естественно я использовал lod и всякие свои хитрости). Параллельно могли висеть blender и paint.net. Так что для каких-то небольших развлечений хватит на самом деле даже слабого компьютера :D
Скажу больше, даже сейчас мой древний ПК с Q6600 (8Gb, GT630) довольно неплохо справляется как с Unity, так и с UE4, только вот когда запускаю некоторые чужие проекты возникает ощущение что их делали на NASA Super PC специально чтобы народ искал новое железо, т.к. сцены там почти пустые, оптимизация практически отсутствует (её не видно вообще), даже настройки в ноль не делают погоды. А вот технические демки (вроде той же Viking Village для Unity) и собственные поделки работают очень шустро.
Кроме того, рекомендую использовать SSD, поскольку Unity активно работает с файлами. Если вы ограничены в бюджете, можно взять даже самый дешевый SSD на 8 или 16 Gb, чтобы хранить на нем сам проект, а также установить туда Unity и все необходимые SDK
У нас проект сам больше 16 гигов весит. При этом, проектов несколько (под каждую платформу), чтоб не свичить таргет платформу каждый раз. Это суммарно поболее 64 гиг.

По поводу же процессора. Unity много процессора ест только при билде, по большей части. Для плей мода i5 хватает, по крайней мере, для нашего текущего проекта.
Не вижу взаимосвязи статьи и выводов.
Т.е. предпосылки в выводах банальны и кажутся разумными, вот только статья их слабо подтверждает или опровергает. Что не делает эти выводы ценными. Наверняка можно найти интересные варианты, которые пойдут вразрез и ценой, и производительностью с вашими выводами.
Самый дешевый китайский SSD
Оставьте проц в покое и расщедритесь на нормальный SSD.

Вы упомянули разработку ассетов, интересно узнать, выгодно ли этим заниматься? Или же тот же принцип что у разработки игр: много вкладываешь, занимаешься раскруткой, а результат — как повезет?

Затраты и риски меньше, эффективность получается больше. В фактор везения не верю — есть работа на ЦА и маркетинг. Мои ассеты, если интересно https://www.assetstore.unity3d.com/en/#!/search/page=1/sortby=popularity/query=publisher:11086

Когда-то задавались целью ускорить билд игры под Windows на Unity ну и работу в целом. Банальная замена HDD на SSD ускорила билд с 12-14 минут до 3 с небольшим, все это на среднем i5 и вообще без видеокарты. Пробовали без SSD, но на топовом i7 с 16 Gb RAM и быстрым HDD — там было около 5 минут вместо тех же 12-14. В итоге оказалось что самым дешевым и самым действенным методом ускорить Unity является SSD. Что в целом кореллирует с данными из статьи.
А я вот еще столкнулся с такой странной штукой. Не знаю будет-ли в тему, но как информация к размышления может и подойдет. Я бывает пишу под Android на своем домашнем компе с i7-2600K, 8GB, 780Ti, SSD. Так как делаю это не часто и комп делю с женой, то использую установленный там Windows. На работе у меня Linux Debian. И вот в последнее время стала меня очень расстраивала сборка проекта. 1 мин. 20 секунд как-то очень уже много. Решил, что нужно взять себя в руки и поставить таки Linux второй системой. Этот-же проект под Linux на этой-же машине собирается 5.5 секунд. Я бы понял разницу в 2-3 раза. Но что он делает дополнительную минуту 15 секунд?

Не знаю есть-ли возможность использовать Unity под Linux, но если есть, то я бы однозначно попробовал.

Как вариант еще можно глянуть на MacOS если уж все-равно новое железо покупать. Может там удастся что-то выгадать. Или на своей-же машине Hakintosh вкатить.

PS: SSD, по-моему, уже давно можно брать на всю систему вместе с программами и проектами. Не таких уж и безумных денег они стоят. Хотя можно не правильное слово. Нужно в этой ситуации куда больше подходит.
Спасибо за совет, надо попробовать.

Не увидел в статье ответа на вопрос из заголовка.


  1. Для комфортной разработки нужна и высокая тактовая частота процессора, и большое количество потоков.

Вот неожиданность-то. Кто бы мог подумать?! Казалось бы, с низкой частотой и меньшим количеством потоков будет лучше, но нет!
[/sarcasm]
1) Это никак не следует из проведенных измерений. Какую вообще информацию можно извлечь из сведенных графиков загрузки всех ядер? Их можно проинтерпретировать сотней способов. Может i5 действительно не хватает ядер, а E5 — частоты. А может количество ядер ни на что особо не влияет, т.к. большую часть времени график выглядит как 100% загрузка одного ядра. А может это все таки равномерно низкая загрузка всех ядер и боттлнек совсем не в процессоре, а например, в диске (стоило использовать ram диск, или как минимум — нормальный быстрый NVME накопитель, но уж точно не "Самый дешевый китайский SSD")
2) Не указан объем памяти и уровень ее использования при сборке. Может ее не достаточно и на самом деле вместо производительности процессора измерялась производительность системы swaping-а ОС и все того-же "самого дешевого SSD"?


  1. Вам не обязательно нужна самая крутая видеокарта. Особенно, если вы делаете мобильные игры.

Еще одна неожиданность! Время выполнения процесса, не использующего видеокарту от слова совсем, с хорошей дорогой видеокартой — такое-же, как и с плохой дешевой. Чудеса, да и только. Стоило еще измерить время сборки для разных мониторов, клавиатур и кресел.


1) Каким боком вообще видеокарта к процессам сборки и импорта?
2) Зачем нам графики загрузки процессора, если мы тестируем видеокарту?
3) Почему нет графиков загрузки видеоядра и видеопамяти?
4) Почему нет измерений для процессов, где видеокарта действительно используется, как, например, работа со сценой в редакторе, ну или там сравнение загруженности и производительности видеочипа при игре в редакторе и в standalone сборке?


  1. Кроме того, рекомендую использовать SSD, поскольку Unity активно работает с файлами. Если вы ограничены в бюджете, можно взять даже самый дешевый SSD на 8 или 16 Gb, чтобы хранить на нем сам проект, а также установить туда Unity и все необходимые SDK.

1) Это, опять таки, никак не следует из измерений, произведенных в статье. Нет ни измерения скорости передачи данных с диска, ни измерения IOPS, ни хотя-бы топорного сравнения времени сборки/импорта c SSD и c HDD.
2) Этот пункт стоило написать первым. Стоимость SSD уже давно не кусается. Можно спокойно взять нормальный SSD гиг на 120, а то и 240 даже за счет удешевления других компонентов. Производительность и комфорт с системой со средненьким процессором и нормальным SSD будет на порядок лучше, чем с системой с убер-топовым процем и дешманским HDD или "самым дешевым китайским SSD на 8 Gb".


Я бы мог понять смысл всех этих измерений и манипуляций, если бы вы просто выбирали себе новое железо "из того, что есть" под ваши старые комплектующие. Но ценность описания этого процесса в виде статьи — околонулевая.

Unity — сложный инструмент. Если на видеокартах можно майнить, то почему нельзя, например, считать хэши ассетов? Проверил на всякий случай.
Проверил на всякий случай.

Так в том-то и дело, что не проверили. Невозможно сведенным графиком загрузки CPU и замером времени с секундомером проверить влияние GPU на некий процесс.


почему нельзя, например, считать хэши ассетов?

Теоретически — можно. На практике — во-первых, юнити так не делает, в чем несложно было бы убедиться, если бы вы хоть одним глазом взглянули на уровень загрузки GPU. А во-вторых — подсчет хешей для майнинга очень отличается от подсчета хешей для импорта проекта в юнити. И перенос его на GPU вряд ли сильно скажется на производительности. А если и скажется, то далеко не факт, что положительным образом. Майнеру не нужно гонять кучу информации с диска через основную память на видеочип и обратно. И у майнера блоки, для которых нужно считать хеш — одного размера. И еще много менее значительных нюансов, которые в сумме делают перенос импорта проекта на GPU спорной, мягко говоря, затеей.


Не говоря уже о том, что непосредственно подсчет хешей занимает очень небольшую часть времени при импорте. Намного дольше происходит конвертация ассетов в удобоваримый для юнити формат. В проекте, над которым я сейчас работаю, подсчет хешей — это порядка 7-8% от общего времени импорта.

Вы пытаетесь оптимизировать тот этап, который и не планировался быть быстрым. Сжатие текстур, подсчет хешей, сбор бандлов — это всегда будет долго выполняться, не нужно это оптимизировать пока не мешает работе. Во все времена, для трудоемких операций использовали кеш чтобы не делать ненужную работу. В вашей статье по кеш-сервер и его варианты не написано совсем, а рекомендовать в первую очередь нужно именно его, а не покупку новых машин. Для сложных случаев есть локальный кеш в коробке с редактором.
По поводу карт освещения — оно как раз делается с использованием GPU, и, по логике, должно версионироваться синхронно со сценой. В настройках запекания тоже есть опции для быстрого превью вместо полного прохода.
Серьезно? Зачем эта статья?
1. Если компьютер для вас это инструмент для зарабатывания денег, то вы купите самое лучшее на сколько хватит денег, все равно отобьется.
2. Если энтузиаст, то купи самое лучшее на что хватит денег, в этом вся суть энтузиастов.
3. Если поиграться, то купи самое лучшее на что хватит денег, в этом вся суть геймеров.

Вывод. Единственный грамотный совет для покупки компа — купи самое лучшее на что хватит денег.

зы. Всем известно что существует нижняя граница производительности процессоров ниже которой они становятся не универсальными, и соответственно не практичными для покупки. И эта граница Core i7.
У меня первый вариант, но я все равно не хочу тратить деньги на ненужное мне железо. И жаба квакает.
Те деньги, которые есть, еще нужно грамотно распределить между всеми компонентами системы. Геймерам надо потратить больше на видеокарту, разработчикам — на память, проц, ssd. В данном случае избыток денег было бы правильнее потратить на ssd, а не вбухивать в дорогой проц.
Странные люди, покупают топовые телефоны, которые реально нахрен не нужны, а на нормальный процессор жмут. И с каких пор I7 дорогой? Я его себе смог позволить сразу же как он появился, имея на тот момент зарплату в 12000р. С тех пор обновляюсь всегда на чуть более мощный.

Омг. Сравнивать Интел и АМД на примере Интел+Интел? Имею оба проца, 1600тый и 2500к, они вообще разные

Ну так поделитесь опытом, с чем Unity работает быстрее. Ну а вообще 1660 по всем параметрам очень похож на Ryzen 5.
На каждом Unity-форуме\группе\чате можно найти тему «Какое железо использовать для разработки» и почти всегда можно увидеть ответ: «Чем слабее твое железо, тем больше благодарностей услышишь от пользователей потом».
Буквально перед новым годом, так получилось, что остался без своей «рабочей машины», пришлось стряхнуть пыль с залитого ноутбука (с нерабочей клавиатурой), стоявшего в углу, и превратившегося в тестовый сервер для моих проектов и немного поработать на нем.
По железу: intel n3050, 4 гига памяти, и встроенная графика intel hd.
Была поставлена Unity 2017.2 и, что удивительно, полет отличный (плюсом VS17), единственное, что без ssd было бы тяжело.
На моем ноуте с N3450 проект компилируется около 20 секунд. Ждать столько после каждого изменения кода весьма раздражает. Но в экстренном случае, конечно, собрать проект можно.
проводили аналогичные тесты на работе.
К счастью или горю, но рязань работает более производительней интела кроме одного случая — билда под андроид. Но проигрывает не сильно.
Рязань достаточно легко гонится на воздушном кулере, со стандартными настройками авторазгона материнки до частот повыше интела. Главное оперативку подходящую подобрать.

Но в принципе, дело вкуса и кошелька.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации