Skip to content

Not all metadata is cached #25

jakzal opened this Issue Feb 2, 2012 · 0 comments

1 participant

jakzal commented Feb 2, 2012

XmlMarshaller::doUnmarshal() calls ClassMetadataFactory::getAllXmlNodes() which makes performance sensitive operations every time. The result is not cached although cache driver is available in the ClassMetadataFactory.

Second thing is I'm using Apc cache driver and only first request successfully unmarshalls XML. Every other fails as ClassMetadataFactory::getAllXmlNodes() returns an empty array.

Flow is as follows:

Many of ClassMetadataFactory method call initialize() method to lazy load stuff. Comment to ClassMetadataFactory ::initialize() says:

Lazy initialization of this stuff, especially the metadata driver,
since these are not needed at all when a metadata cache is active.

Comment says one thing but code does another. Both drivers are always initialized.

IMHO cache driver should be initialized and used in the first place. Metadata driver shouldn't be needed as long as we can get information from cache.

I might have a bad understanding of how these things should work. I'm experiencing performance problems and would like to work on improvements.

@jakzal jakzal closed this Jul 21, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.