Size: a a a

2019 February 17

P

Pavel in Unreal Engine
Konstantin
Ничего не понял
Ну пример, который другие не раз уже приводили и с которым сам частично сталкивался.

Вы делаете игру, код уже написан и работает, все классно, код красивый и расширяемый. Но на каком-то моменте, при добавлении очередного расширения контента вы понимаете, что ФПС начинает проседать на казалось бы не слабых компьютерах. Вы начинаете профайлить и понимаете, что нет какого-то одного узкого места.
Вы видите что большую часть времени занимает проход по абстрактным объектам и вызов им абстрактных методов, потому что код верхних уровней ничего не знает об их реализации.

Код классный, написан по солид, но требования к реализации не выполняет (не укладывается в 33мс на кадр на машине которая должна быть в минималках).
источник

K

Konstantin in Unreal Engine
Pavel
Ну пример, который другие не раз уже приводили и с которым сам частично сталкивался.

Вы делаете игру, код уже написан и работает, все классно, код красивый и расширяемый. Но на каком-то моменте, при добавлении очередного расширения контента вы понимаете, что ФПС начинает проседать на казалось бы не слабых компьютерах. Вы начинаете профайлить и понимаете, что нет какого-то одного узкого места.
Вы видите что большую часть времени занимает проход по абстрактным объектам и вызов им абстрактных методов, потому что код верхних уровней ничего не знает об их реализации.

Код классный, написан по солид, но требования к реализации не выполняет (не укладывается в 33мс на кадр на машине которая должна быть в минималках).
Как это он не знает о реализации ))
Это что за код такой который перебирает абстрактные методы и не может найти реализацию )
Вы немного путаете. SOLID это принципы. Если у вас есть проседания, значит надо пересмотреть реализацию
источник

P

Pavel in Unreal Engine
Konstantin
Как это он не знает о реализации ))
Это что за код такой который перебирает абстрактные методы и не может найти реализацию )
Вы немного путаете. SOLID это принципы. Если у вас есть проседания, значит надо пересмотреть реализацию
У меня нет никакого желания спорить. Я попытался донести свою мысль, если не получилось, то увы.
источник

YN

Yehor Novakov in Unreal Engine
Вот кстати интересная тема. Всей душой люблю солид и беспокоюсь за то, что в больших проектах он не приживается
источник

ГС

Господин Случай... in Unreal Engine
Konstantin
Как это он не знает о реализации ))
Это что за код такой который перебирает абстрактные методы и не может найти реализацию )
Вы немного путаете. SOLID это принципы. Если у вас есть проседания, значит надо пересмотреть реализацию
Это называется virtual method table
источник

K

Konstantin in Unreal Engine
Господин Случай
Это называется virtual method table
Я полагаю что эти моменты разруливаются на уровне компилятора, то есть и оптимизация которая возлагается на процессор. Тем более приведу цитату "Стоимость использования виртуальных функций на современных архитектурах процессоров может быть не столь высока из-за наличия значительно больших кэшей и лучшего предсказания переходов."

Я не знал как это называется, спасибо.
источник

МТ

Михаил Турутанов... in Unreal Engine
Pavel
Ну пример, который другие не раз уже приводили и с которым сам частично сталкивался.

Вы делаете игру, код уже написан и работает, все классно, код красивый и расширяемый. Но на каком-то моменте, при добавлении очередного расширения контента вы понимаете, что ФПС начинает проседать на казалось бы не слабых компьютерах. Вы начинаете профайлить и понимаете, что нет какого-то одного узкого места.
Вы видите что большую часть времени занимает проход по абстрактным объектам и вызов им абстрактных методов, потому что код верхних уровней ничего не знает об их реализации.

Код классный, написан по солид, но требования к реализации не выполняет (не укладывается в 33мс на кадр на машине которая должна быть в минималках).
аминь
источник

МТ

Михаил Турутанов... in Unreal Engine
по молдости и неопытности норм перепробовать писать "правильный" код, но с опытом надо начинать писать эффективный
источник

МТ

Михаил Турутанов... in Unreal Engine
компромиссы нужны везде
источник

МТ

Михаил Турутанов... in Unreal Engine
где-то для простоты читабельности сотрудниками, где-то для скорости разработки, где-то для скорости выполнения
источник

МТ

Михаил Турутанов... in Unreal Engine
абстрактный код далеко не всегда самый понятный, потому что контрол флоу прыгает.
источник

YN

Yehor Novakov in Unreal Engine
Konstantin
Я полагаю что эти моменты разруливаются на уровне компилятора, то есть и оптимизация которая возлагается на процессор. Тем более приведу цитату "Стоимость использования виртуальных функций на современных архитектурах процессоров может быть не столь высока из-за наличия значительно больших кэшей и лучшего предсказания переходов."

Я не знал как это называется, спасибо.
Если речь про рантайм, то там никаких оптимизаций компилятора быть не может
источник

K

Konstantin in Unreal Engine
Yehor Novakov
Если речь про рантайм, то там никаких оптимизаций компилятора быть не может
я немного про другое. Компилятор собирает проект и на момент сборки эти моменты учитываются
источник

E

Extremeprog in Unreal Engine
Добрый день.
Друзья, подскажите годное решение для импорта/экспорта данных в таблицы. Скажем в тот же CSV.
источник

AS

Alexander Shumeyko in Unreal Engine
Extremeprog
Добрый день.
Друзья, подскажите годное решение для импорта/экспорта данных в таблицы. Скажем в тот же CSV.
Анрил из коробки умеет с DataTable
источник

МТ

Михаил Турутанов... in Unreal Engine
из коробки умеет и без дататейбл, я две функции длиной по пять строчек написал для загрузки и сохранения
источник

E

Extremeprog in Unreal Engine
Alexander Shumeyko
Анрил из коробки умеет с DataTable
Я мож чего не понимаю. С таблицами и структурами много работал, но первый раз столкнулся с необходимостью это экспортировать,
При экспорте DataTable  я вижу только .COPY и .T3D форматы.
источник

E

Extremeprog in Unreal Engine
где из коробки в CSV?
источник

MA

Maxim Aleksandrovich... in Unreal Engine
Extremeprog
где из коробки в CSV?
источник

MA

Maxim Aleksandrovich... in Unreal Engine
источник