Я понимаю причину использования объекта параметра, когда дело касается методов обработки с длинными списками параметров. Но у меня есть ситуация, когда я хотел бы уменьшить объем памяти моего кода.Производительность объекта параметра по сравнению с длинным списком параметров
Вопрос у меня есть с точки зрения производительности. Сколько вы получите , перейдя в длинный список параметров?
Вариант использования заключается в том, что эти методы будут вызваны тысячами раз и каждый раз при вызове создается новый объект параметра. Я хочу действительно избежать создания всех этих объектов параметров.
Есть ли у меня «то же самое, что я могу есть, и съесть его», чтобы инкапсулировать параметры и использовать только хранилище стека?
К сожалению, в цепочке вызовов есть несколько методов, требующих всех этих параметров, и я не прочь сделать это изменение, поскольку эти методы не являются общедоступными. Просто хотел узнать о более эффективном решении.
Выполнение этого изменения повлияет на большую часть кода и займет много времени. Просто попробуйте проверить, стоит ли это сделать, прежде чем я поеду на этот маршрут.
Структура данных
Структура данных представляет собой объект графа. Объекты - это бизнес-данные, а связанные с ними края - это вызовы. Эти ребра связаны с данными параметров. Использование объектов параметров красиво, и мой код работает очень хорошо. Но меня не устраивает производительность и я хочу ее улучшить.
Я профилировал свой код, и эти объекты являются важной частью служебных данных памяти. Я сомневаюсь, что они в значительной степени способствуют загрузке процессора, но я определенно обеспокоен памятью.
Эта структура данных будет частью структуры, которая будет использоваться в высококонкурентной среде . Поэтому сокращение объема памяти вызывает у меня большую озабоченность.
Объект параметра имеет около 10 полей и некоторое поведение, связанное с ним. Я всегда могу инкапсулировать поведение в качестве альтернативы.
Не могли бы вы подумать о том, может ли шаблон компоновщика быть подходящим в зависимости от того, что вы делаете позже, с этим списком параметров? – hexafraction
Не могли бы вы просто использовать объект JSON для хранения списка ваших аргументов, зачем создавать объект/класс? –
Обратите внимание, что каждый вызов уникален и имеет разные значения, поэтому я не могу построить объект и поделиться им. – codedabbler