Conversation
|
Just realised that this doesn't apply to dirty composer autoloader paths with |
henderkes
left a comment
There was a problem hiding this comment.
The only thing I'm not entirely sure is whether we couldn't switch to using fstatat and siblings instead of doing the manual string operations for every path operation that doesn't need the resolved string.
Most importantly, ZTS (/a/c) differs from what NTS is doing (/x/c) when it could be using direct syscalls, get NTS' performance and also resolve (correctly) even for relative paths.
This would be worth exploring indeed. |
|
It's a bit of a larger rework that I wouldn't get ready in time for 8.6 anymore. It would remove a lot of the existing handling separately. |
Absolute paths don't need to go through the per-thread cwd emulation, add a fast-path to directly hand them to libc.
since relative paths won't start with a leading slash, this adds negligible cost for them
Benchmark for Symfony demo:
cc @dunglas because this will be a nice improvement for frankenphp (though fpm alike) in 8.6 :)