Как я вычисляю размер объекта, сохраненного в Google App Engine?

Существует ли простой способ вычислить размер объекта, сохраненного в Механизме Приложения? Я хотел бы знать, как близко конкретный объект к удару верхнего предела на 1 МБ размера объекта.

12
задан ryan 15 June 2010 в 02:46
поделиться

2 ответа

App engine хранит каждую сущность как protobuf. Вы можете использовать функцию db.model_to_protobuf(), описанную здесь, чтобы вручную преобразовать вашу сущность в protobuf, а затем использовать стандартный метод len() для определения ее размера в байтах.

Пример использования:

from google.appengine.ext import db
sz_in_bytes = len(db.model_to_protobuf(some_entity).Encode())

Обновление для ndb

Kekito указывает в комментариях ниже, что для ndb сущностей нужен другой подход (Спасибо Kekito!):

len(some_entity._to_pb().Encode())
18
ответ дан 2 December 2019 в 07:20
поделиться

Документация Google о кодировании и хранении сущностей:

http://code.google.com/appengine/articles/storage_breakdown.html

3
ответ дан 2 December 2019 в 07:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: