Re:Django REST framework: 3.15.0 Release (Django 5.0 support)
by dsego on Sunday March 17, 2024 @06:39AM
(#39733398)
Afaik, PHP can have opcode caching enabled or disabled.
Re:Django REST framework: 3.15.0 Release (Django 5.0 support)
by JonathanBeuys on Sunday March 17, 2024 @06:44AM
(#39733423)
True. I see a "Zend OPcache" section in my phpinfo().
It says:
Cache hits 4746528
Cache misses 38875
Both values go up every time I execute phpinfo().I wonder why. Shouldn't "Cache misses" only go up when a source file is changed?
Re:Django REST framework: 3.15.0 Release (Django 5.0 support)
by raziel2p on Sunday March 17, 2024 @09:08AM
(#39734246)
AFAIK, before PHP even accesses opcache for bytecode, it checks the file's metadata (last modified, most likely). So an updated file might never trigger a cache hit or miss.
Re:Django REST framework: 3.15.0 Release (Django 5.0 support)
by JonathanBeuys on Sunday March 17, 2024 @10:08AM
(#39734588)
If it does not access the opcache, against what is it checking the last modified date?
I'm not sure if PHP stores any compiled binary or byte-code at all. Maybe it compiles it all on each request. It's super fast though, even with tons of imports.
My guess would be that it keeps compiled versions of each file in memory and on each request, it walks down the whole import path. And when it encounters a changed import, it compiles only that one.
Would be cool if someone with more knowledge could shed a light on what is actually happening.