Its recommended against to lower ram more than this , as it will show not friendly router logs something like this:
Router Logs
ERROR [uterWatchdog] 2p.router.tasks.RouterWatchdog?: Memory: 38.03MB / 114.00MB
ERROR [uterWatchdog] 2p.router.tasks.RouterWatchdog?: Outbound send rate: 776Bps
ERROR [uterWatchdog] 2p.router.tasks.RouterWatchdog?: 1 minute send processing time: 243ms
ERROR [uterWatchdog] 2p.router.tasks.RouterWatchdog?: Participating tunnel count: 2
ERROR [uterWatchdog] 2p.router.tasks.RouterWatchdog?: Job lag: 0
ERROR [uterWatchdog] 2p.router.tasks.RouterWatchdog?: Ready and waiting jobs: 0
ERROR [uterWatchdog] client.ClientManagerFacadeImpl?: Client 8nwlmr has a leaseSet that expired 38m ago
ERROR [uterWatchdog] 2p.router.tasks.RouterWatchdog?: Memory: 49.92MB / 114.00MB
ERROR [uterWatchdog] 2p.router.tasks.RouterWatchdog?: Outbound send rate: 776Bps
ERROR [uterWatchdog] 2p.router.tasks.RouterWatchdog?: 1 minute send processing time:
But since I2Pj will not run by default , then i think user should understand why memory consumption accruing when he want to run it.