ibatis-user-cs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Greg Jackman" <gjack...@boardbooks.com>
Subject RE: Loading slowdown when upgrading from 1.3.0 to 1.6.1
Date Wed, 06 Jun 2007 03:32:45 GMT
Hi Sebastien,

We've had problems with performance as well. When iBatis takes a long
time to run builder.Configure() I have seen a lot of messages in the
output window in Visual Studio.

I see this line in the output window:

'Diligent.Boardbooks.Clients.SmartClient.Shell.vshost.exe' (Managed):
Loaded 'DynamicAssemblyProxyGen', No symbols loaded.

About 40 or 50 times during the call to Configure. I'd be interested to
know if you see the same?

Cheers,
Greg

-----Original Message-----
From: Sebastien Lucas [mailto:sebastien.lucas@gmail.com] 
Sent: Wednesday, 6 June 2007 2:32 a.m.
To: user-cs@ibatis.apache.org
Subject: Loading slowdown when upgrading from 1.3.0 to 1.6.1

Hi,

I'm planning to finally update to .Net 2.0 this summer and so I
decided to update Ibatis on all our project. We previously had the
Datamapper 1.3.0 and I deceided to upgrade to 1.6.1.

The upgrade of the code went really good (SqlMapper -> ISqlMapper) and
I can access now my Oracle Database.

My only problem is that I have a huge slowdown during the loading of
my application.

With 1.3.0 : load time : 3~4 seconds and 30Mo of virtual memory
With 1.6.1 : load time : 120s with 100% CPU  and 50Mo of virtual memory

A little background : my sqlmap.config is embedded and all my sqlmap
are also embedded (130 xml file, almost 1Mo of data).

My sqlmap.config looks like that :

<?xml version="1.0" encoding="UTF-8" ?>
<sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

    <properties resource="CommunProperties.config"/>

	<settings>
		<setting useStatementNamespaces="false"/>
		<setting cacheModelsEnabled="true"/>
	</settings>
	
	<providers embedded="GB.Persistance.providers.config,
Persistance" />

	<database>	
		<provider name="${provider}"/>
		<dataSource name="DB"
connectionString="${connectionString}"/>
	</database>

	<sqlMaps>

<sqlMap embedded="GB.Persistance.Maps.TSociete.xml, Persistance" />
......

I load it that way :

DomSqlMapBuilder builder = new DomSqlMapBuilder();
XmlDocument sqlMapConfig =
Resources.GetEmbeddedResourceAsXmlDocument(_embeddedRessourceLocation);
_qMapper = new QMapper (builder.Configure(sqlMapConfig));

I use Log4net and I can see in my log the sql used.

I really have no clue on a way to properly debug it to check what
takes so long.

If you have any idea, please enlight me.

Thanks in advance.

Sebastien

Mime
View raw message