You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Cosmin Marian (JIRA)" <ji...@apache.org> on 2010/07/23 09:54:51 UTC
[jira] Created: (CAY-1468) Commit performance degradation
Commit performance degradation
------------------------------
Key: CAY-1468
URL: https://issues.apache.org/jira/browse/CAY-1468
Project: Cayenne
Issue Type: Bug
Components: Core Library
Affects Versions: 3.0
Reporter: Cosmin Marian
While developing an application using Cayenne I noticed that the
performance of DataContext.commitChanges() degrades with the number of
commits done.
To be more specific, I have a model with two entities: Result and
ResultStream, with a many to one relation from Result to ResultStream.
The test I do is simple: I generate a lot of Result objects, all linked to
the same ResultStream and I call commit after each Result added to the
DataContext and measure the time it takes to perform the commit. I notice
that this time grows fairly linear. Of course, the growth is noticeably
after generating many results
Here is the source code of the test:
public class Main {
public static void main(String[] args) {
DataContext dc = DataContext.createDataContext();
final int stepSize = 500;
final int nbSteps = 50;
SelectQuery sq = new SelectQuery(ResultStream.class);
ResultStream rs = (ResultStream) dc.performQuery(sq).get(0);
StopWatch sw = new StopWatch();
sw.start();
for (int i = 1; i <= nbSteps * stepSize; ++i) {
Result t = new Result();
t.setValue(i);
t.setResultStream(rs);
dc.commitChanges();
if (i % stepSize == 0) {
sw.stop();
System.out.printf("%6d, %s, %5d\n", i,
DurationFormatUtils.formatDurationHMS(sw.getTime()),
sw.getTime());
sw.reset();
sw.start();
}
}
}
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (CAY-1468) Commit performance degradation
Posted by "Andrus Adamchik (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/CAY-1468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrus Adamchik closed CAY-1468.
--------------------------------
Fix Version/s: 3.0.1
Resolution: Fixed
> Commit performance degradation
> ------------------------------
>
> Key: CAY-1468
> URL: https://issues.apache.org/jira/browse/CAY-1468
> Project: Cayenne
> Issue Type: Bug
> Components: Core Library
> Affects Versions: 3.0
> Reporter: Cosmin Marian
> Fix For: 3.0.1
>
>
> While developing an application using Cayenne I noticed that the
> performance of DataContext.commitChanges() degrades with the number of
> commits done.
> To be more specific, I have a model with two entities: Result and
> ResultStream, with a many to one relation from Result to ResultStream.
> The test I do is simple: I generate a lot of Result objects, all linked to
> the same ResultStream and I call commit after each Result added to the
> DataContext and measure the time it takes to perform the commit. I notice
> that this time grows fairly linear. Of course, the growth is noticeably
> after generating many results
> Here is the source code of the test:
> public class Main {
> public static void main(String[] args) {
> DataContext dc = DataContext.createDataContext();
> final int stepSize = 500;
> final int nbSteps = 50;
> SelectQuery sq = new SelectQuery(ResultStream.class);
> ResultStream rs = (ResultStream) dc.performQuery(sq).get(0);
> StopWatch sw = new StopWatch();
> sw.start();
> for (int i = 1; i <= nbSteps * stepSize; ++i) {
> Result t = new Result();
> t.setValue(i);
> t.setResultStream(rs);
> dc.commitChanges();
> if (i % stepSize == 0) {
> sw.stop();
> System.out.printf("%6d, %s, %5d\n", i,
> DurationFormatUtils.formatDurationHMS(sw.getTime()),
> sw.getTime());
> sw.reset();
> sw.start();
> }
> }
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.