-3

我有一個建立在IoC容器頂部的小型系統。 IoC容器能夠通過使用反射(ReflectionClass,ReflectionMethod,...)自動解析所請求類的依賴關係,並將這些依賴關係注入到類的構造函數中。緩存依賴於PHP

的問題是,我已經看了很多帖子說,反射是一個非常緩慢的辦法,並用它每一次運行是一個不好的做法。

因此,我要避免使用反射每次運行和我的想法是緩存的依賴或請求的類。

我將緩存一個類的依賴關係和類的代碼的散列版本,這樣我就會知道何時重新評估類的依賴關係(當類代碼的哈希不匹配時被緩存的散列,換句話說,代碼自從最後一次評估依賴後被修改)。

這是一個很好的方法或者我應該留在每一個反射運行的方法呢? 我主要關注的問題是,這種做法是否將有助於優化系統性能或者它只是慢下來?

感謝, 阿里克

回答

0

的問題是,我已經看了很多帖子說,反射是一個非常緩慢的辦法

所以,你沒有一個真正的問題。在你的網站出現性能問題之前,你爲什麼要關心?

過早優化是所有罪惡

+0

系統用作提供基本的工具爲Web開發框架的根源。應用程序的複雜性和可能的​​「性能問題」主要取決於使用我的框架的開發人員(可能會或可能不是我)。 因此,我必須確保我的系統保持高效,並針對任何可能的情況進行了優化。 – areller

+1

很公平,這是不是從問題顯而易見。在這種情況下,也許你可以在PHP-DI的源代碼中找到有用的信息:https://github.com/PHP-DI/PHP-DI它使用自動裝配(反射)並且有一個緩存機制(它使用Doctrine的緩存庫) 。 –