Мы в компании давно работаем с Unity и не могли не пригласить их ребят на Pixonic DevGAMM Talks, который был в сентябре. Field Engineer Валентин Симонов рассказал, как планировать архитектуру игр с учетом преимуществ новых технологий. Unity работает над ними уже несколько лет, чтобы добиться недостижимого ранее уровня производительности. Послушать выступление можно на YouTube, а почитать расшифровку со слайдами — сразу под катом.
Рубрика «производительность» - 10
Как ECS, C# Job System и SRP меняют подход к архитектуре
2018-10-23 в 8:55, admin, рубрики: 3d, Gamedev, unity, unity3d, Анализ и проектирование систем, архитектура, Блог компании Pixonic, геймдев, доклад, конференции, митап, мобильные игры, проектирование, производительность, разработка игр, рендеринг, юнитиЭта заметка является писанной версией моего доклада "Как загубить производительность с помощью неэффективного кода" с конференции JPoint 2018. Посмотреть видео и слайды можно на странице конференции. В расписании доклад отмечен обидным стаканчиком смузи, так что ничего сверхсложного не будет, это скорее для начинающих.
Предмет доклада:
- как смотреть на код, чтобы найти в нём узкие места
- распространённые антипаттерны
- неочевидные грабли
- обход граблей
В кулуарах мне указали на некоторые неточности/упущения в докладе, они здесь отмечены. Замечания также приветствуются.
C#: один сценарий использования для любых задач
2018-08-28 в 7:15, admin, рубрики: .net, .net core, C#, clr, dotnet, enum, Equals, GetHashCode, microsoft, struct, ValueType, Блог компании Microsoft, высокая производительность, Программирование, производительностьПривет! Мы продолжаем рассказывать об асинхронном программировании на C#. Сегодня поговорим о едином сценарии использования или пользовательском сценарии, подходящем для любых задач в рамках асинхронного программирования. Затронем темы синхронизации, взаимоблокировок, настройки операторов, обработки исключений и много другого. Присоединяйтесь!
Асинхронное программирование на C#: как дела с производительностью?
2018-08-22 в 7:15, admin, рубрики: .net, .net core, C#, clr, dotnet, enum, Equals, GetHashCode, microsoft, struct, ValueType, Блог компании Microsoft, высокая производительность, Программирование, производительностьСовсем недавно мы уже рассказывали о том, нужно ли переопределять Equals и GetHashCode при программировании на C#. Сегодня мы разберемся с параметрами производительности асинхронных методов. Присоединяйтесь!
Kotlin performance on Android
2018-08-15 в 8:37, admin, рубрики: appsconf, kotlin, Блог компании Конференции Олега Бунина (Онтико), высокая производительность, производительность, разработка мобильных приложенийПоговорим сегодня о производительности Kotlin на Android в production. Посмотрим под капот, реализуем хитрые оптимизаци, сравним байт-код. Наконец, серьезно подойдем к сравнению и замерим бенчмарки.
Эта статья основана на докладе Александра Смирнова на AppsConf 2017 и поможет разобраться, можно ли написать код на Kotlin, который не будет уступать Java по скорости.
О спикере: Александр Смирнов CTO в компании PapaJobs, ведет видеоблог «Android в лицах», а также является одним из организаторов сообщества Mosdroid.
Читать полностью »
Переопределение Equals и GetHashCode. А оно надо?
2018-08-15 в 7:15, admin, рубрики: .net, .net core, C#, clr, dotnet, enum, Equals, GetHashCode, microsoft, struct, ValueType, Блог компании Microsoft, высокая производительность, Программирование, производительностьЕсли вы знакомы с C#, то, скорее всего, знаете, что необходимо всегда переопределять Equals
, а также GetHashCode
, чтобы избежать снижения производительности. Но что будет, если этого не сделать? Сегодня сравним производительность при двух вариантах настройки и рассмотрим инструменты, помогающие избегать ошибок.
Что не так с популярными статьями, рассказывающими что foo быстрее чем bar?
2018-08-09 в 12:23, admin, рубрики: performance optimization, php, кавычки, производительность, Разработка веб-сайтов, тестирование производительностиПримечание переводчика: я тоже думал, что время статей "Что быстрее — двойные или одинарные кавычки?" прошло еще 10 лет назад. Но вот подобная статья ("What performance tricks actually work") недавно собрала на Реддите относительно большой рейтинг и даже попала в PHP дайджест на Хабре. Соответственно, я решил перевести статью с критическим разбором этих и подобных им "тестов".
Есть множество статей (и даже целых сайтов), посвященных запуску разнообразных тестов, сравнивающих производительность различных синтаксических конструкций, и заявляющих на этом основании что одна быстрее другой.
Главная проблема
Такие тесты являются неверными по многим причинам, начиная с постановки вопроса и заканчивая ошибками реализации. Но что важнее всего — подобные тесты бессмысленны и в то же время вредны.
- Бессмысленны потому, что никакой практической ценности не несут. Ни один реальный проект еще никогда не был ускорен с использованием методов, приводимых в таких статьях. Просто потому, что не различия в синтаксисе имеют значение для производительности, а обработка данных.
- Вредны потому, что они приводят к появлению дичайших суеверий и — что еще хуже — побуждают ничего не подозревающих читателей писать плохой код, думая при этом что "оптимизируют" его.
Этого должно быть достаточно, чтобы закрыть вопрос. Но даже если принять правила игры и притвориться, будто данные "тесты" имеют хоть какой-то смысл, то выяснится, что их результаты сводятся лишь к демонстрации необразованности тестировщика и отсутствия у него всякого опыта.Читать полностью »
Цена JavaScript в 2018 году
2018-08-06 в 9:15, admin, рубрики: javascript, Блог компании RUVDS.com, Клиентская оптимизация, оптимизация, производительность, разработка, Разработка веб-сайтовПроцесс работы пользователей с интерактивными веб-сайтами может включать в себя шаг отправки им JavaScript-кода. Часто — слишком большого объёма такого кода. Если на сайте используется очень много JavaScript, это особенно сильно сказывается на мобильных пользователях. Например, вам случалось бывать на мобильных веб-страницах, которые, вроде бы, выглядят как уже готовые к работе, но не реагируют на щелчки по ссылкам или на попытки прокрутить страницу?
JavaScript-код, который попадает в мобильные браузеры, всё ещё остаётся самым дорогостоящим ресурсом, так как он, многими способами, может задержать переход страниц в состояние, в котором с ними можно взаимодействовать. Какую нагрузку на системы создаёт JavaScript в наши дни? Как анализировать сайты? Как ускорить загрузку и обработку браузерами интерактивных веб-страниц? Эдди Османи, перевод материала которого мы сегодня публикуем, решил найти ответы на эти и на многие другие вопросы, встающие перед теми, кто пользуется JavaScript для разработки веб-сайтов в 2018 году.
Читать полностью »
Как работает CPU Manager в Kubernetes
2018-08-01 в 6:12, admin, рубрики: benchmarks, cpu affinity, devops, kubernetes, Блог компании Флант, производительность, системное администрированиеПрим. перев.: Эта статья опубликована в официальном блоге Kubernetes и написана двумя сотрудниками Intel, принимающими непосредственное участие в разработке CPU Manager — новой возможности в Kubernetes, о появлении которой мы писали в обзоре релиза 1.8. В настоящий момент (т.е. для K8s 1.11) эта фича имеет статус бета-версии, а подробнее о её предназначении читайте далее в заметке.
Публикация рассказывает о CPU Manager — бета-фиче в Kubernetes. CPU Manager позволяет лучше распределять рабочие нагрузки в Kubelet, т.е. на агенте узла Kubernetes, с помощью назначения выделенных CPU на контейнеры конкретного пода.
Обеспечение быстрой работы сайта как часть конвейера разработки
2018-06-29 в 9:41, admin, рубрики: Alconost, alconost translations, Web Performance, web performance optimization, Блог компании Alconost, высокая производительность, Клиентская оптимизация, производительность, производительность сайта, производительность сайтов, Разработка веб-сайтовПроизводительность веб-сайтов — не только о том, как заставить страницы сайта грузиться быстрее. Необходимо также донести важность эффективной работы веб-ресурсов до разработчиков и других участников проекта. Производительность — такая же часть функциональности, как и всё остальное, поэтому ее реализацию нельзя откладывать на «когда-нибудь».
Тема производительности интересует меня уже давно. Помню, всё началось со знакомства с «жадными» алгоритмами и алгоритмами типа «разделяй и властвуй». Было что-то особенно приятное в том, чтобы взять код, на выполнение которого требовалось несколько минут, переделать его и заставить выполнять задачу за пару секунд.
Если говорить о сетях, то проблемы производительности здесь иные: обычно дело не в вычислительной сложности, а в том, чтобы выполнить нужные действия в нужный момент наилучшим образом. На первый взгляд эта задача может показаться элементарной, но на самом деле она намного сложнее.
Переведено в Alconost
Читать полностью »