code: def stop(self):
      super(St, self).stop()
  
      tlen = 0
      self.loglendetails("-- Evaluating Datas")
      for i, data in enumerate(self.datas):
          tdata = 0
          for line in data.lines:
              tdata += len(line.array)
              tline = len(line.array)
  
          tlen += tdata
          logtxt = "---- Data {} Total Cells {} - Cells per Line {}"
          self.loglendetails(logtxt.format(i, tdata, tline))
  
      self.loglendetails("-- Evaluating Indicators")
      for i, ind in enumerate(self.getindicators()):
          tlen += self.rindicator(ind, i, 0)
  
      self.loglendetails("-- Evaluating Observers")
      for i, obs in enumerate(self.getobservers()):
          tobs = 0
          for line in obs.lines:
              tobs += len(line.array)
              tline = len(line.array)
  
          tlen += tdata
          logtxt = "---- Observer {} Total Cells {} - Cells per Line {}"
          self.loglendetails(logtxt.format(i, tobs, tline))
  
      print("Total memory cells used: {}".format(tlen))
  
file_path: backtrader/samples/memory-savings/memory-savings.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import argparse
  import sys
  import backtrader
  import backtrader.feeds
  import backtrader.indicators
  import backtrader.utils.flushfile
label_desc: Use image node_id 4 for calling the St obj's underlying member method code with example usage: obj.stop() without return types