Существует ли простой способ вычислить размер объекта, сохраненного в Механизме Приложения? Я хотел бы знать, как близко конкретный объект к удару верхнего предела на 1 МБ размера объекта.
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())
Kekito указывает в комментариях ниже, что для ndb
сущностей нужен другой подход (Спасибо Kekito!):
len(some_entity._to_pb().Encode())
Документация Google о кодировании и хранении сущностей:
http://code.google.com/appengine/articles/storage_breakdown.html