+sub _parse_number_with_unit {
+ my ($number) = @_;
+
+ return undef unless defined $number;
+ return $number unless $number =~ m{^ \s* (\d+) \s* ([kmg])b \s* $}xi;
+
+ my %factors = (K => 1024, M => 1024 * 1024, G => 1024 * 1024 * 1024);
+
+ return $1 * $factors{uc $2};
+}
+
+sub _memory_usage_is_too_high {
+ return undef unless $::lx_office_conf{system};
+
+ my %limits = (
+ rss => _parse_number_with_unit($::lx_office_conf{system}->{memory_limit_rss}),
+ size => _parse_number_with_unit($::lx_office_conf{system}->{memory_limit_vsz}),
+ );
+
+ # $::lxdebug->dump(0, "limits", \%limits);
+
+ return undef unless $limits{rss} || $limits{vsz};
+
+ my %usage;