Uploaded image for project: 'ODE'
  1. ODE
  2. ODE-573

Reuse And Reduce Process Memory

    XMLWordPrintableJSON

Details

    Description

      This is a meta issue to track all solutions geared towards reducing the footprint of processes. Up until now, memory optimization of processes has been an afterthought, and that calls for a change. There are a number of ways in which we can reduce the in-memory size of processes, including but not limited, to the following:

      a) Employ a flyweight pattern to share identical resources within the process model. This is analogous to the approach taken by string interning, only we want to it to be more generic.
      b) Refactor one or more parts of the process model in terms of a leaner and meaner data structure. Since this may result in a structural change in the serialized bytes of the process, care should be taken to maintain backwards compatibility.
      c) Reuse shared resources across different process models. This involves determining whether or not a resource is shareable, and if so, storing them in a system-wide cache. A reference counting mechanism may be used to manage the lifecycle of the cache.

      In the following comment, we will describe a solution based on approach (a).

      Attachments

        1. interning-mechanism-for-processes.patch
          11 kB
          Karthick Sankarachary

        Issue Links

          Activity

            People

              karthick Karthick Sankarachary
              karthick Karthick Sankarachary
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: