Nano Hash - криптовалюты, майнинг, программирование

Размер переменной памяти Python

Я пытаюсь сохранить данные временных рядов в MongoDB, используя pymongo. Однако средний размер объекта составляет 14 байт, а мне нужно хранить его в 4 байта.

Проблема в том, что Python предварительно выделяет переменные в 24 байта (или в зависимости от размера переменной, больше), и после преобразования в pymongo это раздутая коллекция.

Например :

x=1
sys.getsizeof(x)

24 байта

x=1000**1000
sys.getsizeof(x)

1356 байт

Приведенный выше пример является иллюстрацией, я использую меньшие размеры, обычно 32 бита для напряжения, тока и т. д. Как я могу обеспечить соответствие 4 байтов переменным Python и меньшую коллекцию временных рядов mongoDB


  • Мне очень любопытно узнать, как вы собираетесь уместить 1000 ** 1000 в 4 байта... 22.09.2015
  • Извините, забыл упомянуть, это была иллюстрация, я использую меньшие размеры, обычно 32 бита для напряжения, тока и т. д. 22.09.2015

Ответы:


1

Размер объекта Python во время выполнения здесь в основном не имеет значения, особенно для небольших целых чисел, поскольку то, что сохраняется, является представлением объекта bson, а не, очевидно, самим объектом Python.

22.09.2015
  • если мы попробуем: пример, который содержит данные о количестве дней каждую секунду для i в диапазоне (60 * 24): collection.insert({str(i+1):list(np.random.randint(200,250,60) )))}) у меня получается средний размер объекта 560 байт для каждого документа ‹ 60 значений› я ожидал 60Х4 240 байт 22.09.2015
  • Еще раз: размер объекта в хранилище MongoDB 1/ не соответствует размеру объекта Python во время выполнения и 2/ соответствует MongoDB, а не Python. 22.09.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..