Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-8481

Load the major part of pcore types statically instead of per environment

    XMLWordPrintable

Details

    • Improvement
    • Status: Closed
    • Normal
    • Resolution: Fixed
    • None
    • PUP 5.5.0
    • None
    • None
    • Not Needed
    • A 10% performance improvement for small compiles and small memory saving - not worth release-noting on its own.
    • Needs Assessment

    Description

      A large part of the puppet data type system is currently loaded as part of initializing an environment. This is partly caused by the design of the ImplementationRegistry. There can only be one instance and it must belong to the environment since new types can be provided by modules.

      A simple change to the ImplementationRegistry where it is made parented the same way that loaders are, would make it possible to have an environment based registry that is parented by a static registry. That in turn means that most of the pcore initialization can be done statically, i.e. once for the lifetime of the process, rather than once per environment creation.

      Attachments

        Activity

          People

            Unassigned Unassigned
            thomas.hallgren Thomas Hallgren
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Zendesk Support