[hibernate-dev] Memory consumption

Andrej Golovnin golovnin at gmx.net
Sat May 12 09:48:45 EDT 2012


Hi Scott,

> It sounds like adding <property name="javax.persistence.validation.mode" value="NONE"/>, is responsible for the memory savings, more than using Hibernate Validator 4.3.0.  If not, it would be helpful for us to know that.
> 
> I wouldn't expect much more savings than that (with validation mode set to NONE, we won't pass a validator instance into the session factory).

Hibernate Validator 4.3.0 was responsible for memory saving not the property.

> 
> If your using MAT, I would drill into the "outgoing" references from the org.hibernate.internal.SessionFactoryImpl and produce more pictures of the objects consuming the larger part of that memory.

I already done it. But the problem is that if I make side by side comparison
between memory dumps from JBoss 4 and JBoss 7 I don't see a big difference. :-(
Only the size of SessionFactoryImpl differs.

> 
> Also, it might be helpful for us to see your persistence.xml.

No problem. Here it is:

    <persistence-unit name="MyEntityManager">
        <jta-data-source>java:/MyDS</jta-data-source>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
            <property name="hibernate.max_fetch_depth" value="0"/>
            <property name="hibernate.default_batch_fetch_size" value="16"/>
            <property name="hibernate.order_updates" value="true"/>
            <property name="hibernate.order_inserts" value="true"/>
            <property name="hibernate.jdbc.fetch_size" value="50"/>
            <property name="hibernate.jdbc.batch_size" value="15"/>
            <property name="hibernate.jdbc.wrap_result_sets" value="false"/>
            <property name="hibernate.query.jpaql_strict_compliance" value="false"/>
            <property name="hibernate.ejb.interceptor" value="MyInterceptor"/>

            <!-- Hibernate Search Properties -->
            <property name="hibernate.search.lucene_version" value="LUCENE_35"/>
            <property name="hibernate.search.default.directory_provider" value="MyFSDirectoryProvider"/>
            <property name="hibernate.search.worker.scope" value="MyTransactionalWorker"/>
            <property name="hibernate.search.enable_dirty_check" value="false"/>
            <property name="hibernate.search.worker.batch_size" value="100"/>
            <property name="hibernate.search.default.transaction.merge_factor" value="10"/>
            <property name="hibernate.search.default.transaction.max_buffered_docs" value="10"/>
            <property name="hibernate.search.default.batch.merge_factor" value="100"/>
            <property name="hibernate.search.default.batch.max_buffered_docs" value="100"/>
            
            <property name="hibernate.search.​default.​exclusive_index_use" value="false"/>
            <property name="hibernate.search.default.reader.strategy" value="not-shared"/>
            
            <!-- Hibernate Validation -->
            <property name="javax.persistence.validation.mode" value="NONE"/>
        </properties>
    </persistence-unit>

Best regards,
Andrej Golovnin




More information about the hibernate-dev mailing list