Хотя сжатие, безусловно, является жизнеспособным вариантом, вам также может потребоваться просто сериализовать меньше.
Может ли быть так, что ваши объекты содержат много данных, которые могут быть легко восстановлены из других данных, которые они также содержат? Например, если у вас есть атрибуты, которые лениво строятся из других атрибутов (например, используя lazy
+ builder
или lazy_build
) Moose, нет смысла хранить значения этих атрибутов вообще, если только пересчет не будет невероятно дорого. И даже в этом случае стоит подумать, поскольку считывание большого количества данных с диска тоже не самая быстрая вещь.
Если вы обнаружите, что хотите сериализовать только части своих объектов и все еще хотите использовать Storable, вы можете определить пользовательские STORABLE_freeze
и STORABLE_thaw
перехватчики, как описано в документации по Storable.
Однако есть и альтернативные сериализаторы. MooseX :: Storage - один из них, и он поддерживает множество бэкэндов и форматов сериализации, а также позволяет легко узнать, какие атрибуты сериализировать и какие пропустить для этой цели.