• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос Оптимизация функций

basiol

Новый участник
14 Сен 2023
4
1
38
Как лучше использовать функции

1
player.mysave()

2
Использовать отдельную функцию с параметром player

function mysave(player){}

Используется Node JS , подобных функций может быть сотня или больше, вот как лучше по производительности прикреплять эти сотни функций к игроку или раз создать эти функции. Все эти функции будут вызываться хаотично и собрать их в одну тоже нельзя.
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,256
233
5
Лучше использовать отдельную функцию с параметром player, чтобы избежать дублирования кода и облегчить его поддержку. При этом производительность не будет страдать, так как передача параметра player в функцию не должна создавать значительных накладных расходов. Кроме того, такой подход делает код более читаемым и структурированным.
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,290
762
181
34
На производительность это ни как не повлияет. Скорее на удобство использования. В первом варианте тебе не нужно импортировать функцию для использования в сторонних классах в отличии от второго варианта. Хотя, перегружать прототип player тоже не особо желательно.
 
Последнее редактирование:

enotit

Гений
High developer
BackEnd developer
13 Ноя 2020
1,541
490
187
21
Как лучше использовать функции

1
player.mysave()

2
Использовать отдельную функцию с параметром player

function mysave(player){}

Используется Node JS , подобных функций может быть сотня или больше, вот как лучше по производительности прикреплять эти сотни функций к игроку или раз создать эти функции. Все эти функции будут вызываться хаотично и собрать их в одну тоже нельзя.
Да по сути, прям производительность тебе не поднимет. Единственное, при первом способе у тебя может ЧУТЬ выше быть производительность, так как не нужно функции держать в стеке запросов контекст (вроде правильно написал). Но это настолько незначительно, что скинь файл кода и мы найдём 99% код, который замедляет в очень много раз.

Другой смысл по кодстайлу проекта как приятней. Кто ты функциональщик или ООП-шер, оба этих клана живы, оба этих клана работают. Пока мейнстрим ООП-стайл, но потихоньку функциональщина набирает обороты.

Как кайф живи, главное лида не обижай
 

basiol

Новый участник
14 Сен 2023
4
1
38
Но это настолько незначительно, что скинь файл кода и мы найдём 99% код, который замедляет в очень много раз.
Проблема не в коде в тех функциях, а то что их много. При 1к к каждому игроку будут прикрепляться сотни функций, а это потребление памяти. Правда не знаю сколько одна функция будет ее потреблять
 

enotit

Гений
High developer
BackEnd developer
13 Ноя 2020
1,541
490
187
21
Проблема не в коде в тех функциях, а то что их много. При 1к к каждому игроку будут прикрепляться сотни функций, а это потребление памяти. Правда не знаю сколько одна функция будет ее потреблять
в js не силён, но у тебя и так на объекте тысячи функций на данном объекте висит. В шарпах просто можно расширить (та же редага, тот же gta go со своим EntityExt или PlayerExt), который расширяет методы и если и есть нагрузка на производительность, то незначительная.


Если нет, то да, то ты прав, проще сделать по второму варианту. Но опять же, это такое незначительное. Добавление на 1000 объектов одного (ну или 100, 1000*100= 100тыс) метода не сложно. Но соглашусь.

Просто тут тогда пошла философия, кому должно быть удобно - разработчику или ресурсам? Тогда пишем на плюсах и радуемся
 

JJIGolem

Старожил
High developer
BackEnd developer
19 Окт 2020
239
288
142
В твоем случае разницу вижу лишь в удобстве. О производительности тут задумываться не стоит. Это как в задачах по физике, где пренебрегаем определенными переменными в уравнении.
 

JJIGolem

Старожил
High developer
BackEnd developer
19 Окт 2020
239
288
142
Но есть одно но, в первом случае, тебе необходимо гарантировать то, что объект player имеет в себе необходимую функцию.
 
Реакции: enotit

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,819
1,874
208
35
интереснее что это за mysave которой у одного игрока сотни, если чесна
может можно оптимизировать логику не того, как именно ты что-то вызываешь, а ну, почему
почему нельзя что-то собрать в одно тоже не очень понял

как будто бы не хватает вводных для понимания
 

basiol

Новый участник
14 Сен 2023
4
1
38
как будто бы не хватает вводных для понимания
Данные изначально уже даны. Название функций не имеет значения, эта была просто для примера. mysave не сотки, а сотни функций с другими именами
player.namefun1
player.namefun2
player.namefun3
......
player.namefun100

Число тоже образное, но функций реально много. В каждой функции , что-то делается с игроком. Для того чтобы не тулить везде одинаковый код, он собран в функцию.
 
Реакции: enotit