PHP Class Zephir\Cache\StaticMethodCache
Calls in Zephir implement monomorphic and polymorphic caches to
improve performance. Method/Functions lookups are cached in a standard
first-level method lookup cache.
The concept of inline caching is based on the empirical observation
that the objects that occur at a particular call site are often of the same type
Internal functions are considered monomorphic since they do not change across execution.
Final and private methods are also monomorphic because of their own nature.
Due to the Ahead-Of-Time compilation approach provided by Zephir, is not possible
to implement inline caches, however is possible to add barriers/guards to
take advantage of profile guided optimizations (PGO) and branch prediction.
This implementation is based on the work of Hölzle, Chambers and Ungar [1].
[1] http://www.cs.ucsb.edu/~urs/oocsb/papers/ecoop91.pdf
Mostra file
Open project: phalcon/zephir
Protected Properties
Property |
Type |
Description |
|
$cache |
|
|
|
Public Methods
Method |
Description |
|
get ( Zephir\CompilationContext $compilationContext, ClassMethod | ReflectionMethod $method, boolean $allowNtsCache = true ) : string |
MethodCache |
|
Method Details
public get ( Zephir\CompilationContext $compilationContext, ClassMethod | ReflectionMethod $method, boolean $allowNtsCache = true ) : string |
$compilationContext |
Zephir\CompilationContext |
|
$method |
Zephir\ClassMethod | ReflectionMethod |
|
$allowNtsCache |
boolean |
|
return |
string |
|
Property Details
$cache protected_oe property