Skip to content

[Issue] Improve setup:di:compile performance by using gc_disable #38035

Closed
@m2-assistant

Description

@m2-assistant

This issue is automatically created based on existing pull request: #38032: Improve setup:di:compile performance by using gc_disable


Description (*)

By disabling garbage collector the code generation finishes a bit faster:

  1. Result for this contribution repo
    Selection_755

With larger apps the difference is not that significant but noticeable
2.

  • 2 minutes without changes
    Selection_758

  • under 2 minutes with changes
    Selection_757

I also checked calling gc_collect_cycles after each operation to save some memory, but the difference is not that significant and visible on the second screenshot.

Related Pull Requests

Fixed Issues (if relevant)

  1. Fixes magento/magento2#<issue_number>

Manual testing scenarios (*)

  1. Run setup:di:compile on different CPUs with and without changes
  2. Compare execution time

Questions or comments

  1. More tests needed on different CPUs.
  2. The actual result may vary per project, depending from number of plugins/factories/proxies needed to detect and generate.

Contribution checklist (*)

  • Pull request has a meaningful description of its purpose
  • All commits are accompanied by meaningful commit messages
  • All new or changed code is covered with unit/integration tests (if applicable)
  • README.md files for modified modules are updated and included in the pull request if any README.md predefined sections require an update
  • All automated tests passed successfully (all builds are green)

Metadata

Metadata

Assignees

Labels

Area: PerformanceIssue: needs updateAdditional information is require, waiting for responsePriority: P2A defect with this priority could have functionality issues which are not to expectations.Progress: dev in progressReported on 2.4.xIndicates original Magento version for the Issue report.Triage: Dev.ExperienceIssue related to Developer Experience and needs help with Triage to Confirm or Reject it

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions