Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 15.01.2023, 19:47
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa
Неужто это работает?
Ну ваще да, вроде)) ахха файл такой же как и при бинарном методе
Ответить с цитированием
  #22 (permalink)  
Старый 15.01.2023, 19:51
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa
Это не в 16-ричную переводит, а в массив байт
В бинарном варианте вы делали data = data.toString(2).

А здесь сделано data = data.toString(16).
Ответить с цитированием
  #23 (permalink)  
Старый 15.01.2023, 21:24
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от webgraph
Ну ваще да, вроде))
Не может это работать. у bigInt нет свойства length.
Попробуйте с нечетным количеством 16-ричных цифр и убедитесь, что 0 в начале не добавляется

let data = 384n; // 0x180
data = data.toString(16).padStart(data.length + data.length%2, '0');
console.log(data);

Сообщение от webgraph
В бинарном варианте вы делали data = data.toString(2).

А здесь сделано data = data.toString(16).
Результат одинаковый. Что быстрее - надо проверять. Может через 16-ричные будет быстрее
Ответить с цитированием
  #24 (permalink)  
Старый 15.01.2023, 22:22
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa
Не может это работать. у bigInt нет свойства length.
Так а как тогда? Типа сначала:

// сначала надо преобразовать в 16?

data = data.toString(16); 

// а уже потом работать с ней

data = data.padStart(data.length + data.length%2, '0');


Так получается?
Ответить с цитированием
  #25 (permalink)  
Старый 15.01.2023, 22:46
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от webgraph
Так получается?
Так получится.
Ответить с цитированием
  #26 (permalink)  
Старый 15.01.2023, 23:18
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa
И где хранить? В ОП или на диске?
voraa,
а этот вопрос к чему был?))
Ответить с цитированием
  #27 (permalink)  
Старый 24.01.2023, 00:39
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

voraa,
а если для хранения в ОП?)
Ответить с цитированием
  #28 (permalink)  
Старый 24.01.2023, 07:35
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от webgraph
а если для хранения в ОП?)
Если только в typed Array.
Иначе памяти потребуется в разы больше. В памяти каждое число хранится как 8 байтовое вещественное (double64), а в строках по 2 байта на символ (utf-16)/
Ответить с цитированием
  #29 (permalink)  
Старый 24.01.2023, 09:17
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa Посмотреть сообщение
Если только в typed Array.
Иначе памяти потребуется в разы больше. В памяти каждое число хранится как 8 байтовое вещественное (double64), а в строках по 2 байта на символ (utf-16)/
Полагаю что двоичные данные только в typed array и могут храниться))

Изначально эта тема поднималась для записи именно на диск. Но сейчас интересен вопрос и про оперативную память.

Как считаете, насколько актуально принимать на сервер данные в формате JSON, конвертировать их в двоичные данные и записывать в память (map, set и т.д.) — в типизированные массивы?

Взять тот же Map — значение ключа может быть совершенно любым — мы можем создать new ArrayBuffer() и записать в него UUID участника.

Получается, что мы можем оптимизировать использование объёма оперативной памяти — уменьшить его как минимум 2 в раза.

Насколько верны данные размышления?)
Ответить с цитированием
  #30 (permalink)  
Старый 24.01.2023, 10:37
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Мне трудно рассуждать абстрактно, не понимая всей задачи. Что и сколько передается, что где хранится, какие объемы?
Сделать то можно, что угодно.
Количество записей у вас только растет.
Как долго оно растет? Днями, месяцами, годами...?
Нужен все равно какой то предел количества записей при хранении в ОП. Она не резиновая.
Какие операции с ключами? Только сравнение на равенство?
Сравнение типизированных массивов не мгновенная операция. Она требует перебора - преобразование каждого элемента массива в обычное числовое значение и только тогда сравнивать. Сколько это займет по времени?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно сохранить загруженный файл? 2chan Node.JS 10 03.04.2016 23:11
Как сохранить данные в файл? Возможно такое на JavaScript? Forgott Общие вопросы Javascript 35 26.06.2015 19:11
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как запустить на выполнение код файла kgn Общие вопросы Javascript 4 06.01.2012 22:08
Как можно достать файл из <input type="file"/> преобразовать файл в base 64 maxcab Events/DOM/Window 2 28.06.2011 22:52