Skip to content

reduce process isolation overhead #5749

Open
@staabm

Description

@staabm

while looking more into phpunit performance, I was profilling subprocesses:

grafik

I think it is pretty interessting that running a test in isolation can be dominated by e.g. script compile time.

I wonder whether we can - per default - set a few options for the subprocesses used by process-isolation, e.g.

  • -d opcache.jit=disable) to disable jit overhead
  • -d opcache.validate_timestamps=0
  • -d zend.enable_gc=0 disable GC?

another thing which came to mind: could we place the test beeing run separate from the "framework" code required to run in isolation, so the "bootstrapping" of the isolated processes don't need to re-compile everything but at best only the actual test-case?


one last thing: maybe we can utilize opcache preloading?


file based opcode caching?

https://stackoverflow.com/a/35880017

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature/process-isolationIssues related to running tests in separate PHP processestype/performanceIssues related to resource consumption (time and memory)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions