Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2018, 12:30
Аспирант
Отправить личное сообщение для yinfo Посмотреть профиль Найти все сообщения от yinfo
 
Регистрация: 30.04.2015
Сообщений: 43

Несколько тысяч объектов и оперативная память
Простенький объект Session, который хранит ID, ссылку на активное socket-соединение и, например, время последнего обращения.
Что-то такое : {ID, socket, lastTime}

Было бы логично прямо в этом объекте добавить несколько методов (например 100-200 строк кода). Но не будет ли это затратным с точки зрения использования ресурсов сервера? Если этих объектов будет несколько сотен или тысяч.

Или правильнее создать отдельный модуль для работы с этим объектом, а в самом объекте только данные.
Ответить с цитированием
  #2 (permalink)  
Старый 23.11.2018, 12:33
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

но совсем понятно что точно хотите, но методы лучше хранить на прототипе.
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2018, 12:46
Аспирант
Отправить личное сообщение для yinfo Посмотреть профиль Найти все сообщения от yinfo
 
Регистрация: 30.04.2015
Сообщений: 43

Сообщение от j0hnik Посмотреть сообщение
но совсем понятно что точно хотите, но методы лучше хранить на прототипе.
Переформулирую.
Проектирую объект, который будет существовать в большом количестве экземпляров. Не будет ли полезным и целесообразным вынести код из него в отдельный модуль в целях оптимизации...
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2018, 12:51
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Вынести код из объекта?
глянуть пример можно, что за объект и что хотите выносить
Ответить с цитированием
  #5 (permalink)  
Старый 23.11.2018, 12:52
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,707

yinfo, вы буквально объект хотите использовать или все же класс?
Если это будет класс, то можно создавать любое кол-во методов, они не будут дублироваться в памяти для каждого экземпляра.
Ответить с цитированием
  #6 (permalink)  
Старый 23.11.2018, 12:55
Аспирант
Отправить личное сообщение для yinfo Посмотреть профиль Найти все сообщения от yinfo
 
Регистрация: 30.04.2015
Сообщений: 43

Сообщение от Nexus Посмотреть сообщение
yinfo, вы буквально объект хотите использовать или все же класс?
Если это будет класс, то можно создавать любое кол-во методов, они не будут дублироваться в памяти для каждого экземпляра.
Именно класс.
module.exports = class SocketSession {
    constructor(socket, sessionId, user) {
        this.sessionId = sessionId
        this.socket = socket
        this.user = user
    }
}


"они не будут дублироваться в памяти для каждого экземпляра" - собственно это я и хотел услышать, спасибо.

Последний раз редактировалось yinfo, 23.11.2018 в 13:01.
Ответить с цитированием
  #7 (permalink)  
Старый 23.11.2018, 13:30
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

А почему class es6, а экспорт es5? )
Ответить с цитированием
  #8 (permalink)  
Старый 23.11.2018, 13:53
Аспирант
Отправить личное сообщение для yinfo Посмотреть профиль Найти все сообщения от yinfo
 
Регистрация: 30.04.2015
Сообщений: 43

Сообщение от SuperZen Посмотреть сообщение
А почему class es6, а экспорт es5? )
Спасибо за замечание )
Ответить с цитированием
  #9 (permalink)  
Старый 26.11.2018, 10:36
Аспирант
Отправить личное сообщение для yinfo Посмотреть профиль Найти все сообщения от yinfo
 
Регистрация: 30.04.2015
Сообщений: 43

Сообщение от SuperZen Посмотреть сообщение
А почему class es6, а экспорт es5? )
И главным образом из-за

export class SocketSession {
^^^^^^

SyntaxError: Unexpected token export

Хотя в настройках Webstorm указан ES6
Ответить с цитированием
  #10 (permalink)  
Старый 26.11.2018, 13:22
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

нужен babel с каким-нибудь пресетом ) типа es2015, stage-0 и т.д.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько одинаковых объектов на странице Aitvaras Общие вопросы Javascript 4 26.06.2015 20:27
Math.random несколько объектов Beriagts Общие вопросы Javascript 10 02.06.2012 20:17